我使用Spring MVC编写了一个RESTful Web服务。我基本上让客户感到满意,然后在注册后添加更多细节。流程基本如下:
输入第一组注册信息。这由webservice验证并返回到客户端
输入第二组注册信息。这也由webservice验证并返回给客户端。
确认注册。用户现在可以通过各种Web服务调用添加更多特定帐户详细信息。
步骤1和2不要求用户登录(他们不能,因为他们还没有完整的登录详细信息)。但是,我需要一个会话,因为除非步骤1已完成,否则用户不应该完成步骤2。注册完成后,我希望用户登录并创建完整的经过身份验证的会话,以便添加更多详细信息。
阅读了Spring安全文档之后,我认为在注册成功后我对已通过身份验证的会话感到满意(虽然它很复杂,因为我没有实际的login.jsp)。我无法从Spring Docs中理解的是,甚至可以在匿名请求之间维护会话状态。看看如何从SecurityContextHolder中提取信息似乎都依赖于UserDetails(当然不存在)。我可以理解它对于一个未经身份验证的请求是如何工作的,但我只是不确定同一个用户的多个未经身份验证的请求。
甚至可以在Spring Security中维护匿名请求的会话。