1

ある種の管理パネルから(セッションIDによって)特定のセッションを強制終了する機能が必要です。

私は次のアプローチを使用しようとしました:

public static void killSession(String sid) {

    HttpSessionContext sc = FacesUtil.getSession().getSessionContext();
    HttpSession session=sc.getSession(sid);        

    session.invalidate();
}

でも

  1. セッションのHttpSessionContext、getSessionContext()およびgetSession(sessionId)メソッドはすべて非推奨です(セキュリティ上の理由から)
  2. 上記のコードは、ApplicationScopedJSFマネージドBeanで呼び出されたときにもnullセッションを取得します

機能を実現するための別の方法を探しています。

4

1 に答える 1

2

はい、セキュリティ上の理由sessionから、他のユーザーから無効にすることはできません。sessionあなたができることは、管理者が利用できるsessionsいくつかにすべてを手動で保存することです。static attributeしたがって、ユーザーがログインし、彼と彼sessionをこの属性に追加します(通常はaと彼をMap/HashMapakeysessionとしてvalue)。

ここで私の古い答えを見てください、そしてあなたは考えを得るでしょう。

于 2012-05-17T07:47:27.257 に答える