使用一个假客户端调用具有不同身份验证的多个端点

问题描述 投票:0回答:1

我正在尝试使用 same feign 客户端来调用/POST different 端点(端点 1、端点 2 等),如下所示(有效负载结构相同。可以假设端点数量将继续保持 3 [比如说]部署的应用程序);

  • 端点 1 - 身份验证机制 - OAuth2
  • 端点 2 - 身份验证机制 - 基本身份验证
  • 端点 3 - 身份验证机制 - OAuth2(不同的客户端 id/secret/okta)

目前只能以 https://www.baeldung.com/spring-cloud-feign-oauth-token 为参考成功实现调用“endpoint1”,但在扩展它以支持基于不同动态的不同调用方面面临着挑战“输入”,使用单个假客户端。任何帮助/建议表示赞赏?

使用 Spring Boot 2.7.X 和 JDK 11。

spring-boot rest oauth-2.0 basic-authentication openfeign
1个回答
0
投票

我认为你可以通过传递包含授权(Basic、Digest 或 OAuth2)的 headerMap 来做到这一点,如下所示:

@FeignClient(name = "dummy", url = "empty")
public interface Client {

    @PostMapping
    void call(URI baseUri, @RequestHeader Map<String, String> headerMap, @RequestBody RequestBody requestBody);
}

在您的服务中,您可以创建自定义 headerMap:

Map<String, String> headers = new HashMap<>();
headers.put("Authorization", <BASIC or other authorization>);
client.call(new URI("http://localhost:8080/endpoint"), headers, requestBody);
© www.soinside.com 2019 - 2024. All rights reserved.