我希望几个相关 Web 应用程序的客户端保持自己的身份验证状态。这提高了可伸缩性,因为不需要集群节点之间的会话复制。它使 Java Servlet 和 PHP 等不同服务器技术的集成变得更加容易。
我的计划如下:
- 在客户端验证后,使用用户名和会话到期时间设置签名和加密的 cookie。
- 当客户端发送请求时,服务器会解密并验证 cookie,并根据 cookie 值授予或拒绝访问。
- 会话过期将通过重置 cookie 进行更新。
所有想要使用会话的服务器只需要知道 cookie 机制和解密密钥。另请参阅:客户端层中的会话状态
这种方法可以吗?是否可以将其集成到 servlet 容器/应用程序服务器中,以便对应用程序透明?例如,servlet 应该能够使用 HttpServletRequest#getRemoteUser()。这可能吗?或者我需要像 Spring Security 这样的容器级别以上的东西吗?是否有任何现有的用于客户端会话管理的库?