- PR -

ServletでSessionの一覧を取得する方法

1
投稿者投稿内容
@koto
会議室デビュー日: 2001/08/17
投稿数: 17
投稿日時: 2001-11-07 15:09
ServletでSessionの一覧を取得して、ログインユーザー一覧表
みたいなものを作ろうと思っています。

ですが、ログインユーザーのみのセッション取得のしかたはわかるのですが
Session一覧を取得する方法が分りません。ひょっとして無いのですか?
どなたか、ご存知の方がいましたらヒントをください。 宜しくお願いします。
おがわ
大ベテラン
会議室デビュー日: 2001/08/01
投稿数: 199
お住まい・勤務地: 千葉県
投稿日時: 2001-11-07 16:40
セッション管理に Servlet API の HttpSession を使った場合におけるServletコンテナ内の全セッション取得は、
自セッション以外のセッション情報を取得するに対するセキュリティの問題が指摘されたため、
Servlet API v2.1 以降で廃止されています。

使用している J2EE Application Server によっては、
機能拡張という名目で、独自のAPIを用意している場合もあります。

API以外の方法で実現させるとしたら、DBMSなどの外部リポジトリを利用するといった手があります。
クラスタ構成のサーバ環境になると、おそらくこの方法になるかと思います。

[ メッセージ編集済み 編集者: 謎の白覆面 編集日時 2001-11-07 21:10 ]
しょむ
ぬし
会議室デビュー日: 2001/09/06
投稿数: 430
投稿日時: 2001-11-07 16:51
昔はあったそうですが、セキュリティー上の理由でなくなったそうです。
「ログインユーザ一覧」を見たいがためにセッションスコープの情報がすべて他のセッションにだだもれでは困りますからね。

セッションが新しく作られたかどうかはわかりますので、そのタイミングでアプリケーションスコープの Hashtable だか Vector だかにでもログイン名をたたき込んでおいて、HttpSessionBinding{Event,Listener} あたりで session の invalidate を捕まえてあげればいけるかしらん。
@koto
会議室デビュー日: 2001/08/17
投稿数: 17
投稿日時: 2001-11-07 21:42
謎の白覆面さん、しょむさん、ご解答ありがとうございました。
HttpSessionクラスを使用してどうにかしようと考えていたので
とても役に立ちました。それ以外の方法を検討してみます。
また何かありましたら宜しくお願いします。
1

スキルアップ/キャリアアップ(JOB@IT)