使用Spring Security(CAS)从Grails应用程序注销时遇到问题

时间:2013-07-22 18:59:39

标签: grails spring-security cas

我有一个实现了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>

然而,当我点击退出按钮时,我被重定向,但没有完全注销。关于我做错了什么想法?

2 个答案:

答案 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
}