私は、ユーザーのセッションを処理するためのルールの下に定義されています。春にセッションタイムアウトの前に条件を置くことはできますか?
- ユーザーがログインすると、HttpSessionListenerのsessioncreate()が呼び出され、ユーザーステータスがデータベースのオンラインとして設定されます。 HttpSessionListenerの
- ユーザーがsessiondestroyを(ログアウト)ユーザーがブラウザ/タブを閉じると、セッションを破壊するために、ブラウザのアンロード/ some_otherイベントにAJAX呼び出しを行う
- ...呼び出され、データベースにオフラインとしてユーザステータスを設定します。
- 我々は完全にブラウザのイベントに依存することはできませんので、また、サーバー側でSESSION_TIMEOUTを使用しています。セッションタイムアウトイベントでは、まずサーバーからクライアントへの検証呼び出しを行い、依頼者がまだ利用可能かどうかを確認します。クライアントから確認応答を受け取った場合、ブラウザタブがまだ開いていることを意味します。だから私たちはセッションを破壊しません。ここで最後のルールで
、どのセッションをインターセプトするには、春のメカニズムを破壊しますか? クライアントから承認を受け取った場合、セッション破棄をスキップする方法はありますか?
おかげで、
だけで明確にするには、あなたがいる限り、ブラウザが開いていると、アクティブなセッションを維持したいですか?ユーザーが画面上で何もタスクを実行していない場合でも? –
はいセッションがアクティブである必要があります。ユーザーがランダムに選択されるという要件があります。それまで彼は待っています。 –
あなたはすでに、すぐにAJAXリクエストが=「ログアウト」アクションのようないくつかのパラメータを指定して来て、より安全側としてあなたがで最大非アクティブ時間を設定することができますように、セッションを無効化することで、サーバー側でログアウトを実行するには、ブラウザのアンロードイベントでその罰金をいくつかのイベントを送信すると設定session.setMaxInactiveInterval(15 * 60); // inseconds –