かなり標準的な設定の春のセキュリティアプリケーションがあります。現時点では、プリンシパルごとに1セッションしか許可しません。最初のセッションがログアウトまたは期限切れになるまで、同じプリンシパルによる追加ログインを拒否します(maximumSessions = 1、excpeptionIfMaximumExceeded = true)。同時ログインでセッションに警告する
これを変更して、プリンシパルが別のセッションで現在アクティブなログインで2回目にログインしたときに、最初のセッションが無効化/置き換えられるようにしたいと考えています。これは、提供されたスプリングセキュリティの同時セッション制御戦略を使用して簡単に実行できますが、ユーザーに警告する方法を理解するのに問題があります。ユーザのセッションが置き換えられると、そのセッションはログアウトハンドラによって無効にされます。次のリクエストでは、ログイン・ページにリダイレクトされ、問合せ文字列にエラー・コードが表示されます。しかし、このリダイレクトを取得するリクエストが画像やプログラム以外の他の呼び出しであれば、これを処理できません。
ユーザーをセッションのある中間の状態にする必要がありますが、期限が切れているため、元のセッションを置き換えようとしなかった場合にはログインする必要があります。しかし、私はこれを行う良い方法はありません。
このような設定の例がありますか?
私たちは現在、これに適応するタイムアウトのためにセッションが期限切れになるためのポーリングメカニズムを持っています。私たちはログイン時に別のステップを踏むことで対応できますが、UI側で退去したセッションをきれいに処理することにもっと興味があります。セキュリティは本当にブール値でなければならないと私は同意しますが、セッションを "魔法のように"無効なセッションの最後のリクエストがリクエストによってキャッチされた場合のログイン画面、つまり返されたステータス、つまりイメージまたはスクリプトが処理できない場合 – HonkHonkHonk