1

春のセキュリティを実装しました。次のコードを使用してログインしているすべてのユーザーを取得し、オンラインタグの下に表示できます

 for (Object user: sessionRegistry.getAllPrincipals()) {
            User onlineUser = (User) user;
            onlineUsersIds.add(onlineUser.getId());
         }

オンライン ユーザー リストを更新できるように、ユーザーがログインしたばかりであることを知ることは可能ですか。それとも、5 分または 10 分ごとに sessionRegistry をチェックしてから、5 分または 10 分ごとにユーザー リストを更新する必要があります。

他に詳細が必要な場合はお知らせください。

4

1 に答える 1

1

私はこれを使用します: javax.servlet.http.HttpSessionBindingListener http://docs.oracle.com/javaee/5/api/javax/servlet/http/HttpSessionBindingListener.html

これは「セッションごと」に行われます。

したがって、誰かが認証されるたびに、春のセキュリティはセッション内に特定の値を配置します。

あなたがすることは、「valueBound」および「valueUnbound」メソッドでそのセッション属性をチェックすることです。これらのメソッドは、アプリケーション スコープの「設定」または同期された「設定」を取得し、それに応じてそれらを処理します。

ページをレンダリングするたびに、アプリケーション スコープ セットから読み取るだけです

于 2012-12-05T18:20:45.367 に答える