我正在从session.getId()
进入会话ID以下。我想找出可以纠正并删除带有会话ID的其他文本的来源。
62E4CAF17CD801A3A8E8BB8802610FF1.test
From HttpServletRequest request
HttpSession session = request.getSession();
String sessionId=session.getId();
System.out.println(sessionId);
预期结果:session.getId()
中的62E4CAF17CD801A3A8E8BB8802610FF1
提前谢谢!
答案 0 :(得分:1)
您从request.getSession().getId()
中获得的 是正确的会话ID。没有什么可以纠正的。您应该将其作为原子的,随机的,唯一的东西来处理,而不应暗示任何含义。
您不能假定id会保持32个字符长:在下一个较小的升级中,它可能是64个随机字符,或者它可能使用其他字母,而不仅仅是十六进制数字。可能后面跟着多个“ .test”。
例如我想不出满足此要求的有效商业案例。
也就是说,通常在server.xml的<Engine>
元素中配置的jvmRoute通常会附加到会话ID中。如果您正在运行带有粘性会话的负载均衡器,则必须执行此操作-如果您将其卸下:运气好的话。而且,如果您今天不使用负载均衡器:您可能明天就可以。
对自己的未来(或任何正在维护该应用程序的其他人)好,不要嘲笑会话ID。