1

SessionIDを表すGETリクエストのParameter-Name(Tomcatのjsessionid = XXXXXXXXXXXXXXXXXXXXXXXXXXなど)は、servlet-specで標準化されていないようです。SessionIDの(Servelt Container Specific)名を取得するにはどうすればよいですか?(少なくともWebsphereでは、SessionID-Parameter-Nameの名前を変更する可能性があるようです)

=>根本的な問題は、セッションIDを使用してサーブレットALWYASのURLをエンコードする必要があることです。しかし、「response.encodeURL()」メソッドは、Cookieが無効になっている場合にのみこれを行うようです(=>したがって、URLを使用します-URLのsessionIDで書き換えます)。

サーブレットでセッションIDを使用してURLを常にエンコードするための代替手段は何でしょうか。最初の質問は、自分でセッションIDを作成したかったことを示していますが、したがって、標準化されていないように見えるsessionID-Parameter Nameが必要なので、どこかからParameter-Nameを取得する必要があります...)

更新:サーブレットコンテナによって提供されるSessionManagement機能を維持し、完全にオフにすることは目的ではありません。常にSessionURLを含めたいサードパーティシステムにコールバックURLを渡す必要があります。したがって、セキュリティの問題を最小限に抑えるために、この単一のURLを常にsessionIDでエンコードしたいだけです...

ヤンありがとうございます

4

1 に答える 1

3

これjsessionidは実際にはリクエストパラメータではなく、URL自体にエンコードされてから、コントローラに到達する前にコンテナによってデコードおよび削除されます。jsessionid自体の値は、から取得できますHttpSession.getId()

TomcatによるCookieの使用を停止する場合は、次のようなものを含むtomcat固有のcontext.xmlファイルをの下に指定できます。WEB-INF

<Context cookies="false" path="/path/to/my/webapp">
</Context>

これにより、そのWebアプリケーションのすべてのCookieが無効になり、tomcatは代わりにすべてのセッションIDをURLに自動的にエンコードする必要があります。

于 2009-11-12T14:26:51.850 に答える