Каков тайм-аут сеанса по умолчанию и как его настроить при использовании сеанса Spring с Redis в качестве бэкэнд

В настоящее время мое приложение использует Spring Session вместе с Redis в качестве бэкэнд.

Я просмотрел официальную документацию для сессии Spring, но не смог определить, что такое таймаут сеанса по умолчанию при использовании этого модуля.

Также я не уверен, как изменить этот тайм-аут по умолчанию, если это необходимо.

Кто-нибудь может посоветовать?

Ответ 1

Самый простой способ настроить тайм-аут сеанса при использовании редизайна redis -

@EnableRedisHttpSession(maxInactiveIntervalInSeconds = 60)

Сеанс истекает, когда он больше не доступен в репозитории. Тайм-аут можно настроить с помощью setDefaultMaxInactiveInterval(int) на RedisOperationsSessionRepository и MapSessionRepository. Значение по умолчанию 30 минут.

Если вы используете загрузку spring, то с версии 1.3 она автоматически синхронизирует значение с свойством server.session.timeout из конфигурации приложения.

Обратите внимание, что одним из недостатков при использовании сеанса spring является то, что javax.servlet.http.HttpSessionListener не вызывается.

Если вам нужно отреагировать на события истечения срока действия сеанса, вы можете подписаться на событие приложения SessionDestroyedEvent вашего приложения spring.

Ответ 2

server.session.timeout устарела и была заменена на server.servlet.session.timeout в Spring Boot 2.0.