openFegin丢失请求头的问题

问题的产生

image.png

解决问题

因为在使用fegin远程调用的时候它会重新创建request请求,这个请求是不会带上老请求的请求头信息数据,所有我们通过配置类的方式,先获取老请求中的header 然后放到新的request中 就可以解决问题了

 @Bean("requestInterceptor")
    public RequestInterceptor requestInterceptor(){
        return  new RequestInterceptor() {
            @Override
            public void apply(RequestTemplate requestTemplate) {
                // 通过RequestContextHolder获取刚刚请求进来的request
                ServletRequestAttributes requestContextHolder = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
                HttpServletRequest request = requestContextHolder.getRequest();// 老请求
                String cookie = request.getHeader("Cookie");// 获取老请求中的header
                requestTemplate.header("Cookie",cookie);//  添加到新的request的header中
            }
        };
    }

image.png