我想以某种方式保护我的RESTful网络服务,我在过去几个小时内阅读了关于春季安全问题,我不确定我是否能够实现我想要的东西。
这是典型的情况:
- 用户尝试访问www.address.com/rest/getSomething - 他获得401未经授权而且未重定向。
- 他使用用户名和密码参数访问www.address.com/rest/login
- 他的凭据与数据库中的那些核对(我使用的是JPA over Hibernate)
- 如果他们是正确的,用户收到200 OK,并且他登录的信息存储在会话中,因此他不需要发送用户名并在访问其他地址时通过。他成功(或不成功)登录的信息存储在DB
中
- 如果登录失败,则收到401
- 用户尽可能多地使用网络服务(每次访问时都会检查他的会话)
- 让我们说10分钟不活动后,他的会话结束,他需要再次登录
- 他可以访问www.address.com/rest/logout正确注销(会话无效吗?)
醇>
我还想介绍某种密码恢复方式,如果用户访问www.address.com/rest/remindPass,将会发送一封包含新生成密码的电子邮件。
编辑:
我忘了,还有一件事。我还需要另一个过滤器来检查用户是否有足够的特权来访问地址。