Springboot: автоматически передавать токен JWT, полученный из пользовательского интерфейса swagger, в нижестоящие вызовы API (от службы к службе).

Что я ищу: -

  1. Передайте токен JWT нижестоящим вызовам API (сервисным вызовам), полученным из реализации swagger-ui (springfox).

Есть ли способ добиться того же.?

Примечание. Я должен захватить токен из Swagger-ui.


person DEVYANSH MITTAL    schedule 26.12.2019    source источник


Ответы (1)


В вашем приложении Springboot, если вы хотите передать токен JWT другому API REST, общий подход заключается в передаче его через заголовки. В вашем приложении springboot вы можете настроить свой компонент шаблона отдыха для включения токена JWT в каждый запрос из вашего приложения. Например, вы можете создать компонент шаблона отдыха, например:

@Configuration
public class RestTemplateConfig {

  @Bean
  @RequestScope
  public RestTemplate authTokenAddedRestTemplate(HttpServletRequest inReq) {

    final String authHeader = 
      inReq.getHeader(HttpHeaders.AUTHORIZATION);
    final RestTemplate restTemplate = new RestTemplate();

    if (authHeader != null && !authHeader.isEmpty()) {

      restTemplate.getInterceptors().add(
        (outReq, bytes, clientHttpReqExec) -> {
          outReq.getHeaders().set(
            HttpHeaders.AUTHORIZATION, authHeader
          );
          return clientHttpReqExec.execute(outReq, bytes);
        });
    }
    return restTemplate;
  }
}

Тогда вы можете использовать один и тот же bean-компонент шаблона отдыха везде. Здесь представлен другой подход: Токен JWT) поверх сервисов с использованием шаблона spring rest

person Ananthapadmanabhan    schedule 26.12.2019