gpt4 book ai didi

java - 不使用 Http-Authentication 在 Apache Jersey 中进行身份验证?

转载 作者:搜寻专家 更新时间:2023-11-01 02:15:46 25 4
gpt4 key购买 nike

我正在使用 Apache Jersey 构建 RESTful Web 服务。现在我希望您需要对某些请求进行身份验证。使用典型的 REST 方法,身份验证应通过 HTTP 身份验证完成。但是一个帖子here提到实现这一点的更好方法是使用 cookie。我认为讨论中有一些有效的观点。 (如何)我可以使我的 Jersey 身份验证与 Cookie 一起使用吗?我需要另一个框架吗?

最佳答案

Jersey 使用在封闭的 Web 应用程序的 web.xml 中声明的身份验证机制,实际上是 HTTP 身份验证(通过 SSL)或基于表单的 Cookie 身份验证。

如果您想使用基于 cookie 的 session 身份验证,用户必须首先通过 Web 服务进行身份验证以创建一个 session ,该 session 可用于检查他们的身份以供将来调用。 servlet 规范提供了一种标准化的方式来使用 cookie 和使用 web 表单的 session 进行身份验证,但是,它与 web 服务类型的应用程序不兼容。因此,您可能想要设计一些自定义解决方案,让用户通过 POST XML 或 JSON 文档提交他们的凭据。这种方法的一个问题是,如果用户在没有首先验证的情况下或在 session 过期后执行对资源的调用,他们将需要被重定向或接收某种类型的错误代码。并非不可能,但它会增加您的网络服务的复杂性。

此时您不得不怀疑使用 HTTP Auth 是否不是 Web 服务风格应用程序的更好选择。我们最近使用 Jersey 和 HTTP Auth 作为身份验证机制构建了一个 Web 服务。然后我们在它之上构建一个 Javascript 前端。 Javascript 客户端始终将身份验证 header 提交给 Web 服务,以便用户永远不会遇到来自浏览器的 HTTP Auth 身份验证窗口。也许两全其美。

关于java - 不使用 Http-Authentication 在 Apache Jersey 中进行身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6568885/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com