Tomcat SessionId长度

 

最近在做一个接口项目,其中有一个接口的节点在规范中明确要求输入一个长度为32位的SessionID。开始,项目在开发的Tomcat6.0环境下运行,接口一切正常。后来,移到测试机器中的Tomcat下,发现该验证接口返回的全是错误结果。通过跟踪HTTP包发现,测试机上Tomcat产生的SessionID越界,除了原有32位还跟有一串固定的字符。

<%
    System.out.println(session.getId());
%> 

 DEV Tomcat: JSESSIONID=1392155003AF2D71BB5FFCA93EAC9930

 TEST Tomcat: JSESSIONID=73B09B4A798FB8354D0A00CFFC6A4BA9.jvm1

 

比对开发和测试环境的conf/server.xml,发现测试机器server.xml中节点<Enginename="Standalone" defaultHost="localhost" jvmRoute="jvm1">设置了jvmRoute属性,去掉后生成的SessionId就是32位。

 

在Weblogic下默认SessionID的长度为52位,但也可以将其长度设置为32位。修改当前项目下的weblogic.xml配置文件。

 

<session-descriptor> 
    <id-length>32</id-length>
</session-descriptor>

 

 

 

 

 

你可能感兴趣的:(session)