Webアプリケーションにログインしている全ユーザーの一覧を表示するには(Spring Security経由で)どうすればよいですか?
2023-11-17 05:28:11
質問
Webアプリケーションでspring securityを使用していますが、私のプログラムにログインしているすべてのユーザのリストが欲しいのです。
どうすればそのリストにアクセスできるのでしょうか?それらはすでにspringフレームワーク内のどこかに保存されていないのでしょうか?たとえば SecurityContextHolder または SecurityContextRepository ?
どのように解決するのですか?
ログインしているすべてのユーザーのリストにアクセスするためには、SessionRegistryのインスタンスをBeanに注入する必要があります。
@Autowired
@Qualifier("sessionRegistry")
private SessionRegistry sessionRegistry;
そして injcted SessionRegistry を使って全てのプリンシパルのリストにアクセスすることができます。
List<Object> principals = sessionRegistry.getAllPrincipals();
List<String> usersNamesList = new ArrayList<String>();
for (Object principal: principals) {
if (principal instanceof User) {
usersNamesList.add(((User) principal).getUsername());
}
}
しかし、セッションレジストリを注入する前に、spring-security.xmlでセッション管理部分を定義する必要があります(以下は Session Managementセクションをご覧ください。 を見てください)、同時実行制御セクションでセッションレジストリオブジェクトのエイリアスを設定する必要があります ( セッションレジストリエイリアス を設定し、それを注入します。
<security:http access-denied-page="/error403.jsp" use-expressions="true" auto-config="false">
<security:session-management session-fixation-protection="migrateSession" session-authentication-error-url="/login.jsp?authFailed=true">
<security:concurrency-control max-sessions="1" error-if-maximum-exceeded="true" expired-url="/login.html" session-registry-alias="sessionRegistry"/>
</security:session-management>
...
</security:http>
関連
-
[解決済み] Node.jsを使うタイミングをどう判断するか?
-
[解決済み] Spring Bootアプリケーションにポートを設定する方法
-
[解決済み] Spring Securityを使用する場合、Beanで現在のユーザー名(つまりSecurityContext)情報を取得する適切な方法は何ですか?
-
[解決済み】SpringでList Beanを定義する方法は?
-
[解決済み] java:comp/env/は何をするところですか?
-
[解決済み] Spring DAOとSpring ORMとSpring JDBCの比較
-
[解決済み] Spring Securityをセッションなしで使用するにはどうすればよいですか?
-
[解決済み] Map または Properties オブジェクトとしてすべての環境プロパティにアクセスする
-
[解決済み] SpringアプリケーションのコンテキストをJunitのテストクラスで再利用する
-
[解決済み] クオーツ 決して実行されないCron式
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Spring CrudRepositoryで大文字小文字を区別しないクエリ
-
[解決済み] 同じurlパターンに対して異なる引数で2つのメソッドを作成する
-
[解決済み] Intellij IDEAがSpring Bootのプロパティを解決できないと訴えるが、問題なく動作している
-
[解決済み] Spring CORS 'Access-Control-Allow-Origin' ヘッダが存在しない。
-
[解決済み] SpringアプリケーションのコンテキストをJunitのテストクラスで再利用する
-
[解決済み] モックMVC - リクエストパラメータをテストに追加する
-
[解決済み] Spring Data Rest - 複数のプロパティでソートする
-
[解決済み] Spring MVCのModelAndViewにおけるModelとは?
-
[解決済み] Spring MVCアプリケーションにSwaggerを実装する「簡単な」方法
-
Springは抽象クラス内部でオートワイヤリングできるのか?