2013-02-28 82 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