Spring 会话 Redis 索引中具有“null”主体名称的过时会话

Staled sessions with `null` principal name in Spring Session Redis Index

我正在使用 spring-boot 和 spring-session-redis 在 Redis 中存储会话。

我有以下用例。 当用户登陆 /admin 时,Spring Boot 会为该用户生成一个匿名会话并将他重定向到登录页面。

当用户通过身份验证过程时,RedisIndexedSessionRepository 将会话标识符保存在 session:index:org.springframework.session.FindByIndexNameSessionRepository.PRINCIPAL_NAME_INDEX_NAME:null 键下的索引中,并且该索引永远不会清除。

我认为这会导致内存泄漏。 我应该怎么做才能避免这种行为?

这是一个错误:https://github.com/spring-projects/spring-session/issues/1987

我在 PR 中提供了解释和修复:https://github.com/spring-projects/spring-session/pull/1988