spirng cloud feign传递header

有时通过网关调用子系统,需要把header带上,以确保session的一致,但spring cloud默认是不带header的,这时候需要手动传递

@Bean
    public RequestInterceptor headerInterceptor() {
        return new RequestInterceptor() {
            @Override
            public void apply(RequestTemplate requestTemplate) {
                ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder
                        .getRequestAttributes();
                HttpServletRequest request = attributes.getRequest();
                Enumeration<String> headerNames = request.getHeaderNames();
                if (headerNames != null) {
                    while (headerNames.hasMoreElements()) {
                        String name = headerNames.nextElement();
                        String values = request.getHeader(name);
                        requestTemplate.header(name, values);
                    }
                }
            }
        };
    }

参考:http://blog.csdn.net/u014519194/article/details/77160958

参考:https://www.jianshu.com/p/10429b5c22ce

猜你喜欢

转载自blog.csdn.net/zhang_zining/article/details/79636974