2013-02-28 42 views
1

我使用GGTS和Grails的2.2.0和已實施春季安全與基本認證以及以下選項Grails的2.2.0,春季安全 - 註銷功能

Config.groovy中

grails.plugins.springsecurity.useBasicAuth = true 
grails.plugins.springsecurity.digest.realmName = 'someval' 
不工作

LogoutController {

def index = { 
    redirect uri: SpringSecurityUtils.securityConfig.logout.filterProcessesUrl 
} 

當我點擊註銷 - 它不記錄用戶退出後,它將我帶回主頁。我看過論壇,但還沒有找到任何可行的方法。

我要確保,無論解決方案的實施,完全註銷的使用和用戶不能回回到原來的頁面,而不重新登錄。

任何指針/建議表示讚賞。

回答

2

問題是HTTP基本認證。它沒有指定註銷的方式。我相信有一些「非官方」方法可行(請參閱How to log out user from web site using BASIC authentication?),但Spring Security似乎並未使用它們。

最好的解決方案是完全避免基本身份驗證。如果這不是一個選項,你必須編寫一個自定義的LogoutController,例如發回一個401錯誤代碼。

+0

謝謝您再次確認我一直在閱讀的內容,我最終將使用DigestAuth - BasicAuth必須在此期間完成。你有沒有關於在Grails中實現Digest auth的文章建議? – user1811107 2013-03-01 02:28:49

+2

摘要認證使用相同的機制,只有更安全。大多數網站只是忽略HTTP身份驗證並在應用程序中處理它。 – ataylor 2013-03-01 02:48:40