配置request中 的header往微服務傳遞
public class FeignClientInterceptor implements RequestInterceptor {
@Override
public void apply(RequestTemplate requestTemplate) {
ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
if(requestAttributes!=null){
HttpServletRequest request = requestAttributes.getRequest();
//取出當前請求的header,找到jwt令牌
Enumeration<String> headerNames = request.getHeaderNames();
if(headerNames!=null){
while (headerNames.hasMoreElements()){
String headerName = headerNames.nextElement();
String headerValue = request.getHeader(headerName);
// 將header向下傳遞
requestTemplate.header(headerName,headerValue);
}
}
}
}
}
調用方啓動類 注入bena
@Bean
public FeignClientInterceptor getFeignClientInterceptor(){
return new FeignClientInterceptor();
}