Эта ситуация:Контроль доступа для бинарных файлов с Java
У нас есть некоторые бинарные файлы (PDF, ППЦ, ZIPz и т.д.), хранящиеся на сервере, отличном от где наше приложение. Мы должны сделать их доступными для пользователей в нашем приложении. Но файлы имеют чрезвычайно чувствительную информацию, которую нельзя прочитать никому, кроме пользователя, имеющего к ним доступ, что означает, что нам нужно проверить пользователя, который пытается получить доступ к файлу, прежде чем он сможет его загрузить.
Это, как мы решим его:
- Получаем файл с удаленного сервера, храните его в не общественном месте.
- Мы читаем файл в массив байтов, затем мы удаляем файл.
- Мы пишем файл через JSP, используя выходной поток response. (Мы не можем очистить его через сервлет, потому что мы используем проприетарный MVC, который мы не можем изменить, поэтому все выходы JSP, поэтому мы получаем java.lang.IllegalStateException, но он работает).
Меня беспокоят 3 аспекта этого решения; Размер файла сильно повлияет на размер кучи, размер файла ограничен максимальным байтом [Integer.MAXSIZE], и, наконец, мы получаем java.lang.IllegalStateException каждый раз, когда кто-то загружает файл, потому что мы вызываем response.getOutputStream (), поэтому наш журнал растет много. (Мы не можем очистить его через сервлет, потому что мы используем проприетарный MVC, который мы не можем изменять или расширять)
Я уверен, что есть более элегантный способ сделать это.
Любые идеи?
Мы просто исключили исключение IllegalStateException с тиком, который вы поделили. Итак, его один менее грязный секрет нам нужно скрыть от людей, платящих это ... = P – Chepech