Spring Security 3.0 を使用しています。ユーザーがログアウトする前に、いくつかのロジックを実行する必要があります。
LogoutFilter
Spring Securityのクラスをオーバーライドすることでそれを達成することは可能ですか?
Spring Security 3.0 を使用しています。ユーザーがログアウトする前に、いくつかのロジックを実行する必要があります。
LogoutFilter
Spring Securityのクラスをオーバーライドすることでそれを達成することは可能ですか?
それを行う方法はたくさんあります。私が考えた2つを紹介します。
1)必要なことを行う独自のフィルターを作成します。ここでの重要なポイントは、フィルターを作成する場合、Spring Security にそれを「フィルターチェーン」に入れるように指示する必要があることです。これは、auth* 処理を行うためにリクエストが通過するフィルターのチェーンです。このドキュメントをチェックして、フィルターを適切な場所に挿入する方法の詳細を確認してください。ただし、次のようになります。
<http>
<custom-filter before="LOGOUT_FILTER" ref="cleanupFilter" />
</http>
<beans:bean id="cleanupFilter" class="com.CleanupFilter"/>
LogoutFilter をサブクラス化してもカスタム フィルターを作成していることに注意してください。同じことが適用されます。
2) ユーザーがログアウトする前だけでなく、少し後にSecurityContextLogoutHandler
カスタム ロジックを実行できる場合は、ユーザーが正常にログアウトしたときにカスタム ロジックを実行するためのフック ポイントを提供する (セクション B.1.13 のドキュメントを確認してください) の使用を検討してください。
<http>
<logout success-handler-ref="myLogoutSuccessHandler"/>
</http>