2011-07-14 12 views
4

私は春のセキュリティに慣れていません。私は春のセキュリティ3の例を作成しました。スプリングセキュリティ3ログアウトが機能しない

私は問題に直面しています。デフォルトのログインページで正常にログインできますが、ログアウトすると、私はloggedout.jspにリダイレクトされましたが、URLを変更してチェックすると、まだログインしています。

The Spring security.xml

<beans:beans xmlns="http://www.springframework.org/schema/security" 
    xmlns:beans="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
     http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
     http://www.springframework.org/schema/security 
     http://www.springframework.org/schema/security/spring-security-3.1.xsd"> 

    <http pattern="/loggedout.jsp" security="none" /> 

    <http auto-config='true'> 
     <intercept-url pattern="/**" access="ROLE_USER" /> 
     <logout logout-success-url="/loggedout.jsp" invalidate-session="true" 
      delete-cookies="JSESSIONID" /> 

     <!-- <remember-me key="myAppKey" /> --> 
     <!-- <session-management invalid-session-url="/timeout.jsp"> 
      <concurrency-control max-sessions="1" 
       error-if-maximum-exceeded="true" /> 
     </session-management> --> 
    </http> 

    <authentication-manager> 
     <authentication-provider> 
      <user-service> 
       <user name="vrajesh" password="vrajesh" 
        authorities="ROLE_USER,ROLE_ADMIN" /> 
       <user name="test" password="test" 
        authorities="ROLE_USER,ROLE_ADMIN" /> 
      </user-service> 
     </authentication-provider> 
    </authentication-manager> 

    <!-- 
     <http pattern="/loggedout.jsp" security="none"/> 
     <http use-expressions="true"> 
      <intercept-url pattern="/**" access="ROLE_USER" /> 
      <form-login /> 
      <logout logout-success-url="/loggedout.jsp" 
       delete-cookies="JSESSIONID"/> 
      <remember-me /> 
      <session-management invalid-session-url="/timeout.jsp"> 
       <concurrency-control max-sessions="1" 
        error-if-maximum-exceeded="true" /> 
      </session-management> 
     </http> 
    --> 

</beans:beans> 

これは、すべてのページに私のログアウトリンクです:

<p><a href="j_spring_security_logout">Logout</a></p> 

と、これは私のloggedout.jspです:

<p> 
You have been logged out. <a href="<c:url value='/'/>">Start again</a>. 
</p> 

私のloggedout.jspに、私が「スタート」リンクをクリックするとログインページが表示されるはずですが、そうではありません。代わりに、私はアプリケーションにログインしています。

何か不足している場合は私を助けて、私に教えてください。すべてのページに

+0

投稿しているHTMLを修正して、実行している実際の設定ファイルを明確にしてください。また、 "start again"というリンクを明確にしてください。 DEBUGロギングを有効にしましたか? –

+1

ブラウザにキャッシュされたバージョンのページだけでなく、まだアプリケーションにログインしていることを確認しましたか? – atrain

答えて

0

j_spring_security_logoutを参照するとき、私は問題を抱えていたので、私はこれをしなかった:spring-security.xml

1.-セクションに追加:

<logout logout-url="/logout.html"/> 

2.-私のコントローラ私はちょうど持っている:

@RequestMapping(value = "logout.html", method = RequestMethod.GET) 
    public String logout(ModelMap model, HttpServletRequest request) { 
     return "loginform"; 
    } 

.jspというで3.-:

<a href="${pageContext.request.contextPath}/logout.html"><fmt:message key="text.exit" /></a> 

そして、それは完璧に動作します:)

あなたは追加のログアウト構成hereを確認することができます。

4

あなたのログアウトリンクは次のようになります。

<p><a href="/j_spring_security_logout">Logout</a></p> 
関連する問題