2017-04-17 28 views
0

Spring Security 2.x正在攔截http:servername/webAppName。根據我的理解,filter="none"應該丟棄任何不需要訪問角色的URL的Spring Security篩選器鏈。任何人都知道爲什麼這個設置攔截所有未聲明的URL(/listing/load),包括基本URL?Spring Security url-interceptor leak at/*

<http auto-config="true" entry-point-ref="entryPoint" session-fixation-protection="none"> 
    <intercept-url pattern="/listing/pages/*" filters="none"/> 
    <intercept-url pattern="/load/page/*" filters="none"/> 
    <intercept-url pattern="/admin/*" access="ROLE_USER"/> 
    <intercept-url pattern="/secret/*" access="ROLE_USER"/> 
    <intercept-url pattern="/**" filters="none"/> 
    <http-basic/> 
</http> 
+0

看看http://stackoverflow.com/questions/10513688/apply-security-none-to-context-root-and-static-resources-spring-security-versi – dur

+0

謝謝。會看看我是否可以有類似的東西。該鏈接涵蓋了spring安全3.1 – MAXStack

回答

-1

試試這個,

<security:http auto-config="true" entry-point-ref="entryPoint" session- 
fixation-protection="none"> 
<http-basic/> 
<intercept-url pattern="/admin/*" access="ROLE_USER"/> 
<intercept-url pattern="/secret/*" access="ROLE_USER"/> 
<intercept-url pattern="/listing/pages/*" access="ROLE_ANONYMOUS"/> 
<intercept-url pattern="/load/page/*" access="ROLE_ANONYMOUS"/> 
<intercept-url pattern="/**" access="ROLE_ANONYMOUS"/> 
</security:http> 

,是的,檢查春季安全您的xmlns命名空間,是罰款?

+0

... MAXStack

+1

用於測試目的我替換爲您提及的並最終導致無限循環。 access =「ROLE_ANONYMOUS」不會丟棄過濾器鏈,並且如果請求頭缺少來自站點管理器的信息,則添加的定製過濾器將引發異常。這裏的目的是跳過過濾器鏈。以下是我的名字空間。 – MAXStack

+0

@MAXStack如果你只是想跳過過濾器鏈(儘管不推薦),那麼就做一些類似下面的事情:通過擴展GenericFilterBean來編寫你自己的自定義過濾器,然後只需執行你的業務任務,並刪除對filterChain.doFilter請求,響應)方法。如果想看到一個例子寫入自定義過濾器,請檢查我的其他答案http://stackoverflow.com/a/43474961/6838178 – KAmit