【发布时间】:2018-02-22 14:22:01
【问题描述】:
我面临 HttpRequest.getSession(true) 的问题 - 在会话无效后多次调用时 - 这将返回具有新 HashCode 但会话 ID 相同的会话对象。
设置细节 -
JDK8 Websphere9.0 应用程序:两场战争:一场是基于 JSP Servlet 的应用程序,第二场是基于 Angular2 Spring 的应用程序 要求:部署在同一个 BLA EAR 中的两次战争之间,需要共享会话,因此使用 IBMApplicationSession 进行属性获取和设置调用 - 都在使用 HttpSession
如果我们正在处理 JSP Servlet Jar 应用程序的页面部分 - 下面的代码能够创建具有不同会话 ID 的新会话
1.HttpSession session = request.getSession(false);
//few other lines
2.session.invalidate();
//few other lines
3.session = request.getSession(true);
即最后的会话与我们无效的会话具有不同的会话 ID
但是,如果我们参加另一场包含 Angular2 和基于 spring 的应用程序的战争 - 我们创建一个 IBMapplicationSession 实例来存储属性(获取和设置属性调用) - 然后回到基于 JSP 的应用程序的战争 - 相同的代码行给出完全不同和奇怪的行为 - 第三行给出的会话对象与第 1 行的会话对象不同(哈希码不同) sessionId 在对象上保持不变
应用程序正在处理基于 sessionId 的会话 - 由于 sessionId 保持不变,这给我们带来了很大的麻烦。
即使我调用 request.getSession(true),有人可以帮助我知道如何使用相同的 ID 创建会话。需要注意的是 Request 实现是 websphere 插件 com.ibm.ws.webcontainer jar 的 SRTServletRequest 部分
提前感谢您的建议
【问题讨论】:
标签: httprequest sessionid