gpt4 book ai didi

java - JAX-RS - 在 RESTful Web 服务中进行身份验证并获取用户数据

转载 作者:行者123 更新时间:2023-12-01 09:50:51 25 4
gpt4 key购买 nike

我是 RESTful Web 服务的新手,我正在尝试使用 JAX-RS 设计我的第一个安全 Web 服务。但我有这个疑问。

想象一下,我有一个信使 API,其中有一个“/posts”网络服务,它将为我提供调用它的用户的所有帖子。因此,我设计了一个基本的身份验证过滤器,它执行身份验证,如果用户有效,它将请求传递给/posts 服务,该服务为用户提供帖子列表。现在的问题是我的数据库中的用户有一个未向用户公开的用户 ID。在/posts 服务中,我需要 userId 来获取请求用户的帖子。所以我的过滤器进行身份验证并获取登录用户的 userId。

我的问题是如何将此 userId 传递到/posts Web 服务?

我现在的做法是将此 userId 添加为过滤器中的请求 header 信息,然后将其传递给/posts 服务。

但是我很困惑这是否是正确的方法,或者应该以其他方式优雅地处理这种情况?

请帮助我了解最好的方法是什么。

最佳答案

听起来您正在考虑创建自己的安全性,而此时已有已建立的标准并有详细记录。我过去曾使用 OAuth 和 JWT token 来保护休息端点。根据您的具体要求,您也许可以使用基本身份验证。

在安全方面,您很少能比专家做得更好,因此,如果您可以遵循标准,那么您可能应该这样做。额外的好处是下一个来的人拥有所有的文档和支持。

更新:

仅在请求中包含用户 ID 是不够的。任何知道其他人的用户 ID 的人都可以冒充该人并以其他用户的身份发布到端点。

“我的问题是如何将此 userId 传递到/posts Web 服务?”

session 可用于存储内部用户 ID。如果您已经让他们通过 session 登录,您应该能够从 session 中提取用户 ID。如果您要使用 JWT(无状态),您可以提取存储在 token 中的任何信息来完成同样的事情。

关于java - JAX-RS - 在 RESTful Web 服务中进行身份验证并获取用户数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37614186/

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