在我们的微服务中,我们使用 Feign 在服务之间进行通信,我们有一个专用的 RequestInterceptor 来处理安全性并将我们的 JWT 令牌附加到每个请求。
我想使用 Feign 来调用我组织之外的第 3 方服务。
假设我的 FeignClient 看起来像这样。
@FeignClient(name = "ThirdPartyClient", url = "https://api.thirdparty.com/", configuration = ThirdPartyConfiguration.class)
public interface ThirdPartyClient { ... }
问题是这个第 3 方客户端也将通过 RequestInterceptors 列表并获得在我的微服务之间使用的相同身份验证标头。我想绕过 RequestInterceptors 的默认列表来设置一个特定的。
我试图覆盖文档中描述的默认配置,我设法添加了特定的 RequestInterceptor 但仍然通过列表,所以我得到了请求中的所有标头。
@Configuration
public class ThirdPartyConfiguration {
@Bean
public RequestInterceptor requestInterceptor() {
return requestTemplate -> {
requestTemplate.header("Authorization", "HEADER_VALUE");
};
}
}