会议无效后,WebSphere Liberty概况重复使用JSessionId



我正在WebSphere Liberty Profile 16.0.0.2上运行弹簧应用程序。成功登录后,我将请求标题中的JSessionId cookie视为J1。我使会话无效,并创建一个新会话。现在,下一个请求包含相同的jsessionId cookie值,即J1,而不是会话无效后的新事物。

经过一些研究,我尝试了以下会话管理设置。

<httpSession idLength="28" invalidateOnUnauthorizedSessionRequestException="true" cookieSecure="true" useInvalidatedId="false"></httpSession>

仍然,行为保持不变。

有趣的是,当我在Tomcat 8上部署相同的Web应用程序时,我会看到不同的JSessionId cookie值。WLP更固执。请建议。

jsessionid cookie可以由客户指定。如果这不是预定的,则可能是由于保存或从浏览器中缓存的cookie所致。尝试从客户端清除cookie。

request.getRequestedSessionId()应该能够验证它:

https://tomcat.apache.org/tomcat-5.5-doc/servletapi/javax/javax/javax/servlet/http/httpservletrequest.html#getreqetrequestedsessiondsessisionid()

我试图寻找在WebSphere Liberty Server上运行的Web应用程序的JSessionId行为,该应用程序涉及表单登录和注销。

1)显示登录页面时,存在JSessionId cookie,假设使用J1的ID。使用有效的用户/密码登录后,jSessionId保持j1。

2)然后,我确实形成了注销(IBM_Security_logout),如以下DOC所述。注销后,我看到jSessionsID值更改为J2。因此,我确实看到JSessionId无效,并创建了新的。

https://www.ibm.com/support/knowledgecenter/ss7k4u_8.5.5/com.ibm.m.websphere.nd.multiplatform.doc/ae/tsec_pofolo.html

唯一的区别,我看到我们的场景之间可能是我们如何使会话无效。下次可以作为其他用户登录吗?如果会话没有无效,则登录不同的用户(例如用户2)将引起异常,因为会话仍将由以前的用户(例如User1)所有。

尝试将idreuse设置为httpsession中的false。

相关内容

最新更新