我希望禁用jsessionid在https标头中使用。 有没有办法关闭它或禁用在tomcat 7中设置为cookie?
我要求jsessionid嵌入到GET方法url名称值对中,或者成为POST请求名称值对的一部分。
我知道使用基于cookie的会话和URL重写的所有优点和缺点,但我对特定的restful web服务有特定的需求。
我需要tomcat 7接受jsessionid而不使用http标头:jsessionid。
感谢。
更新:
所以我再看了一下,找到了使用web.xml conf实现的this 但是,以下似乎不适用于Tomcat 7.
<session-config>
<tracking-mode>URL</tracking-mode>
</session-config>
是TC7没有完全实现servlet 3.0规范的情况吗?
答案 0 :(得分: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()次来电。
也可以to set default session tracking modes in the Tomcat's context settings,但我发现web.xml
设置会覆盖它们。