Struts 2、Spring、およびHibernateを使用するWebアプリケーションがあります。ユーザが別のブラウザにログインしたときに、あるブラウザでユーザセッションを無効にしますか?
現在、2つの異なるブラウザ(IEとFF)を使用しているユーザーは、同じアカウントに同時にログインできます。
ログインボタンを押すと、そのアカウントの他のすべてのログインを無効にする必要があります。
ユーザーがFirefox上のアカウントにログインします。同じユーザーがIEの同じアカウントにログインします。この場合、彼がIEにログインするとき、彼のFirefoxでのセッションは無効にする必要があります。
これを行う方法はありますか?
あなたは何をセッションにログインしなかったものを、ユーザーを追跡する場合は、はい、私はそれを行うことができると思う
私はこの2つの方法を改善することができます。スタティックを避けるには、スプリングまたはguiceを使用してシングルトンを注入します。第2に、クラスタを持っている場合や近い将来に移動する予定がある場合は、この情報を単一サーバの外部に保存する必要があります。 Memcachedはおそらくうまくいくでしょうが、DBのように永続的なものを見ることもできます。余分なセッションを無効にすることを知らせるために、クラスタ内のすべてのサーバーを更新するメカニズムが必要です。これには、ある種のpub/subが必要な場合があります。 – rfeak
はい、私はクラスタリングを考慮しないという単純な見解であることに同意します。しかし、あなたはmemcachedまたは同様のメソッドが正常に動作し、クラスターの世話をするべきであると示唆しました。セッションは設計によって複製されます(それ以外の場合、クラスタリングは機能しません)。したがって、ユーザーIDとセッションIDを関連付けることになります。 –