Когда пользователь имеет связанный с ним объект HttpSession
, а затем хочет «выйти из системы», вы сделали бы недействительным то, что HttpSession
, которое, в свою очередь, удалит его с карты, в которой хранится ServletContext всех сеансов. Но это только удаляет его на стороне сервера, что происходит на стороне клиента? Сохраняет ли пользователь все файлы cookie с идентификатором сеанса, который теперь больше не имеет соответствующего объекта сеанса на сервере и продолжает отправлять его на веб-сервер? И что происходит, когда пользователь хочет снова войти в систему после выхода из системы?Недействительный сеанс
ответ
Я предполагаю, что cookie sessionId все равно будет сохранен, но поскольку этот sessionId не будет соответствовать объекту сеанса в памяти сервера, он будет отброшен сервером в следующий раз, когда пользователь снова войдет в систему. На стороне сервера он будет довольно прозрачным, request.getSession() автоматически вернет новый объект сеанса.
Okey, но старый файл cookie остается до тех пор, пока он не окажется недействительным? – user626912
Это будет связано с реализацией браузера, но я думаю, что файл cookie останется до тех пор, пока он не будет исчерпан в большинстве случаев. Время истечения времени продиктовано вашим сервером, например, в конфигурации tomcat:
Я хотел бы добавить к ответу Максимов.
Хотя файл cookie все еще присутствует на стороне клиента, сервер может удалить cookie также на стороне клиента. Spring Security делает это, когда пользователь выходит из системы. Вот код:
Cookie cookie = new Cookie(cookieName, null);
String cookiePath = //cookie's path
cookie.setPath(cookiePath);
cookie.setMaxAge(0);
response.addCookie(cookie);
Важно инструкция cookie.setMaxAge(0)
. Установка максимального возраста на 0 означает, что файл cookie должен быть удален. Таким образом, сервер может попросить клиента удалить куки-файл, отправив ему тот же файл cookie с максимальным возрастом 0.
- 1. Недействительный сеанс фляжки?
- 2. Анализ, как обрабатывать недействительный сеанс?
- 3. Недействительный сеанс: правильное поведение выхода
- 4. Недействительный сеанс, как правильно использовать?
- 5. Недействительный сеанс с пользовательским аутентификатором
- 6. Недействительный конкретный сеанс jsf bean
- 7. Недействительный сеанс при попытке создать сеанс в OKTA
- 8. iOS: обрабатывать недействительный сеанс в делегате приложения
- 9. Недействительный сеанс для определенного пользователя в Symfony2
- 10. Недействительный сеанс Java для новой вкладки
- 11. Проверьте, недействительный сеанс для вызова login popup
- 12. Как сохранить текущий язык, когда недействительный сеанс в калитке
- 13. Недействительный сеанс и закрытие вкладки браузера при нажатии Logout
- 14. Swift: Прилагаемый Facebook сеанс маркера истек или недействительный
- 15. Недействительный сеанс при выходе пользователя из системы (весна)
- 16. Недействительный сеанс при нажатии кнопки на IE JSP
- 17. Доступ администратора к инвентаризации: Недействительный сеанс токена. Пожалуйста, войдите снова
- 18. недействительный сеанс во всех приложениях в weblogic 11g
- 19. Недействительный сеанс в браузере закрыть в ember-simple-auth?
- 20. недействительный сеанс сервлета при размывании и действиях мыши
- 21. Пользовательская область администратора Opencart -> недействительный сеанс токена
- 22. Яблочный разработчик - недействительный CSR, недействительный сертификат
- 23. Ошибка компиляции. Определение несоответствия. недействительный (*) (недействительный *)
- 24. com.parse.ParseRequest $ ParseRequestException: недействительный токен сеанса
- 25. Регенерирующий сеанс/уничтожающий сеанс
- 26. Недействительный активатор
- 27. Недействительный параметр
- 28. недействительный netif_napi_add
- 29. Недействительный NSTimer?
- 30. Код недействительный
вы также можете аннулировать эту кошачьи стороны клиента. –
Когда пользователь пытается повторно подключиться, sessionId не будет найден, поэтому сеанс не будет подключен. – tom