2017-02-18 98 views
0

我在Websphere Liberty Profile 16.0.0.2上运行Spring应用程序。成功登录后,我将请求标头中的JSESSIONID cookie看作J1。我使会话无效并创建一个新会话。现在,下一个请求包含相同的JSESSIONID cookie值(即J1),而不是会话失效后的预期新内容。JSESSIONID在会话失效后被Websphere Liberty Profile重用

经过一番研究,我通过server.xml尝试了以下会话管理设置。

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

但是,行为仍然是相同的。有趣的是,当我在Tomcat 8上部署相同的Web应用程序时,我发现预期的JSESSIONID cookie值不同。 WLP更顽固。请建议。

回答

0

我试图寻找涉及表格登录和注销的WebSphere自由服务器上运行的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.websphere.nd.multiplatform.doc/ae/tsec_pofolo.html

唯一的区别,我我们之间的情况看可能是我们如何无效的会话。你可以在下次登录时使用不同的用户吗?如果会话没有失效,则以不同的用户(例如user2)登录会导致异常,因为会话仍将由前一个用户(例如user1)拥有。

0

尝试在httpSession中将idReuse设置为false。

相关问题