Anthenticationオブジェクト(SpringSecurity)とは | Java Springの逆引きメモ

Java Springの逆引きメモ

JavaのSpring frameworkのメモを書いていきます!
初心者の勉強ノートなので間違いがあるかもしれませんが、何かヒントになることがあれば幸いです。

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から取得しましょう!



参照:

・トップ

・ログイン後の画面にログインしたユーザを表示するには? (ログイン情報の表示方法)

・ロール(権限)によって画面のリンクの表示/非表示を制御するには?

・閲覧許可がある画面のリンクのみ表示するには?

・拡張して、独自の機能をつけるには?