解决远程调用不自动带上访问令牌的拦截器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/**
* 解决远程调用不自动带上访问令牌的拦截器
* 使用 Feign进行远程调用时,先经过此拦截器,在此拦截器中将请求头带上访问令牌
*/
@Component
public class FeignRequestInterceptor implements RequestInterceptor {
@Override
public void apply(RequestTemplate requestTemplate) {
// 通过RequestContextHolder工具来获取请求相关变量
ServletRequestAttributes attributes =
(ServletRequestAttributes)RequestContextHolder.getRequestAttributes();
if(attributes != null) {
// 获取请求对象
HttpServletRequest request = attributes.getRequest();
String token = request.getHeader(HttpHeaders.AUTHORIZATION);
if(StringUtils.isNotEmpty(token)) { // Bearer xxx
// 在使用feign远程调用时,请求头就会带上访问令牌
requestTemplate.header(HttpHeaders.AUTHORIZATION, token);
}
}
}
}

解决远程调用不自动带上访问令牌的拦截器
http://example.com/2021/04/19/解决远程调用不自动带上访问令牌的拦截器/
作者
shoukailiang
发布于
2021年4月19日
许可协议