Grails注销按钮不起作用

时间:2014-11-20 21:06:31

标签: grails

我在注销按钮中使用以下代码:

<a id="login-control-logout" href="${createLink(controller:'LicGenerator', action:'logout')}"><i class="icon-off"></i> Logout</a></li>

在我的控制器中,我使用以下代码:

  def logout() {
    request.getSession().invalidate()
    response.setHeader("Cache-Control","no-cache,no-store,must-revalidate")
    response.setHeader("Pragma","no-cache")
    response.setDateHeader("Expires", 0)
    redirect(uri:'/login.html')
}

它转到login.html,但是当我再次输入用户名和密码时,它不会重新登录并输入错误

type Status report

message /LicGenerator/j_security_check

description The requested resource (/LicGenerator/j_security_check) is not available.

当我刷新浏览器时,我收到了这个错误:

type Status report

message Invalid direct reference to form login page

description The request sent by the client was syntactically incorrect (Invalid direct reference to form login page).

此外,即使我将缓存控制添加到响应中,后退按钮也会将我带到页面。

1 个答案:

答案 0 :(得分:0)

可能不建议将弹出安全性的会话无效。因为有一个SecuritySession也有cookie。最好使用Spring security提供的最新信息。

import grails.plugin.springsecurity.SpringSecurityUtils

redirect uri: SpringSecurityUtils.securityConfig.logout.filterProcessesUrl

然后,您可以通过spring security plugin的配置选项配置默认登录URL