Компонент Redis spring session не обновлен

#spring #spring-boot #redis #spring-session

#весна #весенняя загрузка #redis #весенняя сессия

Вопрос:

Я пытаюсь переключить свой http-сеанс на redis в своем приложении spring boot. Когда первый запрос поступает на серверную часть, он фильтруется фильтром аутентификации. Одной из обязанностей этого фильтра является заполнение пользовательского компонента сеанса данными. На этом шаге сеанс успешно сохраняется в экземпляре redis, но дельта изменений (которая должна включать компонент сеанса) не вызывается. Я хочу отметить, что при сохранении сеанса на tomcat сеансовые компоненты работают правильно.

Итак, почему сеансовый компонент, заполненный фильтром OnePerRequest, не обновляется как дельта сеанса?

Ответ №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)