5

httpsヘッダーでjsessionidが使用されないようにしたいと考えています。これをオフにするか、Tomcat 7でCookieとして設定されていることを無効にする方法はありますか?

jsessionidをGETメソッドのURL名と値のペアに埋め込んで到着させるか、POSTリクエストの名前と値のペアの一部にします。

CookieベースのセッションとURL書き換えを使用することの長所と短所はすべて知っていますが、RESTfulWebサービスの特定の実装に対する特定のニーズがあります。

httpヘッダーjsessionidを使用せずにjsessionidを受け入れるには、Tomcat7が必要です。

ありがとう。

アップデート:

そこで、もう少し調べてみると、web.xmlconfを使用して実装されていることがわかりました。
ただし、以下はTomcat7では機能しないようです。

<session-config>
    <tracking-mode>URL</tracking-mode>
</session-config> 

TC7がサーブレット3.0仕様を完全に実装していない場合ですか?

4

1 に答える 1

4

このweb.xml設定は、Tomcat7.0.20で機能します。

有効な(そしておそらくデフォルトの)セッション追跡モードをログに記録して確認します。

logger.info("default STM: {}" , servletContext.getDefaultSessionTrackingModes());
logger.info("effective STM: {}" , servletContext.getEffectiveSessionTrackingModes());

たぶん、アプリはコードのどこかでセッション追跡モードをオーバーライドします。例:

final Set<SessionTrackingMode> trackingModes = 
    Collections.singleton(SessionTrackingMode.COOKIE);
servletContext.setSessionTrackingModes(trackingModes);

コード内のServletContext.setSessionTrackingModes()呼び出しを確認してください。

Tomcatのコンテキスト設定でデフォルトのセッション追跡モードを設定することも可能ですが、web.xml設定がそれらをオーバーライドすることがわかりました。

于 2011-09-29T09:17:49.570 に答える