У меня есть веб-приложение, созданное с помощью 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-адресу.
Похожие вопросы
Новые вопросы
tomcat
Используйте этот тег для вопросов об Apache Tomcat (или просто Tomcat, ранее также Jakarta Tomcat), который является контейнером сервлетов с открытым исходным кодом, разработанным Apache Software Foundation (ASF). Большинство вопросов также должны включать тег, определяющий операционную систему.