9

「グローバル」な RequestInterceptor が定義されているクライアントが多数あります。クライアントの 1 つで、この「グローバル」インターセプターを除外する必要があります。特定の FeignClient の RequestInterceptors の完全なセットをオーバーライドすることは可能ですか?

@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 です

4

2 に答える 2

3

グローバルインターセプターをオーバーライドする簡単な方法はないようです。次のようにできると思います。

@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));
    };
}
}
于 2018-05-04T05:22:31.423 に答える