2012-10-07 6 views
0

모든 페이지의 헤더에 로그 아웃 링크가 있습니다. 사용자가 로그 아웃 링크를 클릭하면 /j_spring_security_logout URL로 리디렉션되어 봄 보안의 로그 아웃 필터를 실행합니다.로그 아웃 페이지로 리디렉션 할 수 없습니다

그래서 여기에 내가 무슨 짓을했는지 :

<h:commandLink action="logout?faces-redirect=true" value="Logout"/> 

및 탐색 규칙 :

<navigation-rule>  
    <navigation-case> 
     <from-outcome>logout</from-outcome> 
     <to-view-id>/j_spring_security_logout</to-view-id> 
     <redirect /> 
    </navigation-case> 
</navigation-rule> 

내가 JSF2을 사용하고 그리고 난 항상 탐색 prettyfaces를 사용하지만, 지금 내가 탐색 규칙을 사용해야합니다 그래서 위의 코드가 작동하지 않는 이유는 무엇입니까?

URL을 클릭 할 때 작동하지 않는 경우이를 해결하는 방법을 알려주십시오.

+0

당신이 사용할 수있는 ['로그 아웃-url' 매개 변수 (http://static.springsource.org/spring-security/site/docs/3.1.x/reference/springsecurity-single.html#nsa- XML 네임 스페이스 설정을 사용한다면 JSF없이 Spring Security에서 직접 로그 아웃 (logout-logout-url) 할 수있다. – Xaerxess

답변

2

<to-view-id>은 임의의 비 JSF URL 경로가 아닌 /page.xhtml과 같은 유효한 JSF 뷰 ID 여야합니다.

그냥 일반 HTML 링크를 사용합니다.

<a href="#{request.contextPath}/j_spring_security_logout">Logout</a> 
+0

하지만 URL에 j_spring_security_logout이 나타나기를 원하지 않습니다. 외부 컨텍스트 리디렉션을 통해 작업 방법을 사용해야한다고 생각합니까? –

+0

리디렉션을 사용하면 URL에 리디렉션됩니다. – BalusC

관련 문제