方式一:
1.創(chuàng)建FeignInterceptor配置類
public class FeignInterceptorConfig {
@Bean
public RequestInterceptor requestInterceptor() {
return template -> {
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder
.getRequestAttributes();
if (attributes != null) {
HttpServletRequest request = attributes.getRequest();
Enumeration<String> headerNames = request.getHeaderNames();
if (headerNames != null) {
String headerName;
String headerValue;
while(headerNames.hasMoreElements()) {
headerName = headerNames.nextElement();
if (requestHeaders.contains(headerName)) {
headerValue = request.getHeader(headerName);
template.header(headerName, headerValue);
}
}
}
}
};
}
}
2.在啟動類上加 @Import(FeignInterceptorConfig.class)
方式二
1.實現(xiàn)RequestInterceptor接口
public class FeignRequestInterceptor implements 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);
}
}
}
}
2.創(chuàng)建全局配置類
@Configuration
public class FeignInterceptorConfig {
/**
* feign請求攔截器
*/
@Bean
public RequestInterceptor requestInterceptor(){
return new FeignRequestInterceptor();
}
}