场景
在开发中本模块需要调用用户的 feign接口来获取用户信息,但是出现了401,
原因是在访问其它模块微服务时没有携带token令牌.
解决方法
在调用服务中新建FeignConfig类并实现RequestInterceptor接口,重写apply方法。
public class FeignConfig implements RequestInterceptor {
@Override
public void apply(RequestTemplate requestTemplate) {
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
HttpServletRequest request = attributes.getRequest();
//添加token
requestTemplate.header("Token", request.getHeader("Token"));
}
}
在主启动类监听所有请求,防止RequestContextHolder.getRequestAttributes()报空指针
/**
* 监听器