最近、プロジェクトで spring-session の使用を開始しました。これはレガシー アプリケーションであり、いくつかのHttpSessionListenerがあります。そのため、セッションが期限切れになるか、ユーザーが無効化すると、セッションsessionDestroyed(HttpSessionEvent se)
メソッドが呼び出されます。メソッド onHttpSession
を呼び出すことで、破棄されようとしている を取得できます。getSession()
HttpSessionEvent
春のセッションにも似たようなものがあります。Redis セッション リポジトリの実装はorg.springframework.session.events.SessionDestroyedEvent
イベントを発生させ、それにApplicationListenerを追加して何らかの処理を行うことができます。
しかし、これは私のニーズを満たしていません。
私が抱えている問題は、2 つの主な理由により、既存の HttpSessionListener を移行してこれらを使用するために使用できないことです。
Spring Session によって発生したイベントは、破棄されようとしているセッション ID のみを提供します。セッション オブジェクト全体のコピーは提供されません。したがって、既存の HttpSessionListener に何らかの処理にいくつかの属性を使用するロジックがある場合、今はそれを行うことができません。
セッションの作成時にイベントはありません。セッションの作成時にいくつかの作業を行う HttpSessionListener があります。
では、春のセッションで動作する HttpSessionListener で使用していた機能を取得するには、どのようなオプションが必要ですか?