0

我有一个实施了 Spring Security (CAS) 的 Grails 应用程序。但是,在我点击注销按钮后,我并没有注销。我有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>

但是,当我单击注销按钮时,我会被重定向,但没有完全注销。关于我做错了什么的任何想法?

4

2 回答 2

3

您是否尝试过session.invalidate()在控制器索引方法中直接调用?

class LogoutController {
    def index = {
        println "IN LOGOUT CONTROLLER TRYING TO LOGOUT"
        session.invalidate()
        redirect uri: SpringSecurityUtils.securityConfig.logout.filterProcessesUrl
    }
}

干杯

于 2013-11-28T00:50:15.747 回答
0
<g:link controller='Logout'>Logout</g:link>

def index = {

    logoutProcessService.process(params)
    redirect uri: SpringSecurityUtils.securityConfig.logout.filterProcessesUr
}
于 2014-12-19T09:19:39.627 回答