我正在使用 Java、Hibernate 和 JSF 开发 Web 应用程序。 我希望用户仅限登录到单个 session ,如果用户已经登录,我不想在不注销第一个 session 的情况下从其他位置重新登录。
任何人都可以帮助了解如何实现这一目标。顺便提一下,根据我的要求,我不能使用 spring 或其任何功能。
最佳答案
你必须维护一个范围为 Set<Long>
的应用程序包含所有登录用户的逻辑标识符(如果您预计太多用户可能会将其写入数据库)
尝试登录时,通过检查用户在 Set
中的标识符来检查用户是否已经登录
注销后从 Set
中删除用户
session 过期后,从 Set
中删除用户
使用 HttpSessionListener
从集合中删除用户标识符 sessionDestroyed()
如果您将该数据保存到内存之外,则在应用关闭时清除该外部数据源
关于java - 使用java,没有spring的hibernate web应用程序一次限制用户登录到单个 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20899070/