フォーム認証を使用した JSF ログイン ページがあります。HttpServletRequest.login(username, password) を呼び出してユーザーにログインします。ログアウトするには、最初に ExternalContext.invalidateSession() を呼び出し、次に現在のユーザーに対して HttpServletRequest.logout() を呼び出します。
私の計画は、ユーザーがログインするたびにリストに追加し、ユーザーがログアウトするときにリストから削除することにより、アプリケーション スコープのリストでログインしているユーザーを追跡することです。
このアプローチには 2 つの懸念があります。
すでにログインしているユーザーが、最初にログアウトせずに再度ログインしようとした場合、既存のセッションを無効にしてクリーンアップを行いたいと考えています。特定のログイン ユーザーのセッションにアクセスするにはどうすればよいですか? この機能を使用して、一部のユーザーを強制的にログアウトすることもできます。
セッションの有効期限が切れた場合 (タイムアウトなど)、ログインしているユーザーのリストからユーザーを削除したいと考えています。セッションの有効期限をリッスンするにはどうすればよいですか?