5

我希望禁用 jsessionid 在 https 标头中的使用。有没有办法关闭它或禁用它在tomcat 7中设置为cookie?

我要么希望 jsessionid 嵌入到 GET 方法 url 名称值对中,要么成为 POST 请求名称值对的一部分。

我知道使用基于 cookie 的会话和 url 重写的所有优点和缺点,但我对 restful web 服务的特定实现有特定的需求。

我需要 tomcat 7 在不使用 http 标头的情况下接受 jsessionid:jsessionid。

谢谢。

更新:

所以我环顾四周,发现是使用 web.xml conf 实现的。
但是,以下内容似乎不适用于 Tomcat 7。

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

这是 TC7 没有完全实现 servlet 3.0 规范的情况吗?

4

1 回答 1

4

web.xml设置适用于 Tomcat 7.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 回答