Недавно я заметил, что при перезагрузке моего веб-сервера Tomcat браузер Chrome больше не может хранить файлы cookie. ie tomcat использует файлы cookie для http-сеансов, и браузер больше не может получить свой http-сеанс, а также cookie, который мы используем для хранения зарегистрированного пользователя, терпит неудачу, и пользователь не остается в системе.Хранение cookies не работает после перезагрузки веб-сервера tomcat
Это, кажется, новая проблема с Chrome, возможно, из недавнего обновления, я не помню, чтобы это было раньше. Если я закрою браузер Chrome, а затем снова его откройте, все будет хорошо (пока сервер не перезагрузится снова).
Проблема не возникает в Firefox, кажется, что ошибка в Chrome.
Кто-нибудь еще заметил эту проблему или знал о решении?
Я нашел несколько сообщений о/TOMCAT вопросов Chrome печенья и предложение установить, sessionCookiePathUsesTrailingSlash = ложным в context.xml , но это не решает проблему.
Кажется, что может быть связано с веб-сайта поддержки и HTTPS и HTTP, а переключение между ними (хотя имели место на веб-сайте, который не поддерживает протокол HTTPS, а также ...)
Хорошо, я теперь можно воссоздать проблему, шаги.
- подключиться к веб-сайт через HTTPS
- выход из системы/Войти
- подключиться к веб-сайт с помощью HTTP
- Tomcat JSESSIONID печенья больше не могут быть сохранены (как ни странно пользователь/пароль куки хранятся)
Это происходит только в Chrome, и только после обновления Chrome, который добавляет «небезопасный» флаг на страницах входа, которые используют http
Хорошо, я добавил это к моему web.xml
<session-config>
<cookie-config>
<http-only>true</http-only>
<secure>true</secure>
</cookie-config>
</session-config>
Это не исправить эту проблему, но сделал этот вопрос всегда происходит через HTTP, то есть не делать HTTP больше не в состоянии хранить куки JSESSIONID. Я пробовал <secure>false</secure>
, но все еще получаю старую проблему. Итак, это связано с этой настройкой, по крайней мере. У кого-нибудь есть идеи?
Записан ошибка в Chrome, https://bugs.chromium.org/p/chromium/issues/detail?id=698741
Так что, похоже, что новая версия Chrome в браузере Chrome открыта слишком долго, она неожиданно не может хранить файлы cookie для веб-сайта, JSESSIONID внезапно не устанавливается. Тот же сайт, на котором нет «www», работает, когда версия www начинает терпеть неудачу, https также кажется сработавшим, очень странным. – James
Я предполагаю, что это ошибка в недавнем обновлении хром, который, кажется, был исправлен. Но если кто-то не перезапустил хром, у них все еще есть ошибка, которая не может хранить файлы cookie в некоторых состояниях. – James
Эта проблема все еще встречается в Chrome, так как если вы ее не запускаете слишком долго, она начинает не сохранять файлы cookie для некоторых сайтов. – James