Ribbon拦截器ClientHttpRequestInterceptor-传递header
Spring Cloud的微服务在使用RestTemplate调用的时候,header会丢失,这会导致服务间token等一些信息的丢失
可以使用ClientHttpRequestInterceptor拦截请求,并将header统一设置进去
首先配置一个自定义的ClientHttpRequestInterceptor
@Slf4j
@Component
public class MyRibbonInterceptor implements ClientHttpRequestInterceptor {
@Override
public ClientHttpResponse intercept(HttpRequest request, byte[] body, ClientHttpRequestExecution execution) throws IOException {
log.info("===request: {}, {}", request.getURI().getHost(), request.getURI().getPath());
request.getHeaders().set("aaa", "aaa");
return execution.execute(request, body);
}
}
在启动程序的时候将这个拦截器注入所有的RestTemplate的Bean
@Bean
@LoadBalanced
RestTemplate restTemplate(){
RestTemplate restTemplate = new RestTemplate();
restTemplate.setInterceptors(Co