【发布时间】:2013-11-07 16:23:55
【问题描述】:
我的理解是 RESTful 服务应该是完全无状态的。每次调用服务时,我都必须传递它正常运行所需的所有信息。
但是,当涉及到身份验证时,我对它应该如何工作感到相当困惑,尤其是在会话管理方面。
我正在使用基本身份验证,并且第一次发出请求时,客户端会受到挑战(或者我可以从头开始传递标头中的身份验证信息)。但是一旦用户通过了身份验证,只要会话处于活动状态,服务器就不会再挑战这个客户端。
这意味着我需要为当前用户提供一些退出机制(终止他/她的会话)。
看起来这样做的正确方法是以某种方式更改我的配置,以便每个请求都受到身份验证的挑战,但我不知道这如何与会话管理一起使用。
- 我是否应该在每次请求后手动使会话无效?
- 或者有没有办法强制客户端在每次发出请求时都受到挑战?
您可以找到很多关于 REST 安全性的问题,甚至可以找到有关如何实现不同身份验证模型的书籍。但是我还没有找到关于如何处理会话管理、登录和注销的好答案。所以要么我做错了什么,要么我误解了这里重要的事情。
对于如何正确处理此问题的任何想法或指导,我将不胜感激。
我将 Jersey 2.4 与 Tomcat 7 一起使用。
【问题讨论】:
标签: java rest tomcat authentication jersey