Исправление сеанса с использованием конфигурации tomcat7

#tomcat7 #jsessionid #context.xml #session-fixation

#tomcat7 #jsessionid #context.xml #фиксация сеанса

Вопрос:

Все мое приложение работает по протоколу ssl (https). Мы используем tomcat7 в качестве контейнера. Теперь в context.xml Я добавил приведенную ниже конфигурацию и ожидаю, что после успешного входа в систему JSESSIONID будет изменен —

 Valve className="org.apache.catalina.authenticator.BasicAuthenticator" changeSessionIdOnAuthentication="true" />
  

Но, к сожалению, jsessionid не изменяется. После изучения пары статей я узнал, что jsessionid изменяется только в том случае, если мы переключаемся с http на https. Итак, я полагаю, что, поскольку мое приложение работает по протоколу https, jsessionid не изменяется. Я прав?

Итак, я хочу, чтобы jsessionid был изменен после успешной аутентификации и с использованием какой-либо конфигурации. Я могу аннулировать сеанс и создать новый сеанс после завершения аутентификации. Но я предпочитаю делать это с помощью конфигурации, если это возможно.

Спасибо, Картич

Комментарии:

1. Значение по умолчанию для changeSessionIdOnAuthentication атрибута равно true . tomcat.apache.org/tomcat-7.0-doc/config /… . Также я думаю, что это не имеет никакого отношения к SSL. Какой полный номер версии Tomcat 7 вы используете?

2. Я только что выполнил тест с Tomcat 7.0.54. Значение cookie JSESSIONID было изменено, как и ожидалось, после успешной базовой аутентификации. Мне не нужно было ничего менять в моем context.xml , поскольку по умолчанию значение для changeSessionIdOnAuthentication атрибута равно true . Пожалуйста, укажите полный номер версии вашего Tomcat.

3. Привет, Эвандро, спасибо за твой ответ. Да, значение атрибута changeSessionIdOnAuthentication по умолчанию равно true. Таким образом, в принципе, нет никакой разницы между вышеупомянутыми изменениями, которые я сделал, и конфигурацией по умолчанию. Мы используем apache-tomcat-7.0.52. Также я кое-что заметил, когда я запускаю проект в eclipse, jsessionid меняется. Но почему-то, когда я развертываю в среде разработки, это не работает. Есть идеи, что может быть причиной.

4. Возможно, вы изменили поведение Tomcat с помощью пользовательской конфигурации. Я только что выполнил экспортированный WAR в Tomcat 7.0.52 без Eclipse и получил новый JSESSIONID с сервера после аутентификации. То же, что и раньше. Вы пытались удалить этот <Valve> элемент?