我有许多为其定义了“全局” RequestInterceptor的客户端。对于其中一位客户,我需要将此“全局”拦截器排除在外。是否可以为特定的FeignClient覆盖完整的RequestInterceptor集?
@FeignClient(value = "foo", configuration = FooClientConfig.class)
public interface FooClient {
//operations
}
@Configuration
public class FooClientConfig{
//How do I exclude global interceptors from this client configuration?
}
使用的spring-cloud-netflix版本是1.1.0 M5
最佳答案
似乎没有简单的方法可以覆盖全局拦截器。
我认为您可以这样做:
@Configuration
public class FooClientConfig{
@Bean
RequestInterceptor globalRequestInterceptor() {
return template -> {
if (template.url().equals("/your_specific_url")) {
//don't add global header for the specific url
return;
}
//add header for the rest of requests
template.header(AUTHORIZATION, String.format("Bearer %s", token));
};
}
}