我正在使用企业级 Java 后端应用程序,我需要构建基于令牌的用户身份验证。前端使用 PHP 并通过 SOAP 与 Java 后端进行通信。
我考虑过使用 Guava 的 HashBiMap 来帮助我解决问题。这对我很有用,因为我可以生成 UUID 令牌作为键并将用户对象作为值存储在静态 HashBiMap 中。当用户首次成功登录时,该用户将被添加到 HashBiMap 中,登录响应将返回生成的 UUID 令牌。对同一用户的后续 SOAP 请求将仅使用令牌进行。
我现在面临的问题是我需要某种驱逐逻辑,允许这些令牌在 30 分钟不活动后被驱逐。在我的研究中,HashBiMap似乎并不像 Guava 的MapMaker那样本身支持驱逐。
有没有人对我如何使用 HashBiMap 并支持驱逐不活动有任何建议?如果这种方法不理想,我对其他策略持开放态度。
更新:
我想我需要使用 HashBiMap 因为我希望能够在地图中查找用户对象并在用户仍在地图中时获取他们已经存在的令牌。例如,如果用户在 30 分钟窗口内关闭浏览器,几分钟后返回并重新登录,我需要检查用户是否已经存在于地图中,以便我可以返回他们现有的令牌(因为它技术上仍然有效)。