2011-09-27 125 views
5

我正在禁用https标头中使用的jsessionid。 有没有办法关闭这个功能或者在tomcat 7中将这个设置为cookie?通过Tomcat 7中的http标题(cookie)禁用jsessionid

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

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

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

谢谢。

UPDATE:

所以我看了看周围的一些多了,发现它使用web.xml的conf实现的this
以下似乎但是不使用Tomcat 7

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

是TC7没有完全落实的servlet 3.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()在您的代码中调用。我也发现web.xml设置覆盖它们。