You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

XPages中如何获取Domino Web端HTTP登录的在线用户列表

需求可行性与实现路径

该需求具备完全可落地的实现条件——Domino Admin面板能查询到HTTP端在线用户,本质是读取服务端实时存储的活跃会话数据,不存在数据断层,可以直接在XPages应用内对接这套数据源,无需依赖面板手动操作。以下是可直接切入的调研方向与成熟实现方案:

方向1:对接Domino内置的会话监控数据源

  • Domino服务端会持续记录所有经过HTTP栈认证的活跃用户会话,这就是Admin面板在线列表的原始数据来源。
  • 实现切入:在XPages的服务端SSJS或Java代码中,使用具备服务器监控读权限的服务账号,调用内置的服务端监控接口拉取全量会话列表,通过两个固定过滤条件筛选目标数据:
    • 会话来源标记为HTTP Web端
    • 会话状态为活跃、未到超时阈值
  • 适配提示:拉取数据后可在应用内二次加工,提取用户名、最近访问时间、客户端IP、在线时长等需要展示的字段,和官方面板的展示逻辑对齐即可。

方向2:轻量自实现在线跟踪(无需高权限)

如果不需要和官方面板的统计结果完全1:1对齐,这个方案的落地成本最低:

  • 新建一个专门的跟踪数据库,在应用的自定义Web登录校验逻辑中,当用户认证通过后自动写入一条跟踪记录,字段包含用户名、登录时间、最后活跃时间、会话ID、客户端IP
  • 统计在线列表时,直接查询跟踪库中「最后活跃时间与当前时间的差值小于Domino配置的HTTP会话超时时长」的记录,即可得到接近准确的在线用户清单
  • 优化细节:在应用全局的beforePageLoad前置事件中,定期更新当前登录用户的最后活跃时间;当用户主动退出登录、会话自然超时后,自动将对应记录标记为离线,避免脏数据统计。

方向3:读取Domino目录的会话缓存视图

  • Domino的目录数据库(names.nsf)会内置存储HTTP用户的实时在线会话缓存视图,是可直接读取的本地数据源。
  • 实现切入:以服务端管理员身份打开names.nsf,遍历对应会话视图的文档,提取HTTP会话属性,过滤掉Notes客户端、DAS等非Web来源的会话,即可得到目标在线用户列表。
  • 适配提示:该视图的文档字段结构会随Domino小版本调整,实现时不要硬编码固定字段名,需要根据当前部署的Domino版本做字段映射适配。

避坑提醒:

  • 不要依赖单应用内的sessionScope统计在线用户:不同应用的session是隔离的,多应用、集群部署场景下统计结果完全不准
  • 调用内置监控接口时必须使用具备对应读权限的服务账号:普通用户身份会被Domino安全栈直接拦截,无法获取完整会话列表
  • 在线列表的统计口径要和Domino实际的HTTP会话超时配置保持一致,不要把已经超时的离线用户纳入统计

内容的提问来源于stack exchange,提问作者Cumhur Ata

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.27 00:06:04