2

アプリケーションで Grails Spring Security を使用してユーザー認証を実行します。ユーザーがアプリケーションにログインすると、rememberMe Cookie が保存されます。これは、ユーザーがブラウザー セッション間でログインしたままになることを意味します。

現在オンラインのユーザーを確認するにはどうすればよいですか? SessionRegistryImplorを使用してセッションからこの情報を取得できると読みましたが、それHttpSessionListenerを実装する方法がわかりません。この投稿を見つけましたが、それを Grails に変換する方法がわかりません: Spring Security を使用するオンライン ユーザー

何か案が?

4

1 に答える 1

0

私は、オンライン ユーザーに依存する出会い系アプリケーションを作成しました。オンライン ユーザーを追跡する Grails のサービスを作成しました。必要なのは、同時ハッシュ マップを保持するサービスを作成することだけです。このサービスはシングルトンであるため、Web アプリケーション全体に対して 1 つのインスタンスのみです。ユーザーが初めてログインするときは、ユーザー ID と将来の時刻をハッシュ マップに設定します。例えば:

キー = ユーザー ID 値 = 現在 + 30 分

したがって、ユーザーがログインすると、ログイン時間を 30 分増やし、ハッシュ マップに挿入します。ユーザーが送信するリクエストごとに、ユーザー ID を使用して有効期限を調べて、ハッシュ マップの値を更新します。そのため、ユーザーがブラウザを閉じると、有効期限が更新されず、オンライン ステータスが無効になります。30 分ごとに実行されるジョブを作成し、有効期限が NOW よりも短いキーを削除できます。または、オンライン ユーザーを数えたい場合は、マップをループして、有効期限が NOW より後のエントリを数えます。

これはメモリ内のハッシュ マップであり、アクセスと操作が非常に簡単で、高速です。これは私にとってはうまく機能し、同時ハッシュ マップを使用しているため、更新と読み取りは安全です。これがあなたが望むものを手に入れるのに役立つことを願っています. 私の答えが遅くなって申し訳ありませんが、私はちょうどこの質問を見ました:)

于 2014-02-26T19:18:31.093 に答える