Имитация заголовка динамической авторизации клиента

У меня есть служба, которая получает HTTP-запрос с заголовком авторизации. При обработке запроса я хочу использовать Feign Client для запроса другой службы. Запрос к другой службе должен включать другой заголовок авторизации.


person Govardhana krishnan B    schedule 03.05.2018    source источник


Ответы (2)


Вы просто передаете свой заголовок в качестве аргумента и соответственно объявляете свой метод в своем интерфейсе. Ниже приведен фрагмент кода.

И когда вы запустите свой клиент Feign с полным уровнем ведения журнала (feign.client.config.default.loggerLevel = full), вы увидите заголовок авторизации (в моем случае это токен доступа OAuth Bearer).

Надеюсь, это поможет.

Всего наилучшего, Вим

@FeignClient(name="mde", url="${MDE.campaignServiceEndpoint}")
public interface CampaignClientService {
    @RequestMapping(method = RequestMethod.GET, value = "/useCases/search/findByName?name={name}")
    @Cacheable("placementUseCase")
    PlacementUseCase findUseCaseByName(@RequestHeader(value = "Authorization", required = true) String authorizationHeader, @PathVariable("name") String name);
person Wim Van den Brande    schedule 04.05.2018

Если вы используете клиент Feign напрямую без Spring

тогда вы можете передать параметры заголовка примерно так, в Feign Interface

@Headers("Content-Type: application/json")
@RequestLine("PATCH infusionsoft/contacts/{contactId}?format={format}")
InfusionsoftFullContact updateContact(@Param("contactId") Long contactId, @Param("format") String format,InfusionsoftFullContact contact,@HeaderMap Map<String, Object> headerMap);

Где HeaderParams может быть таким, как показано ниже

Map<String, Object> headerMap = new HashMap<>();

   headerMap.put("application", "FDX");
   headerMap.put("Authorization", "Basic aW5mdXNpb25zb2Z0OnBhc3N3b3Jk");
   headerMap.put("platform",user.getPlatform());
   headerMap.put("platformKey", user.getPlatformKey());
   headerMap.put("email",user.getEmail());
   headerMap.put("Content-Type", MediaType.APPLICATION_JSON);
person Umashankar    schedule 28.06.2018