原因:
因为浏览器请求第一个模块携带的token和各类消息头在第一个模块调用第二个模块的时候会重构请求,这个请求是没有消息头,导致第一个请求的消息头到第二个模块会丢失
解决方案:
使用请求拦截器 保存第一个请求的 headers
@Component
public class FeignAuthRequestInterceptor implements RequestInterceptor {
@Override
public void apply(RequestTemplate template) {
ServletRequestAttributes servletRequestAttributes= (ServletRequestAttributes)RequestContextHolder.getRequestAttributes();
if(servletRequestAttributes!=null){
HttpServletRequest request = servletRequestAttributes.getRequest();
Enumeration<String> headerNames = request.getHeaderNames();
if(headerNames!=null){
while(headerNames.hasMoreElements()){
String name = headerNames.nextElement();
String header=