2012-04-20 52 views
0

問題1:春季安全錯誤和限制文件夾不工作

我在我的應用程序中設置的彈簧安全,但現在我有一點奇怪的問題。 我從春天的安全教訓是,你不需要添加方法上面這行代碼@RolesAllowed({"ROLE_ADMIN"})如果你設置此

<sec:http auto-config="true" access-denied-page="/faces/accessDenied.xhtml"> 
    <sec:form-login login-page="/faces/login.xhtml" /> 
    <sec:intercept-url pattern="/faces/admin/**" access="ROLE_ADMIN" /> 
</sec:http> 

但顯然我可以去那是在「/面孔頁/ admin「文件夾沒有彈簧安全性將我重定向到登錄頁面。

問題2:

時,我有@RolesAllowed({"ROLE_ADMIN"})代碼我上面的方法,它重定向我到登錄頁面,並可以正常工作,但與這一個,我在我的控制檯得到拒絕訪問錯誤與一堆錯誤代碼(應用程序仍然正常運行)。是否可以在控制檯中獲取訪問被拒絕的錯誤,或者如果沒有,處理它的最佳方式是什麼?

我仍然希望有限制的頁面文件夾,並沒有寫@RolesAllowed全部是在管理文件夾上面的方法。

PS:這是一個JSF 2.0項目。

在此先感謝,歡呼聲。

回答

0

問題1:我認爲你缺少的DelegatingFilterProxy在web.xml。配置是這樣的:

<filter> 
    <filter-name>springSecurityFilterChain</filter-name> 
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> 
</filter> 

<filter-mapping> 
    <filter-name>springSecurityFilterChain</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 

,並配置http元素如下:

<http auto-config="true" > 
    <intercept-url pattern="/faces/login.xhtml*" access="IS_AUTHENTICATED_ANONYMOUSLY"/> 
    <intercept-url pattern="/faces/admin/**" access="ROLE_ADMIN" /> 
    <access-denied-handler error-page="/faces/accessDenied.xhtml" /> 
    <form-login login-page='/faces/login.xhtml' default-target-url='/faces/index.xhtml' 
     always-use-default-target='true'/> 
</http> 

代替作爲禁止訪問的頁面屬性,使用禁止訪問的處理程序,上述屬性是不鼓勵。 Source

問題2:是的,如果您將日誌級別設置爲DEBUG並以匿名用戶身份第一次訪問受保護的資源,則這是正常的。看到這個FAQ

+0

感謝的1.3,是一個有用的答案:) – whizzkid 2012-04-25 09:01:10