2013-04-03 20 views
0

У меня есть веб-приложение, построенное с использованием Spring 3.1, с использованием Spring Security 3.0, развернутого под Tomcat 6. Некоторые страницы на сайте доступны только пользователям с ролью ROLE_MEMBER. На одной из страниц представлен динамический список файлов, доступных для загрузки. Пользователи могут загружать новые файлы с помощью защищенной формы в приложении. Мой вопрос: где я могу хранить файлы, чтобы доступ к ним был защищен Spring Security? В настоящее время я размещаю их в папке веб-приложений, но это делает развертывание новых версий приложения болезненным, так как я должен создавать резервные копии файлов и восстанавливать их после того, как Tomcat повторно развернет новую версию.Защита доступа к файлам за пределами войны

ответ

1

Spring Security может обеспечить защиту некоторых URL-адресов или методов. Он не может защитить ваши файлы. Поэтому неважно, где находится ваш файл. Важно, используя какой URL-адрес пользователь может загрузить файл.

Пример:

http://domain.com/files.html - list of files 

Соответствующие файлы:

http://domain.com/files/file1.pdf 
http://domain.com/files/file2.doc 
http://domain.com/files/file3.png 

безопасности конф:

<intercept-url pattern="/files.html" access="hasRole('ROLE_MEMBER')" /> 
<intercept-url pattern="/files/**" access="hasRole('ROLE_MEMBER')" /> 

Фактические пути к файлам (они не являются важными с точки зрения безопасности):

/home/user/uploads/file1.pdf 
/home/user/uploads/file2.doc 
/home/user/uploads/file3.png 

Конечно, вам нужен сервлет/контроллер, который будет отвечать за отправку содержимого файла по заданному URL-адресу.

+0

Да, спасибо за перспективу. Я закодирую сервлет, чтобы передать файлы извне веб-приложения. – jalynn2

+0

Вы доброжелательны –

Смежные вопросы