OpenFeign拦截器
在微服务中比较常见的场景:前端带了JWT令牌请求服务A,在服务A中使用Feign远程调用服务B、服务C等,A、B、C都接入了Spring Security;此时就会存在这样的需求,如服务A调用服务B、C时不带有JWT令牌就会出现服务调用失败,无法通过服务B、C鉴权认证;
此时需要通过Feign提供的RequestInterceptor拦截器将A请求头中所持有的Token在Feign发起远程调用时继续传递给服务B、服务C;
Demo示例代码:
public class DemoRequestInterceptor implements RequestInterceptor {
private final BearerTokenResolver tokenResolver;
@Override
public void apply(RequestTemplate template) {
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
HttpServletRequest request= attributes.getRequest();
//获取当前请求header