Улучшенный способ решения этой проблемы - передать вашему запросу настраиваемый заголовок, например:
@PostMapping("post-path")
ResponseEntity<Void> postRequest(@RequestHeader(HEADER_CLIENT_NAME) String feignClientName, @RequestBody RequestBody requestBody);
Я хочу установить заголовок в перехватчике только для этого воображаемого клиента. Перед установкой заголовка сначала перехватчик проверяет заголовок HEADER_CLIENT_NAME, если он существует и имеет желаемое значение:
private boolean criteriaMatches(RequestTemplate requestTemplate) {
Map<String, Collection<String>> headers = requestTemplate.headers();
return headers.containsKey(HEADER_CLIENT_NAME)
&& headers.get(HEADER_CLIENT_NAME).contains("feign-client-name");
}
Таким образом, вы можете проверить перед установкой базовой аутентификации. В перехватчике:
@Override
public void apply(RequestTemplate template) {
if (criteriaMatches(template)) {
/*apply auth header*/
}
}
Таким образом, перехватчик не будет обрабатывать запросы других мнимых клиентов.
Наконец, я установил feignClientName в запрос:
feignClient.postRequest("feign-client-name", postBody);
person
Bahadir Tasdemir
schedule
03.03.2020
Feign.Builder
, который игнорирует любой вызовrequestInterceptors
или игнорирует те, которые вы хотите. - person spencergibb   schedule 16.03.2016