2012-10-07 96 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視圖ID,例如/page.xhtml,而不是任意的非JSF URL路徑。

只需使用簡單的HTML鏈接即可。

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

但我不想在URL中出現j_spring_security_logout,我想我應該使用外部上下文重定向的動作方法,您怎麼看? –

+0

重定向也會使其顯示在URL中。 – BalusC