2017-02-18 11 views
0

Я запускаю приложение Spring на Websphere Liberty Profile 16.0.0.2. После успешного входа в систему я вижу файл cookie JSESSIONID в заголовке запроса как J1. Я аннулирую сессию и создаю новую. Теперь следующий запрос содержит одно и то же значение cookie JSESSIONID, то есть J1, а не что-то новое, как ожидалось после недействительности сеанса.JSESSIONID повторно используется Websphere Liberty Профиль после недействительности сессии

После некоторых исследований я попробовал следующие настройки управления сеансом через server.xml.

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

Тем не менее, поведение остается таким же.

Интересно, что при развертывании одного и того же веб-приложения на Tomcat 8 я вижу разные значения cookie JSESSIONID, как ожидалось. Что-то более упрямо с WLP. Пожалуйста, предложите.

ответ

0

JSESSIONID cookie может быть указан клиентом. Если это не предназначено, это может быть связано с сохранением или сохранением файлов cookie в браузере. Попробуйте очистить файл cookie с клиентской стороны.

Request.getRequestedSessionId() должен иметь возможность проверить его:

https://tomcat.apache.org/tomcat-5.5-doc/servletapi/javax/servlet/http/HttpServletRequest.html#getRequestedSessionId%28%29

0

Я пытался искать JSESSIONID поведения для веб-приложения, запущенного на сервере WebSphere Либерти с участием Форма входа и выхода.

1) Когда была отображена страница входа в систему, существует файл cookie JSESSIONID, допустим, с идентификатором J1. После входа в систему с действующим пользователем/паролем JSESSIONID остается J1, как ожидалось.

2) Затем я сделал выход из системы (ibm_security_logout), который реализован, как указано в следующем документе. После выхода из системы я увидел, что значение 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

Попробуйте установить idReuse в false в httpSession.