2013-04-03 32 views
0

我有一個使用Spring Security 3.0構建的,使用Spring Security 3.0構建的Web應用程序,部署在Tomcat 6下。站點內的某些頁面僅對具有ROLE_MEMBER角色的用戶可用。其中一頁顯示可供下載的動態文件列表。用戶可以使用應用程序中的安全表單上傳新文件。我的問題是:我在哪裏可以存儲這些文件,以便Spring Security保護他們的訪問權限?我目前將它們放在Web應用程序文件夾中,但這使得部署應用程序的新版本變得非常痛苦,因爲我必須在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 

安全的conf:

<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 /控制器,負責通過給定的URL發送文件內容。

+0

是的,謝謝你的觀點。我將編寫一個servlet來從Web應用程序外部流式傳輸文件。 – jalynn2

+0

你好 –