21

我的应用程序目前使用Spring Session和 Redis 作为后端。

我搜索了 Spring Session 的官方文档,但无法找到使用该模块时的默认会话超时。

另外,如果需要,我不确定如何更改默认超时。

有人可以建议吗?

4

2 回答 2

40

使用 redis 存储库时配置会话超时的最简单方法是

@EnableRedisHttpSession(maxInactiveIntervalInSeconds = 60)

或 @EnableRedissonHttpSession(maxInactiveIntervalInSeconds = 1200) 如果存在 redisson 依赖项。

会话在存储库中不再可用时过期。超时可以在 和上setDefaultMaxInactiveInterval(int)配置。默认值为30 分钟RedisOperationsSessionRepositoryMapSessionRepository

如果您使用的是 spring boot,那么从 1.3 版开始,它将自动将值与server.session.timeout应用程序配置中的属性同步。

请注意,使用 spring session 时的缺点之一javax.servlet.http.HttpSessionListener是没有调用 s。

如果您需要对会话到期事件做出反应,您可以订阅SessionDestroyedEventSpring 应用程序的应用程序事件。

于 2015-09-11T22:44:25.360 回答
8

server.session.timeoutserver.servlet.session.timeout已弃用,并在 Spring Boot 2.0 中被替换为。

于 2019-05-24T10:17:19.307 回答