具有过期 JWT 和 Eclipse 微配置文件的 REST 客户端

Posted

技术标签:

【中文标题】具有过期 JWT 和 Eclipse 微配置文件的 REST 客户端【英文标题】:REST client with expiring JWT and eclipse micro-profile 【发布时间】:2022-01-18 09:09:51 【问题描述】:

我正在编写一个带有 quarkus 和 eclipse 微配置文件的微服务。其中一部分是使用简单的 GET 从 REST 端点读取一些配置。到目前为止一切顺利。

Web 服务端点需要 JWT 身份验证。要获取令牌,我必须使用基本 HTTP 身份验证调用另一个端点。服务器不使用像 OAuth 或 OpenID 这样的标准。我只找到没有或只有基本身份验证的微配置文件示例。

所以我的问题是,如何使用微配置文件实现该流程?我需要先进行身份验证,将该 JWT 标头放入 RestRequest 并注意过期。也许框架中有一些帮助?

谢谢

【问题讨论】:

如果你投了反对票,你能写评论吗? 【参考方案1】:

如果您的身份验证提供程序使用自定义身份验证方案,则您必须编写自己的 ClientRequestFilter 来处理获取 JWT 的过程,然后将其作为身份验证标头传递给原始请求。 你可以看看现有的 Quarkus OIDC 客户端过滤器here

基本上您需要实现getAccessToken 方法,您将在其中向您的Auth 端点发出请求,交换硬凭证以获得令牌,然后使用获得的令牌。为了提高性能,您应该将令牌存储在以 clientctx 作为键的缓存/AtomicReference 中,这样如果它们在后续请求中没有过期,您就可以重复使用它们。

【讨论】:

以上是关于具有过期 JWT 和 Eclipse 微配置文件的 REST 客户端的主要内容,如果未能解决你的问题,请参考以下文章

PHP JWT:: **解码** 过期令牌

使用 JdbcStore 时配置 JWT 令牌过期时间

如何在 React 上检测 jwt 令牌过期

具有 OAuth 2 和 JWT 安全性的 Spring Boot 微服务

JWT Token过期时间增加

jwt检查令牌是否过期