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