【发布时间】:2020-04-16 15:40:27
【问题描述】:
我在寻找什么:-
- 将 JWT 令牌传递给从 swagger-ui (springfox) 实现中捕获的下游 API 调用(服务到服务调用)。
有没有办法达到同样的效果?
注意:- 我要从 Swagger-ui 中捕获令牌
【问题讨论】:
标签: spring-boot spring-mvc swagger swagger-ui springfox
我在寻找什么:-
有没有办法达到同样的效果?
注意:- 我要从 Swagger-ui 中捕获令牌
【问题讨论】:
标签: spring-boot spring-mvc swagger swagger-ui springfox
在您的 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
【讨论】: