【问题标题】:Springboot: Pass the JWT token captured from swagger UI to the downstream(Service to service) API calls automaticallySpringboot:将从swagger UI捕获的JWT令牌自动传递给下游(服务到服务)API调用
【发布时间】:2020-04-16 15:40:27
【问题描述】:

我在寻找什么:-

  1. 将 JWT 令牌传递给从 swagger-ui (springfox) 实现中捕获的下游 API 调用(服务到服务调用)。

有没有办法达到同样的效果?

注意:- 我要从 Swagger-ui 中捕获令牌

【问题讨论】:

    标签: spring-boot spring-mvc swagger swagger-ui springfox


    【解决方案1】:

    在您的 springboot 应用程序中,如果您想将 JWT 令牌传递给另一个 REST api,一般的方法是通过标头传递它。在您的 springboot 应用程序中,您可以配置您的 REST 模板 bean,以在您的应用程序的每个请求中包含 JWT 令牌。例如,您可以创建一个 REST 模板 bean,如下所示:

    @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;
      }
    }
    

    然后您可以在任何地方使用相同的 rest 模板 bean。 这里提供了另一种方法:Propagate HTTP header (JWT Token) over services using spring rest template

    【讨论】:

      猜你喜欢
      • 2022-01-11
      • 1970-01-01
      • 1970-01-01
      • 2012-04-10
      • 2014-09-24
      • 2020-05-31
      • 2019-08-15
      • 2016-09-30
      • 2017-08-28
      相关资源
      最近更新 更多