2011-11-20 7 views
1

私のページには、ユーザーを管理するための管理パネルがあります。
ユーザーを削除またはブロックし、このユーザーが既に自分のWebページにログインしているとします。JSFでの特定のユーザーセッションの破棄

どのようにして彼のセッションを破壊できますか?

ユーザー使用のj_security_check
(HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest().login(getUsername(), getPassword());

経由でログイン:あなたはsesssionObject.invalidate()を利用することができます

  • JSF 2.1
  • Primefaces 2.2.1
  • Glassfishの3.1

答えて

0

を方法次のようにしてください。セッションオブジェクトに

HttpSession session= 

(HttpSession)FacesContext.getCurrentInstance().getExternalContext().getSession(true); 

session.invalidate(); 

invalidate()方法が起こっている現在のセッションを破壊します。

+3

これは、他のユーザーのセッションではなく管理者セッションを無効にします。 –

2

アプリケーションレベルマップまたはデータベースに「無効化」フラグを設定し、各要求時に現行ユーザーの「無効化」フラグが設定されていないことをサーブレット・フィルターでチェックできます。

+0

私は知っていますが、私の意見では、これは非常に効果のない方法です。 – vizzdoom

関連する問題