保护对战争以外文件的访问

时间:2013-04-03 12:47:29

标签: tomcat spring-security

我有一个使用Spring 3.1构建的Web应用程序,使用Spring Security 3.0,部署在Tomcat 6下。该站点中的某些页面仅供具有ROLE_MEMBER角色的用户使用。其中一个页面显示了可供下载的动态文件列表。用户可以使用应用程序中的安全表单上传新文件。我的问题是:我在哪里可以存储文件,以便Spring Security可以保护对它们的访问?我目前在Web应用程序文件夹中没有它们,但这使得部署新版本的应用程序变得很痛苦,因为我必须备份文件并在Tomcat重新部署新版本后恢复它们。

1 个答案:

答案 0 :(得分: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发送文件内容。