gpt4 book ai didi

spring-boot - 用于添加身份验证 header 的 WebClient 过滤器

转载 作者:行者123 更新时间:2023-12-02 19:44:19 28 4
gpt4 key购买 nike

我即将对需要身份验证 header 的外部服务实现一些请求。

身份验证服务是一项外部服务,为了检索 token ,我需要进行 HTTP 调用。

我正在考虑推进的策略是创建附加过滤器到 WebClient,调用此服务以获取 token ,然后将其添加到 header 。

当然,我将实现一些缓存层来检索 token ,但重点是我将向我的请求添加一个请求。

您认为这是一种有效的方法吗?或者我应该在主请求之外显式调用身份验证服务吗?

最佳答案

如果它是 OAuth2 并且您的请求需要 JWT token ,Spring Security 和 WebClient 也能够执行此操作(Spring WebFlux based exampleSpring Web example)。我不会在过滤器中实现此逻辑,而是创建一个 WebClient 过滤器来为每个请求设置 Authorization: Bearer XYZ header 并从 外部传递 token 或在 Spring 之前。

你也可以看看这个library .它会定期为您在后台线程中获取 OAuth2 token ,您可以将其传递给您的 WebClient

WebClient 的自定义过滤器可能如下所示:

private ExchangeFilterFunction authHeader(String token) {
return (request, next) -> next.exchange(ClientRequest.from(request).headers((headers) -> {
headers.setBearerAuth(token);
}).build());
}

关于spring-boot - 用于添加身份验证 header 的 WebClient 过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59613118/

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