我正在使用Apache Jersey构建一个RESTful网络服务。现在,我希望您需要对某些请求进行身份验证。使用典型的REST方法,身份验证应该通过HTTP-Authentication来完成。但here的一篇帖子提到,更好的方法是使用cookies。我认为在讨论中有一些有效的观点。(如何)如何使我的Jersey身份验证与Cookie一起工作?我需要另一个框架吗?
发布于 2011-07-04 21:58:56
Jersey使用在封闭的web应用程序的web.xml中声明的身份验证机制,实际上是HTTP身份验证(通过SSL)或基于表单的Cookie身份验证。
如果要使用基于cookie的会话身份验证,则用户必须首先使用web服务进行身份验证,以创建可用于检查其身份以供将来调用的会话。servlet规范提供了一种使用cookie和使用web表单的会话进行身份验证的标准化方法,但是,这与web服务类型的应用程序不兼容。因此您可能想要想出一些定制解决方案,让用户通过POSTing提交他们的凭证。这种方法的一个问题是,如果用户在未进行第一次身份验证的情况下或在会话过期后调用资源,则需要对其进行重定向或接收某种类型的错误代码。这并不是不可能,但它会增加web服务的复杂性。
在这一点上,你不得不考虑使用HTTP Auth是否是web服务风格的应用程序的更好选择。我们最近使用Jersey和HTTP Auth作为身份验证机制构建了一个web服务。然后,我们在其上构建一个Javascript前端。Javascript客户端始终将身份验证头提交给web服务,这样用户就永远不会遇到来自浏览器的HTTP身份验证窗口。也许是两全其美。
https://stackoverflow.com/questions/6568885
复制相似问题