当前位置: 首页 > 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.gsyq.cn/news/1612845.html

相关文章:

  • 明日方舟创作宝藏库:解锁海量高清素材的终极武器
  • XSS绕过实战:从过滤器原理到编码混淆的攻防解析
  • 别再对着数据发愁了!手把手教你用EViews搞定时间序列预测(附完整操作截图)
  • 剪流GEO对中小企业的获客帮助大吗?——客户都去问AI了,你的品牌还能被推荐吗?
  • 干净的Windows系统下载地址
  • C# Winform Chart控件数据绑定实战:从数组、List到数据库(柱状图为例)
  • WEB漏洞实战心法:从黑盒扫描到白盒思维的攻防进阶
  • 别再只用USB了!手把手教你用移远RX500U的PCIE接口扩展千兆网口,把5G模组变软路由
  • 计算机毕业设计之基于web技术的物流管理系统
  • PHP应用防火墙AWD Watchbird部署指南:从原理到实战
  • 本地AI图像修复工具Inpaint-Web部署与使用指南
  • 信号处理入门:用Python手把手实现傅里叶级数可视化(附周期延拓代码)
  • GPT-5.4 API 中转站怎么选?使用 kingflow 快速接入高阶 AI 大模型 API
  • 用VirtualLab Fusion搞定光栅建模:从单光栅分析到复杂系统集成的保姆级教程
  • 随身WiFi信号太差?手把手教你低成本改装双天线(附FPC天线焊接与短接避坑指南)
  • DC-DC电源中,什么是功率地?
  • 别再手动画图了!用SuperMap iDesktop的‘获取投影面’功能,5分钟搞定三维模型二维化
  • 众包平台任务分发与防骗机制设计——以帮帮星球为例
  • 【Sora vs 可灵AI决策指南】:企业级视频生产选型必查的6个隐藏参数(含API吞吐量、长时序一致性、中文语义理解得分)
  • ANSYS APDL命令流实战:从截面特性到节点耦合,我的工程笔记大公开
  • GPT Image 2 提示词教程:解决图片脏、模糊、有噪点的终极方法
  • 告别字符串处理噩梦:用MySQL的regexp_replace、regexp_substr、regexp_instr函数搞定数据清洗
  • 穿戴式脑电仪采集技术对比:湿电极vs干电极vs水电极
  • 选Wi-Fi模组别只盯着双核,这颗单核型号才是纯联网场景的务实之选
  • SQL注入攻防:从回显注入到盲注的实战技巧与防御策略
  • WebdriverIO与Cucumber框架兼容性实战:解决BDD自动化测试整合难题
  • 智能排课系统技术架构深度解析:微服务、约束求解与高并发调度
  • 文献综述撰写卡壳?okbiye 专属 AI 文献综述工具,一站式搞定国内外研究梳理
  • 图形化打包Python程序,还能加密+授权一步到位
  • AI 网关能力再升级!Higress v2.2.3 发布:新增上下文限制与 vLLM 透传支持