Spring Bootで現在ログインしているユーザーを調べるには?
2023-09-03 12:22:18
質問内容
で このSpring Bootアプリケーションの には、ログインしたユーザーのデータを返すウェブサービスがあります。
@RequestMapping("/resource")
public Map<String, Object> home() {
Map<String, Object> model = new HashMap<String, Object>();
model.put("id", UUID.randomUUID().toString());
model.put("content", "Hello World");
return model;
}
想像してみてください、このメソッドの戻り値は、現在どのユーザーがログインしているかに依存します。
そのメソッドでどのユーザーがログインしているかを調べるにはどうしたらよいでしょうか。
どのように解決するのですか?
ご要望にお応えして。
を使用するSpring Bootは Spring Securityを内部的に が提供する SecurityContextHolder クラスで、現在認証されているユーザを参照することができます。
Authentication auth = SecurityContextHolder.getContext().getAuthentication();
この 認証 インスタンスが以下のメソッドを提供するようになりました。
-
ログインしているユーザのユーザ名を取得します。
getPrincipal()
-
認証されたユーザーのパスワードを取得します。
getCredentials()
-
認証されたユーザーの割り当てられたロールを取得します。
getAuthorities()
-
認証されたユーザーのさらに詳しい情報を取得します。
getDetails()
関連
-
実行中にEclipseがポップアップする A Java Exception has occurred
-
SLF4J: クラス・パスに複数のSLF4Jバインディングが含まれています。
-
Javaがリソースリークに遭遇した:'input'が閉じない 解決方法
-
git pull appears現在のブランチに対するトラッキング情報がありません。
-
[解決済み] Javaでネストされたループから抜け出すには?
-
[解決済み] Javaの「for each」ループはどのように機能するのですか?
-
[解決済み] Spring Bootアプリケーションにポートを設定する方法
-
[解決済み] Spring BootでSQL文のログを取るには?
-
[解決済み] Spring Bootでapplication.propertiesファイルに定義された値にアクセスする方法
-
[解決済み] Spring Boot RESTサービスの例外処理
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
undefined[sonar] sonar:デフォルトのスキャンルール
-
型に解決できない エラー解決
-
SLF4J: クラス・パスに複数のSLF4Jバインディングが含まれています。
-
スレッド "main" での例外 java.lang.ArrayIndexOutOfBoundsException:5 エラー
-
強制型変換について
-
無効な文字定数
-
SpringBoot 起動エラー java.nio.charset.MalformedInputException: 入力長 = 2 解決
-
keytool error: java.io.FileNotFoundException: cacerts (アクセス拒否されました。)
-
JNIエンカウンターエラー:構造体またはユニオンではない何かでメンバー 'FindClass' のリクエスト
-
java 365*1000*60*60*24 計算問題