2016-06-02 30 views
0

私はSpring Security 3.2から4.1に移行していますが、私は(まだ)XML設定を使用しています。xmlの設定でSpring Security 4.xのログアウト方法をGETに設定する

<logout />要素を使用すると、httpメソッドをGETに設定できないようです。

これは本当ですか?

「はい」の場合、「/ logout」へのコントローラマッピングを作成し、そこからプログラムでログアウトする必要がありますか?

+0

を登録します(セッション)を変更するために 'GET'を使用してはならないということである要素に

<custom-filter before="CSRF_FILTER" ref="logoutFilter" /> 

をカスタムフィルタを置くことを忘れないでください状態。それはすべての種類のセキュリティガイドラインを破ります。 (そしておそらくあなたのアプリケーション:http://stackoverflow.com/a/14587231/995891) – zapl

+0

私はJavaScriptを使って今すぐPOSTに行きました。情報のおかげで。 – yglodt

答えて

0

従来の理由から、LogOutFilterとXML設定にGETを使用する必要があります。以下は動作します。注意:私はcsrfの保護を回避することをお勧めしませんが、私はしなければなりませんでした。

これは他の人に役立つかもしれません。

<b:bean id="logoutFilter" class="org.springframework.security.web.authentication.logout.LogoutFilter"> 
    <b:constructor-arg name="logoutSuccessUrl" value="/loggedOut" /> 
    <b:constructor-arg name="handlers"> 
     <b:list> 
      <b:bean class="org.springframework.security.web.authentication.logout.SecurityContextLogoutHandler"/> 
     </b:list> 
    </b:constructor-arg> 
    <b:property name="logoutRequestMatcher"> 
     <b:bean class="org.springframework.security.web.util.matcher.AntPathRequestMatcher"> 
      <b:constructor-arg name="pattern" value="/logout*"/> 
      <b:constructor-arg name="httpMethod" value="GET"/> 
     </b:bean> 
    </b:property> 
</b:bean> 

ここで重要なことは、あなたがあなた自身のlogoutRequestMatcher

関連する問題