Как установить дату и время истечения срока действия cookie JSESSION с помощью Spring Boot - PullRequest
0 голосов
/ 24 декабря 2018

У меня есть веб-приложение, основанное на SpringBoot и использующее Spring Security для входа в систему и Remember-Me, однако Remember-Me не работает должным образом и сбрасывается через 1 час отсутствия взаимодействия между клиентом и сервером.

Я проверил хранилище браузера на наличие файлов cookie, cookie-файл Запомнить меня создан и имеет правильную дату истечения срока действия (1 день после создания).Второй файл cookie: JSESSION имеет срок действия = сеанс.И я думаю, что это вызывает проблему.

+-------------+-----------+------+--------------------------------+
|    Name     |  Domain   | Path | Expires on                     |
+-------------+-----------+------+--------------------------------+
| JSESSIONID  | 127.0.0.1 | /    | session                        |
| remember-me | 127.0.0.1 | /    | Tue, 25 Dec 2018 10:28:22 GMT  |
+-------------+-----------+------+--------------------------------+

Вот моя весенняя конфигурация безопасности для запомнить меня:

.and()
.rememberMe()
.key("secretKey")
.tokenValiditySeconds(60*60*24)
.rememberMeParameter("remember-me");

Я хочу, чтобы, как только человек вошел в систему с помощью Запомнить менявыбранный вариант, ему / ей не нужно будет снова входить в систему в течение следующих 24 часов.Так есть ли возможность установить этот срок действия JSESSION равным cookie-файла запомнить?Я использую Spring Boot, управляемый аннотациями

1 Ответ

0 голосов
/ 24 декабря 2018

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

Механизм сможет идентифицировать пользователя по нескольким сеансам - поэтому первое, что нужно понять, это то, что «Помни меня» активируется только после истечения времени сеанса .По умолчанию это происходит после 30 минут бездействия, но время ожидания можно настроить в файле web.xml.В загрузке Spring вы можете настроить время ожидания с помощью этой ссылки .

Файл cookie Запомнить меня содержит следующие данные:

  • имя пользователя - для идентификациивошли в систему с принципалом
  • expirationTime - для истечения срока действия куки;по умолчанию 2 недели
  • MD5-хэш - из двух предыдущих значений - имени пользователя и expirationTime, плюс пароль и предопределенный ключ

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...