我在注销按钮中使用以下代码:
<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).
此外,即使我将缓存控制添加到响应中,后退按钮也会将我带到页面。
答案 0 :(得分:0)
可能不建议将弹出安全性的会话无效。因为有一个SecuritySession也有cookie。最好使用Spring security提供的最新信息。
import grails.plugin.springsecurity.SpringSecurityUtils
redirect uri: SpringSecurityUtils.securityConfig.logout.filterProcessesUrl
然后,您可以通过spring security plugin的配置选项配置默认登录URL