从另一个线程访问用户会话对象,如何实现?

Posted

技术标签:

【中文标题】从另一个线程访问用户会话对象,如何实现?【英文标题】:Access user session objects from another thread, how to make it? 【发布时间】:2010-11-27 05:03:17 【问题描述】:

如何从另一个线程访问用户会话对象?

我想定期删除一些用户。我可以从数据库中删除它们,但是可以登录一些用户。因此,如果存在,我想使他的会话无效。如何使用他的 userId 找到并使他的会话无效

据我了解,servlet 容器具有一些类似哈希的结构来存储“sessionId”=>“UserSession”映射。我可以访问它们吗?我可以以某种方式将 userIds 存储为该结构中的键吗?

我不喜欢的替代方法是在每个用户请求开始时检查数据库是否存在用户对象。

【问题讨论】:

【参考方案1】:

出于安全考虑,您正在寻找 existed but was removed 的功能。

您应该能够通过实现HttpSessionListener 来重新创建它,以创建您自己的活动会话记录。

【讨论】:

【参考方案2】:

您可以通过实现SessionListener 并将其注册到您的 web.xml 中来跟踪您的会话。

【讨论】:

以上是关于从另一个线程访问用户会话对象,如何实现?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 JSF 中使用会话实现多用户登录

如何从另一个片段访问片段对象

是否可以从另一个账户使用 IAM 角色访问 Redshift?如何?

一旦从另一个线程获得结果,如何更新领域对象?

如何使用 Parse Server 错误从另一个浏览器选项卡检测另一个会话正在进行中

MFC:从另一个线程访问 GUI?