2012-12-23 115 views
0

Grails的春季安全插件文檔顯示當我運行S2-快速入門腳本生成的LogoutController註銷的URL(從https://github.com/grails-plugins/grails-spring-security-core/blob/master/src/docs/guide/13%20URL%20Properties.gdoc複製)Grails的春季安全插件URL

logout.afterLogoutUrl | '/' | URL for redirect after logout. 

logout.filterProcessesUrl | '/j_spring_security_logout' | Logout URL, intercepted by Spring Security filter. 

相關的這兩個屬性,默認行爲是重定向到logout.filterProcessesUrl

如果LogoutController沒有重定向到logout.afterLogoutUrl的目的是什麼?

回答

2

Spring Security引入了一些過濾器Java filters,而不是Grails。此篩選器執行所有身份驗證作業,請參閱http://static.springsource.org/spring-security/site/docs/3.1.x/reference/security-filter-chain.html

logout.filterProcessesUrl由Spring Security篩選器處理,並在清理(將用戶從當前上下文中刪除等)後重定向到logout.afterLogoutUrl

LogoutController什麼都不做,只是重定向過濾。你可以在你自己的控制器中將用戶重定向到這個用戶,或者甚至把<a鏈接到這樣的URL

+0

所以我需要創建一個控制器,它由'/ j_spring_security_logout'指向,進行清理,然後在該控制器,我應該重定向到'logout.afterUrl'?或者這是否會自動發生(我沒有看到任何會導致這種情況自動發生的'UrlMappings.groovy')? –

+0

這是自動發生的,有一個標準的java過濾器(不是Grails過濾器),處理'logout.filterProcessesUrl' url –

+0

好的,謝謝。如果你不介意還有2個問題。 1.是否有定製/ j_spring_security_logout的理由?我認爲這是一個可定製價值的理由。 2.插件是否會對我的配置文件進行任何編譯時間更改?我試圖找出過濾器的添加位置,但我不確定它在哪裏。 –