Мы используем Open Feign в нашем приложении, которое работает на Spring Boot 2.0.6 и Spring Cloud Finchley.SR2.
Нам необходимо, чтобы все Feign-клиенты добавляли токен из контекста безопасности в заголовок каждого вызова, поэтому мы создали конфигурацию, которая создает глобальный перехватчик для всех клиентов:
@Configuration
@Import({FeignClientsConfiguration.class})
public class FeignConfig {
@Value("${a.spring.config}")
private int minTokenLifespan;
@Autowired
private OAuthContext oAuthContext;
@Autowired
private AuthManager authManager;
@Bean
public RequestInterceptor myCustomInterceptor() {
return new CustomInterceptor(oAuthContext, authManager, minTokenLifespan);
}
}
Перехватчик работает для всех Притворных Клиентов, кроме одного. В отладчике мы можем видеть, что этот специальный симулированный клиент (вместе с его SynchronousMessageHandler) создан, за до Боб создается в классе FeignConfig
. CustomIntercepter
создается только после первого Feign Client, все остальные клиенты создаются позже, знают о существовании перехватчиков и будут применять его.
Как мы можем отладить эту проблему? У кого-нибудь была другая проблема в прошлом?
Я не могу опубликовать производственный код, но я был бы рад ответить на любой вопрос и попытаться опубликовать запутанный код.