绕过一个FeignClient的RequestInterceptors全局列表



在我们的微服务中,我们使用Feign在服务之间进行通信,我们有一个专用的RequestInterceptor来处理安全性,并将我们的JWT令牌附加到每个请求。

我想使用Feign呼叫我组织之外的第三方服务。

假设我的FeignClient是这样的。

@FeignClient(name = "ThirdPartyClient", url = "https://api.thirdparty.com/", configuration = ThirdPartyConfiguration.class)
public interface ThirdPartyClient { ... }

问题是,这个第三方客户端还将遍历RequestInterceptors列表,并获得在我的微服务之间使用的相同身份验证头。我想绕过RequestInterceptors的默认列表来设置一个特定的列表。

我已经尝试覆盖文档中描述的默认配置,我设法添加了特定的RequestInterceptor,但仍然会遍历列表,因此我获得了请求中的所有标头。

@Configuration
public class ThirdPartyConfiguration {
@Bean
public RequestInterceptor requestInterceptor() {
return requestTemplate -> {
requestTemplate.header("Authorization", "HEADER_VALUE");
};
}
}

在全局RequestInterceptor中,您可以通过检查外部客户端URL:来绕过身份验证

@Override
public void apply(RequestTemplate template) {
if (template.url().equals("/your_specific_url")) {
/*apply auth header*/
}
}

相关内容

  • 没有找到相关文章

最新更新