gpt4 book ai didi

java - 如何使用 OAuth 对 MicroProfile REST 客户端调用进行身份验证?

转载 作者:行者123 更新时间:2023-12-01 17:40:28 49 4
gpt4 key购买 nike

在我的服务器应用程序中,我想使用 MicroProfile REST 客户端使用一些第三方 API。为此,我需要发送带有不记名 token 的 Authorization header 。

我不想在进行任何调用之前总是获得 token ,因此我需要一种机制,仅在尚无 token 或 token 过期时才检索新 token 。然后可以存储该 token 并在每次调用中使用该 token ,直到其过期。下一次对 API 的调用将导致 HTTP 401 Unauthorized,然后将导致获取新 token 。

不幸的是,到目前为止我无法找到任何有关如何使用 MicroProfile REST 客户端使用 OAuth 安全 API 的资源。我希望任何人都可以给我任何提示。我正在使用 Kotlin 和 Quarkus,但 Java 相关文档也可以。任何事情都有帮助。

这是我相当简单的客户端:

@RegisterRestClient
@Produces(MediaType.APPLICATION_JSON)
interface SomeThirdPartyApiClient {
@POST
@Path("/some/random/url")
fun someRandomUrl(body: SomeJsonRequestObject, @HeaderParam("Authorization") bearer: String): SomeJsonResponseObject
}

最佳答案

正如与 iabughosh 讨论的那样,似乎没有自动的方法可以做我想做的事情。相反,我按照 iabughosh 的建议自己编写了代码。我采用了捕获调用中错误的方法。如果错误状态为 401,那么我会检索新 token 并重试调用。

当应用程序启动并且还没有 token 时,第一次调用总是会导致 401,然后我得到第一个 token 。仅当 token 过期(或被服务器管理员过早删除)时才会出现下一个 401,因此我只需获取 token 并再次进行调用即可。

就目前而言,这似乎工作得很好。当存在大量(并行)调用时,我必须看看生产中的结果如何。如果我找到更好的解决方案,我会尝试记住这个问题并相应地更新。

关于java - 如何使用 OAuth 对 MicroProfile REST 客户端调用进行身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60959323/

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