jsessionid сохраняется и используется даже после перезагрузки\переустановки сервиса

У меня есть веб-сервер Tomcat 7. После входа в него я вижу в файлах cookie, что есть jsessionid, который, из того, что я прочитал, сохраняет идентификатор экземпляра сеанса между пользователем и веб-сервером.

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

Итак, в основном я разделю свой вопрос на подвопрос, чтобы было легче ответить: 1. Как вообще возможно, что после остановки службы или даже ее удаления это все еще может произойти? 2. Как точно создается jesessionID? Я имею в виду, возможно ли, что это один и тот же идентификатор jsession? 3. Когда именно создается jsessionID? 4. Можно ли изменить это поведение и «аннулировать» сеанс, чтобы пользователю пришлось повторно вводить свои учетные данные? 5. После вопроса № 4, что общего в большинстве сервисов? потребовать снова войти в систему или разрешить использование старого идентификатора сеанса?

Большое спасибо!


person slashms    schedule 09.11.2015    source источник
comment
Если у вас более поздняя версия, чем Tomcat 6, вы можете убить сеанс в приложении-менеджере.   -  person developerwjk    schedule 10.11.2015
comment
Не могли бы вы уточнить? когда я это сделаю? как мне это сделать программно, когда сервер не работает? и т.д. Есть идеи по поводу остальных вопросов?   -  person slashms    schedule 10.11.2015


Ответы (1)


В ответ на ваши вопросы:

  1. менеджер сеансов Tomcat сериализует данные сеанса и сохраняет их в файл, чтобы сохранить его при перезагрузке. Вы можете отключить это.
  2. SessionId Generator Tomcat определяет точный способ создания идентификатора.
  3. Вот хороший ответ, когда создаются идентификаторы сеанса: При каких условиях создается JSESSIONID ?
  4. Если вашей целью является аннулирование сеансов после перезапуска Tomcat, вы можете сделать это, отключив сохранение сеанса.
  5. Как правило, пользователь хотел бы считаться «вошедшим в систему», пока он не нажмет ссылку или кнопку «выход из системы» в вашем приложении. Вы также можете настроить время истечения сеанса, если хотите, чтобы сеанс истекал после периода бездействия. Как именно это должно работать, зависит от вас и от вариантов использования вашего приложения.
person worpet    schedule 11.11.2015