在Tomcat 7中通过HTTP头(cookie)禁用jsessionid

5
我希望禁用在https头中使用jsessionid。有没有办法关闭它或禁用它作为cookie在tomcat 7中设置?
我要么希望jsessionid嵌入到GET方法的url名称值对中,要么是POST请求名称值对的一部分。
我知道使用基于cookie的会话和url重写的所有优缺点,但我需要特定实现的restful web服务的特定需求。
我需要tomcat 7接受jsessionid而不使用http头:jsessionid。
谢谢。
更新:
所以我找了一些资料,发现this是使用web.xml配置实现的。
然而,以下内容似乎在Tomcat 7上无法正常工作。
<session-config>
    <tracking-mode>URL</tracking-mode>
</session-config> 

这是 TC7 没有完全实现 Servlet 3.0 规范的情况吗?
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 的设置会覆盖它们。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接