新闻详情

新闻详情

首页 / 资讯中心 / 详情

Keycloak~infinispan中MergedUpdate中lifespanMs和maxIdleTimeMs

发布时间:2026/7/1 6:50:38
Keycloak~infinispan中MergedUpdate中lifespanMs和maxIdleTimeMs
在 Keycloak 中MergedUpdate类里的lifespanMs和maxIdleTimeMs是与 Infinispan 分布式缓存会话管理密切相关的两个核心参数。它们共同决定了用户会话在缓存中的存活时间。下面的表格能帮你快速把握它们的核心区别参数含义对应 Keycloak 配置举例过期触发条件lifespanMs会话的绝对最大存活时间SSO Session Max从会话创建开始计时无论是否活跃到期即过期。maxIdleTimeMs会话的最大空闲时间SSO Session Idle从最后一次访问会话开始计时如果持续空闲超过设定时间则过期。 参数详解与应用lifespanMs生存时间这个参数为会话设置了一个“最终期限”。例如如果SSO Session Max设置为 8 小时那么即使用户一直在活动8小时后该会话也会强制失效用户需要重新登录。这为会话提供了一个硬性的安全上限。maxIdleTimeMs最大空闲时间这个参数关注的是会话的活跃度。例如如果SSO Session Idle设置为 30 分钟那么用户如果在 30 分钟内没有任何操作如访问受保护的页面会话就会因空闲而过期。这有助于及时释放不活跃会话占用的资源。Keycloak 在创建或更新一个用户会话对象如UserSessionEntity时会根据你在 Realm 设置中配置的SSO Session Max和SSO Session Idle值计算出对应的lifespanMs和maxIdleTimeMs并将它们作为元数据设置到 Infinispan 缓存条目中。此后Infinispan 会负责在后台自动清理过期的会话条目。下面日志是用户登录后写入sessions和clientSessions缓存的信息包含它们的过期时间sessionsLifespan: max(sso session max SSO Session Max Remember Me)这3个时间的最大值MaxIdle: sso session idle (最小时间为300秒5分钟所以缓存中最小为538分钟)clientSessionsLifespan: client session max (最小时间为300秒5分钟所以缓存中最小为538分钟)MaxIdle: client session idle当用户会话缓存sessions它的Lifespan大于客户端clientSessions的Lifespan时可能出现的情况就是用户会话列表中显示的客户端为空15:50:34,725 INFO [org.keycloak.models.sessions.infinispan.changes.InfinispanChangelogBasedTransaction] (default task-8) Add_if_absent successfully called for entity 8832559e-f1f8-4b22-9878-9dd47a01951c to the cache sessions . Lifespan: 600000 ms, MaxIdle: 480000 ms 15:50:34,728 INFO [org.keycloak.models.sessions.infinispan.changes.InfinispanChangelogBasedTransaction] (default task-8) Add_if_absent successfully called for entity 0c836594-c06d-4968-b5ca-ab6be6e91d4f to the cache clientSessions . Lifespan: 1800000 ms, MaxIdle: 780000 ms 后台查看与管理关于你提到的能否在 Keycloak 管理后台查看具体时间查看配置你可以在 Keycloak 管理控制台的 Realm 设置中直接找到并修改SSO Session Max和SSO Session Idle的全局默认值。这些配置值就是lifespanMs和maxIdleTimeMs的计算依据。路径通常是管理控制台- 选择你的Realm-Realm 设置-令牌或会话标签页。查看活跃会话Keycloak 管理后台提供了查看当前活跃会话的功能。路径通常是管理控制台- 选择你的Realm-会话菜单。在这里你可以看到当前活跃的用户会话列表。虽然这个界面通常不会直接显示每个会话精确到毫秒的剩余lifespanMs和maxIdleTimeMs但它会展示会话的创建时间或最后活动时间。你可以结合 Realm 的全局会话超时设置来估算会话的有效期。关键限制需要明确的是管理后台无法直接、实时地显示每个会话在 Infinispan 缓存条目级别设置的lifespanMs和maxIdleTimeMs的具体数值。这些是底层缓存的内部元数据主要用于 Infinispan 自身的过期清理机制并不在管理界面暴露。 简单来说
网站建设 高端定制 企业官网