Spring security “许多”;“空的”;具有空princial_名称的会话

Spring security “许多”;“空的”;具有空princial_名称的会话,spring-security,spring-session,Spring Security,Spring Session,我使用spring会话jdbc和spring安全性。目前,我已经记录了20个用户(具有正确的会话id和主体名称)以及大约11k行会话id和空主体名称。这是正常的行为吗?我的设置: security.sessions=(默认值) @EnableJdbcHttpSession(maxInactiveIntervalInSeconds=86400)数据库中有大量会话记录本身并没有任何异常,特别是在您已验证清除过期会话正常工作的情况下 您已将相当大的maxInactiveIntervalInSecond

我使用spring会话jdbc和spring安全性。目前,我已经记录了20个用户(具有正确的会话id和主体名称)以及大约11k行会话id和空主体名称。这是正常的行为吗?我的设置:

security.sessions=(默认值)


@EnableJdbcHttpSession(maxInactiveIntervalInSeconds=86400)

数据库中有大量会话记录本身并没有任何异常,特别是在您已验证清除过期会话正常工作的情况下


您已将相当大的
maxInactiveIntervalInSeconds
配置为86400秒(1天),因此拥有如此数量的匿名会话(即未经验证的会话,或未设置
主体名称的会话记录)并非不合理在一天内启动。

请提供有关您的应用程序的其他详细信息-您使用的是哪个版本的Spring Session和哪个RDBMS?此外,将
org.springframework.session.jdbc.jdboperationsessionrepository
日志级别设置为
DEBUG
,并验证
jdboperationsessionrepository#cleanupeexpiredSessions
每分钟记录一次类似于已清理的N个过期会话的日志。spring启动程序父级:1.5.9spring-boot-starter-parent:1.5.9,spring会话jdbc:1.3.3,Percona集群5.6(4个节点)。cleanUpExpiredSessions工作正常,因为所有会话的上次访问时间都在(86400>(当前时间-上次访问时间)/1000范围内。我在代码中发现问题…在AuthController中,我有自定义注销操作。在此操作中,SecurityContextHolder被错误地清除,并且会话未被删除。