注销后的grails spring安全重定向

时间:2014-09-17 13:05:12

标签: grails grails-2.0 grails-plugin

我使用grails spring security并希望在注销后将用户重定向到某个网址。到目前为止我发现的是,'logout.afterLogoutUrl'有一个特殊属性,grails.plugin.springsecurity.logout.postOnly应该设置为false。所以在我的Config.groovy中我有:

grails.plugin.springsecurity.logout.postOnly = false
logout.afterLogoutUrl = "/"

我的退出按钮如下:

    <sec:ifLoggedIn>
        <g:remoteLink class="logout buttons" controller="logout"><g:message code="btn.logout"
                                                               default="Loading&hellip;"/></g:remoteLink>
    </sec:ifLoggedIn>

当我点击退出按钮时,会出现以下请求序列:

  1. /注销/索引
  2. / j_spring_security_logout
  3. /
  4. /登录/ authAjax
  5. 从最后一个我得到&#39;状态代码:401 Unauthorized&#39;但是用户仍然可以看到我点击退出按钮的页面。 有谁知道如何处理这种情况?非常感谢你!

2 个答案:

答案 0 :(得分:5)

我注意到我使用了错误的属性名称来注销网址。我将其名称更改为grails.plugin.springsecurity.logout.afterLogoutUrl

答案 1 :(得分:2)

这可能是因为您的行为是安全的。请为匿名用户提供此功能。为此,请将IS_AUTHENTICATED_ANONYMOUSLY注释添加为: -

@Secured(['IS_AUTHENTICATED_ANONYMOUSLY'])
def yourActionName(){
    ...
}