• 締切済み

指定のセッションIDのセッションを切る

1.同一のwebアプリケーション内の違うセッションから指定のセッションIDのセッションを切る。 2.webアプリケーションにサーブレットを作成してもらい、外部からサーブレットにリクエストデータとしてセッションIDを渡して呼び出すと、渡したセッションIDのセッションを切ることができる。 3.サーブレット経由ではなくて指定したセッションIDを外部から切ることができる。 以上、3点について、方法などを教えていただけないでしょうか?

  • ikty
  • お礼率40% (2/5)
  • Java
  • 回答数2
  • ありがとう数8

みんなの回答

  • teketon
  • ベストアンサー率65% (141/215)
回答No.2

>あるセッションで使われたセッションデータ(メモリ上)をすべて消す。 >他のセッションからsession.invalidate(sessionID) できません

  • teketon
  • ベストアンサー率65% (141/215)
回答No.1

書いてあることをそのままやればいいのでは? 1.セッション作成時にテーブルへ登録する 2.削除リクエストがきたら、テーブルの該当レコードの削除フラグをonにする 3.リクエストごとにFilterで自身が削除対象でないかチェックし、自身が削除対象の場合、session.invalidate()する。 4.HTTPSessionListenerを使って、onDestory時に無効化したsessionのレコードをテーブルから削除する 5分で考えたので、穴があるかもしれませんが FilterとHttpSessionListenerを使えばそんなに難しくないと思うよ。

ikty
質問者

補足

回答ありがとうございます。補足します。 あるセッションで使われたセッションデータ(メモリ上)をすべて消す。 他のセッションからsession.invalidate(sessionID) みたいなことができたら理想です。

関連するQ&A

  • WebサーバとWebアプリケーション。セッションID、ユーザーID、パスワードを管理するのはどっち?

    セッションIDを習ったとき、 私の記憶ではセッションIDを管理するのはWebサーバと習いました。 普通、このOKWaveのようにログインを要するようなWebページは ログイン時に渡されたユーザーIDとパスワードを セッションIDに紐付ける形でサーバ側で管理することによって、 このセッションIDを通して、同一ユーザーと見なすということだったと思います。 しかし、ここでひとつ疑問が出ました。 ログイン時に、「自分は誰か、正しいユーザーか」ということを通信先に教えるために ユーザーIDとパスワードを入れますよね? でもここでユーザーIDとパスワードがほしいのはWebサーバではなく、 ユーザー情報を持っているWebアプリケーションではないのか?と考えました。 しかし、私はセッションIDはWebサーバが管理すると習ったように記憶しています。 ということは、 ・セッションIDはWebサーバが管理する ・ユーザーIDとパスワードはWebアプリケーションが管理する ということでいいのでしょうか? つまり、セッションIDとユーザーIDの対応表はWebアプリケーション側で実装し、 クライアントのリクエストから呼び出されるWebアプリケーションのプログラムは 「この呼び出した相手のセッションIDを教えてください」と Webサーバに聞くようなプログラムにしなければならないという認識で合っているのでしょうか? よく分かってないので、聞きたいことが非常に伝わりにくいかと思いますが、 よろしくお願いします。 長い上、お粗末な文章を最後まで読んでいただきありがとうございました

  • Sessionについて

    今、JSPを用いてログイン画面を作成しているのですが、Sessionの使い方がいまいちわかりません。 HttpSession ses = request.getSession(); ses.setAttribute("id",id); これでSessionに格納するのはわかりますが Sessionから値を取り出す方法がわかりません。 どなたか助けてください

    • ベストアンサー
    • Java
  • sessionスコープとapplicationスコープ

    の違いを教えてください。 sessionスコープ: HTTPセッション間でデータを共有したい場合に使用します。これにより、異なるページ間でブラウザを閉じるまで、もしくは一定時間経過するまでデータを共有することができます。 applicationスコープ: webアプリケーション間でデータを共有したい場合に使用します。webアプリケーション間とは、サーブレットコンテナに設定されるwebアプリケーション内のことを言います。 ではよく分からないのでどちらがより広いのかどういう場合にどっちなのかを具体的に教えてください。

    • ベストアンサー
    • Java
  • ブラウザを閉じてもセッションを残す方法

    質問させてください。 サーブレットを使用してWebアプリケーションを開発しています。 現在の設定では、ブラウザを閉じるとセッションが破棄されています。 これを変更して、ブラウザを閉じてもセッションをしばらくの間残しておくことはできないでしょうか。 以上よろしくお願いします。

  • セッションIDの取得の必要性

    セッションIDの取得の必要性について教えてください。 Webアプリケーション制作で、 セッションIDは必ず取得しないといけないものなのでしょうか? セッションIDの役割とはなんなのでしょうか? 何が必要でこのセッションIDは存在しているのでしょうか? 参考URL  http://www.kab-studio.biz/Programing/JavaA2Z/Word/00000817.html 内容を読んでみたところ 「このセッションIDを直接取り扱うことはないだろう。」とも書かれているのですが^^; 「セッションオブジェクトに値を設定する」などという目的の場合には、特別、セッションIDは取得しなくても構わないでしょうか?

    • ベストアンサー
    • Java
  • セッションIDを取得したい

    こんにちは。 いまVB.Net2003でWebアプリを作成しています。 コードのなかで「セッションID」を取得するには どうすれば良いでしょうか? 教えてください。よろしくお願いします。

  • セッションIDの保存場所について

    オンラインショッピングサイトや、SNSサイトなどのWebシステムで クライアントの状態を保持するセッション情報を識別するためのセッションIDは、 アプリケーションサーバーの中にあるセッション情報を持つインスタンスの中に持たせておくものなんでしょうか、それともDBに入れていったん永続化してしまうものなんでしょうか。

  • ユーザーIDの取得について

    現在、JBuilder+TomcatでWEBアプリを作成しています。そこで質問なのですが、サーブレットで、リクエストをしてきた人のユーザーIDを取得することはできるのでしょうか? 例えば、AさんがWindows2000のユーザーID「aaa」でログインし、IEにURLを入力してWEBアプリにアクセスしました。 この場合、サーブレット側で、AさんのユーザーIDである「aaa」を知るなんてことはできるのでしょうか? よろしくお願いします。

    • ベストアンサー
    • Java
  • IIS 有効なセッションIDの取得について

    お世話になります。 表題につきましてご教授願います。 現在、  Windows2003  IIS6  ASP にて、社内システム構築中です。 ある、機能でセッションIDをフォルダ名としサーバー上にフォルダ を作成しております。 そこで質問ですが、サーバーが振ったセッションIDの中で、(サーバー から見た)現在有効なセッションIDを取得することは可能でしょうか。 クライアント側で既にブラウザを落としている(セッションが切れている) 場合は、作成されたフォルダを削除したいと考えているのですが、その際、 有効なセッションIDが取得できれば、セッションが切れているIDのフォルダを 削除できるかな。。と考えている次第です。 以上、宜しくお願い致します。

  • セッションIDの桁数

    WebサーバーはWindows2003サーバーです。 VBScriptのaspファイルで画面と処理を作成しています。 セッションIDを取得してみたら 9けたの数字が返ってきました。 この"9桁"という設定はどこにあるのでしょうか。

専門家に質問してみよう