2013-07-22 1 views
0

스프링 보안이 구현 된 Grails 애플리케이션 (CAS)이 있습니다. 그러나 로그 아웃 버튼을 누른 후에는 로그 아웃되지 않았습니다. 내가 다음 코드는 LogoutController 있습니다스프링 보안 (CAS)을 사용하여 Grails 애플리케이션에서 로그 아웃하는 중 문제가 발생했습니다.

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

당신은 "로그 아웃"버튼 뒤에있는 코드 (아마도 GSP)을 게시 할 수 있습니까? –

+0

게시되었습니다. – user2433194

+0

'Config.groovy'에서'afterLogoutUrl'을 삭제하면 아무런 문제없이 로그 아웃 할 수있었습니다. 아마해볼 수 있니? –

답변

3

session.invalidate() 컨트롤러 인덱스 방법으로 직접 전화를 시도 했습니까?

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

건배

+0

. 내 gsp''에'session.invalidate'가 없으면 아직 로그인 한 것으로 보입니다. – Guus

0
<g:link controller='Logout'>Logout</g:link> 

def index = { 

    logoutProcessService.process(params) 
    redirect uri: SpringSecurityUtils.securityConfig.logout.filterProcessesUr 
} 
+1

답변을 수정하고 코드에 설명을 추가하십시오. – MillaresRoo