【问题标题】:Redis spring session bean not updatedRedis Spring会话bean未更新
【发布时间】:2021-02-13 19:17:04
【问题描述】:
我正在尝试在我的 Spring Boot 应用程序中将我的 http 会话切换到 redis。
当第一个请求到达后端时,它会被身份验证过滤器过滤。
此过滤器的一项职责是用数据填充用户会话 bean。在此步骤会话已成功保存到 redis 实例,但未调用更改的增量(应包括会话 bean)。我想指出的是,通过在 tomcat 上存储会话,会话 bean 可以正常工作。
那么为什么填充在 OnePerRequest 过滤器上的会话 bean 没有更新为会话的增量?
【问题讨论】:
标签:
spring
spring-boot
redis
spring-session
【解决方案1】:
你试过下面的配置吗?
@Configuration
@EnableRedisHttpSession(saveMode = SaveMode.ALWAYS)
public class RedisSessionConfig {
}
【解决方案2】:
尝试将刷新模式更改为IMMEDIATE,默认为ON_SAVE,这意味着您必须明确保存会话或在托管环境中,它发生在响应序列化之前(我认为)。
在src/main/resources/application.properties 你可以这样做:
spring.session.redis.flush-mode=immediate
或者使用@EnableRedisHttpSession 做:
@EnableRedisHttpSession(redisFlushMode = RedisFlushMode.IMMEDIATE)