2011-09-07 17 views
0

我試圖配置春天MVC不驗證任何頁面沒有身份驗證(啓用使用ROLE_ANONYMOUS明確要求所有頁面)。春天<http>命名空間似乎導致所有非基於角色的頁面被允許

但我在調試日誌得到這個消息:

o.s.s.w.a.i.FilterSecurityInterceptor - Public object - authentication not attempted 

FilterSecurityInterceptor是由添加了命名空間。而我認爲我需要setRejectPublicInvocations在過濾器禁用此。

但我沒有看到任何方式通過http命名空間來做到這一點。我是否必須完全放棄使用http名稱空間才能完成此操作?

+0

這將是看到YOUT的applicationContext-security.xml文件 –

回答

-1

在我的情況下,我基本上做到了這一點。

並且它適用於匿名用戶。

<http auto-config="true" use-expressions="true"> 
    <intercept-url pattern="/css/**" filters="none" /> 
    <intercept-url pattern="/js/**" filters="none" /> 
    <intercept-url pattern="/img/**" filters="none" /> 
    <intercept-url pattern="/loginform.*" filters="none" /> 
    <intercept-url pattern="/topic/addtopic**" 
     access="hasAnyRole('USER_ROLE','ADMIN_ROLE','OPER_ROLE')" /> 
    <intercept-url pattern="/user/**" 
     access="hasAnyRole('USER_ROLE','ADMIN_ROLE','OPER_ROLE')" /> 
    <intercept-url pattern="/admin/**" access="hasRole('ADMIN_ROLE')" /> 
    <intercept-url pattern="/cadastro.*" filters="none" /> 
    <form-login login-page="/loginform.html" 
     authentication-failure-url="/loginform.html?error=invalido" /> 
</http> 
+0

的問題是,有用的,如果你有一個頁面/foobar.html你沒有明確授予的角色也將擔任「公「頁面/對象。我不想那樣。我希望確保所有頁面都以權限的形式明確定義(例如,頁面必須被賦予ROLE_ANONYMOUS權限或被拒絕)。 –

相關問題