我有一个实现了Spring Security的Grails应用程序(CAS)。但是,在我点击退出按钮后,我没有退出。我有LogoutController
,代码如下:
class LogoutController {
def index = {
println "IN LOGOUT CONTROLLER TRYING TO LOGOUT"
redirect uri: SpringSecurityUtils.securityConfig.logout.filterProcessesUrl // '/j_spring_security_logout'
}
def accessDenied = {
}
}
在我的Config.groovy
文件中,我有:
grails.plugins.springsecurity.logout.afterLogoutUrl = 'https://login.test.com/cas/logout'
我的GSP页面的代码是
<g:link controller='Logout'>Logout</g:link>
然而,当我点击退出按钮时,我被重定向,但没有完全注销。关于我做错了什么想法?
答案 0 :(得分:3)
您是否尝试过直接在控制器索引方法中调用session.invalidate()
?
class LogoutController {
def index = {
println "IN LOGOUT CONTROLLER TRYING TO LOGOUT"
session.invalidate()
redirect uri: SpringSecurityUtils.securityConfig.logout.filterProcessesUrl
}
}
干杯
答案 1 :(得分:0)
<g:link controller='Logout'>Logout</g:link>
def index = {
logoutProcessService.process(params)
redirect uri: SpringSecurityUtils.securityConfig.logout.filterProcessesUr
}