«Глобальный» Feign Interceptor не доступен для всех клиентов Feign - PullRequest
1 голос
/ 25 апреля 2019

Мы используем 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, все остальные клиенты создаются позже, знают о существовании перехватчиков и будут применять его.

Как мы можем отладить эту проблему? У кого-нибудь была другая проблема в прошлом?

Я не могу опубликовать производственный код, но я был бы рад ответить на любой вопрос и попытаться опубликовать запутанный код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...