我有一个使用 Spring 3.1 构建的 Web 应用程序,使用 Spring Security 3.0,部署在 Tomcat 6 下。站点中的某些页面仅对具有 ROLE_MEMBER 角色的用户可用。其中一个页面显示了可供下载的文件的动态列表。用户可以使用应用程序中的安全表单上传新文件。我的问题是:我可以在哪里存储文件,以便 Spring Security 保护对它们的访问?我目前将它们放在 Web 应用程序文件夹中,但这使得部署应用程序的新版本很痛苦,因为我必须在 Tomcat 重新部署新版本后备份文件并恢复它们。
问问题
88 次
1 回答
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
当然,您需要一些 servlet/controller 来负责通过给定的 URL 发送文件内容。
于 2013-04-03T12:58:00.220 回答