5.10.5 ログアウトの実装(APIを使用する場合)
ログアウトは「5.10.4 認証に成功したSubjectをHttpSessionに登録する実装」でHttpSessionに登録されているSubjectを使用してLoginContextを再生成し,ログアウト処理を実行します。HttpSessionに登録されているSubjectは削除します。さらに,ユーザ属性をHttpSessionに登録している場合はその削除処理も実行します。ユーザ属性がある場合のログアウトの実装例を次に示します。
<% try { Subject subject = (Subject)session.getAttribute("ExampleSubject"); LoginContext lc = new LoginContext("Example", subject); session.removeAttribute("ExampleCredential"); session.removeAttribute("ExampleSubject"); lc.logout(); } catch (LoginException e) { ... } %> ...
セッションタイムアウト時は,HttpSessionが無効になるためHttpSessionに登録したSubjectやユーザ属性などは無効になります。
また,統合ユーザ管理のセッションは,HttpSessionと同期しているため無効になります。