首页 文章

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

提问于
浏览
5

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

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

我知道使用基于cookie的会话和URL重写的所有优点和缺点,但我对特定的restful Web服务的特定需求 .

我需要tomcat 7接受jsessionid而不使用http头:jsessionid .

谢谢 .

UPDATE:

所以我再看了一下,找到this,这是使用web.xml conf实现的 .
但是,以下似乎不适用于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()次来电 .

    它也可能to set default session tracking modes in the Tomcat's context settings但我发现 web.xml 设置会覆盖它们 .

相关问题