当前位置: 首页 > news >正文

Keycloak~infinispan中MergedUpdate中lifespanMs和maxIdleTimeMs

在 Keycloak 中,MergedUpdate类里的lifespanMsmaxIdleTimeMs是与 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 MaxSSO Session Idle值,计算出对应的lifespanMsmaxIdleTimeMs,并将它们作为元数据设置到 Infinispan 缓存条目中。此后,Infinispan 会负责在后台自动清理过期的会话条目。

下面日志是用户登录后,写入sessions和clientSessions缓存的信息,包含它们的过期时间

  • sessions

    • Lifespan: max(sso session max & SSO Session Max Remember Me)这3个时间的最大值
    • MaxIdle: sso session idle (最小时间为300秒,5分钟,所以缓存中最小为5+3=8分钟)
  • clientSessions

    • Lifespan: client session max (最小时间为300秒,5分钟,所以缓存中最小为5+3=8分钟)
    • 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 MaxSSO Session Idle的全局默认值。这些配置值就是lifespanMsmaxIdleTimeMs的计算依据。

    • 路径通常是:管理控制台-> 选择你的Realm->Realm 设置->令牌会话标签页。
  • 查看活跃会话:Keycloak 管理后台提供了查看当前活跃会话的功能。

    • 路径通常是:管理控制台-> 选择你的Realm->会话菜单。
      在这里你可以看到当前活跃的用户会话列表。虽然这个界面通常不会直接显示每个会话精确到毫秒的剩余lifespanMsmaxIdleTimeMs,但它会展示会话的创建时间或最后活动时间。你可以结合 Realm 的全局会话超时设置,来估算会话的有效期。
  • 关键限制:需要明确的是,管理后台无法直接、实时地显示每个会话在 Infinispan 缓存条目级别设置的lifespanMsmaxIdleTimeMs的具体数值。这些是底层缓存的内部元数据,主要用于 Infinispan 自身的过期清理机制,并不在管理界面暴露。

💎 简单来说

http://www.jsqmd.com/news/1100881/

相关文章:

  • 2026 年7月调研数据:北京CRM系统定制开发机构综合口碑评分一览
  • 明日方舟创作宝藏库:解锁海量高清素材的终极武器
  • 华为设备BGP调优实战:手把手教你配置路由快速收敛与震荡抑制(含定时器详解)
  • 从推箱子到世界模型:AI认知革命如何重塑下一代智能系统
  • 单线程测试模块
  • 边缘 AI 推理性能优化:从模型压缩到硬件协同的全栈调优
  • 直付通二级商户生存法则:选一级方不能只看“表面功夫”
  • vivo 微服务架构实践之 Dubbo 性能优化
  • 3个关键技术构建Windows系统镜像自动化补丁集成平台
  • XSS绕过实战:从过滤器原理到编码混淆的攻防解析
  • Mac M系列芯片完美运行Attu:解锁Milvus最佳GUI体验的完整指南
  • 别再对着数据发愁了!手把手教你用EViews搞定时间序列预测(附完整操作截图)
  • 剪流GEO对中小企业的获客帮助大吗?——客户都去问AI了,你的品牌还能被推荐吗?
  • 别再手动算p值了!用ggplot2+ggsignif搞定分组柱状图的显著性标注(附完整代码)
  • 把休学干预的价格打下来:坤和静界·春藤计划的OMO成本结构拆解
  • 干净的Windows系统下载地址
  • 别再只调encode了!用Hugging Face Tokenizer玩转中文分词、ID转换与可视化(附完整代码)
  • C# Winform Chart控件数据绑定实战:从数组、List到数据库(柱状图为例)
  • 这颗ESP32-S3-MINI-1U-N4R2,为什么我们推荐它做你的下一款主控
  • VMware磁盘映射性能骤降57%?深度剖析NTFS/EXT4文件系统与VMFS元数据交互瓶颈(实测数据支撑)
  • 计算机毕业设计之基于web技术的物流管理系统
  • MySQL零基础实战入门:从核心概念到多表关联的系统学习路径
  • WEB漏洞实战心法:从黑盒扫描到白盒思维的攻防进阶
  • HFSS实战:手把手教你用FR4板设计一个2.45GHz的Wi-Fi天线(附参数优化全流程)
  • 别再只用USB了!手把手教你用移远RX500U的PCIE接口扩展千兆网口,把5G模组变软路由
  • 本地AI图像修复工具Inpaint-Web部署与使用指南
  • 【架构实战】CQRS命令查询职责分离:读写分离的进阶实践
  • Resemble Enhance终极指南:3分钟掌握AI语音降噪增强技术
  • PHP应用防火墙AWD Watchbird部署指南:从原理到实战
  • Seedance 2.0鉴权插件离线部署:安全验证与KMS绑定全流程