Spring Security とセッションの無効化についての質問です。
ConcurrentSessionControlStrategy によってセッションが無効化されると、セッションは removeSessionInformation メソッドを呼び出すことによって SessionRegistry から削除されますが、セッションが手動ログアウトによって無効化されると、HttpSession は無効化されますが、そこからエントリを削除するための SessionRegistry への呼び出しはありません。
HttpSessionDestroyedEvent イベントをキャプチャするリスナーとして HttpSessionEventPublisher を追加しましたが、SessionRegistry への呼び出しはありません。
LogoutFilter の独自の実装を作成し、手動で removeSessionInformation を呼び出すハンドラーを追加することでこれを回避しましたが、可能であれば標準のスプリング アノテーションを使用できるようにしたいと考えています。(注: セッションは既に無効化されているため、標準のログアウト タグの success-handler-ref フィールドは使用できないため、セッション ID にアクセスできません)
ここに欠けているものはありますか、それともSpringが見逃したものですか?
ちなみに、これはSpring Security 3.1.0を使用しています。