SpringSecurityのAnthenticationオブジェクトとは、認証情報を保存しておくオブジェクトです。
具体的には、Authenticationインターフェースを継承し、以下のような値を保存しています。
・権限(Authorities)
・ID/PWなどのログイン情報(Principal)
実体はたいてい、UsernamePasswordAuthenticationTokenが使用されているようです。
【Anthenticationオブジェクトの保存場所】
保存場所はSecurityContextですが、SecurityContextはセッションオブジェクトに入れています。
セッションのキー名は、以下の定数に設定されています。
HttpSessionContextIntegrationFilter.SPRING_SECURITY_CONTEXT_KEY
以下のようにすれば取得できますが、便利なツールがあるかもしれません。
SecurityContext securityContext = (SecurityContext)session.getAttribute(HttpSessionContextIntegrationFilter.SPRING_SECURITY_CONTEXT_KEY);
Authentication auth = securityContext.getAuthentication();
<JSTL上での取得>
これは以前の記事で記載していますので参考にしてください。
意外といろいろtaglibが用意されています。
ログイン後はIDなどがほしくなりますが、わざわざ自分でセッションに入れたりする必要はありません。
SpringSecurityがやってくれます。
Authenticationから取得しましょう!
参照:
・ログイン後の画面にログインしたユーザを表示するには? (ログイン情報の表示方法)
・ロール(権限)によって画面のリンクの表示/非表示を制御するには?