微服务之间调用的时候请求不会传递参数,通过实现RequestInterceptor接口,完成对所有的Feign请求,传递请求头和请求参数。
//转发携带请求头
@Bean
public RequestInterceptor requestInterceptor(){
return new RequestInterceptor() {
@Override
public void apply(RequestTemplate template) {
// RequestContextHolder拿到调用方请求
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
// 老请求
HttpServletRequest request = attributes.getRequest();
// 同步请求头数据-cookie
String token = request.getHeader("token");
// 给被调用方微服务同步调用方`请求cookie
template.header("token", token);
}
};
}