具有过期 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 客户端的主要内容,如果未能解决你的问题,请参考以下文章