我想以某种方式保护我的 RESTful web 服务,我在过去的几个小时里阅读了有关 spring 安全性的内容,但我不确定我是否能用它实现我想要的。这是典型的场景:
- 用户尝试访问 www.address.com/rest/getSomething - 他得到 401 Unauthorized 并且他没有被重定向。
- 他使用用户名和密码参数访问 www.address.com/rest/login
- 他的凭据会根据数据库中的凭据进行检查(我在 Hibernate 上使用 JPA)
- 如果他们是正确的用户收到200 OK,并且他登录的信息存储在会话中,因此他在访问其他地址时不需要发送用户名和传递。他成功(或不成功)登录的信息存储在数据库中
- 如果登录不成功,他会收到 401
- 用户尽可能多地使用网络服务(在每次访问时,都会检查他的会话)
- 在假设 10 分钟不活动后,他的会话结束,他需要再次登录
- 他可以访问 www.address.com/rest/logout 以正确注销(会话无效可能吗?)
我还想介绍某种密码恢复,如果用户访问 www.address.com/rest/remindPass,将发送一封包含新生成密码的电子邮件。
编辑:我忘了,还有一件事。我还需要另一个过滤器来检查用户是否有足够的权限来访问地址。