2

Spring Security 3.0 を使用しています。ユーザーがログアウトする前に、いくつかのロジックを実行する必要があります。

LogoutFilterSpring Securityのクラスをオーバーライドすることでそれを達成することは可能ですか?

4

1 に答える 1

3

それを行う方法はたくさんあります。私が考えた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>
于 2013-06-05T13:06:27.960 に答える