1.為什么要用feign攔截器?
作用:由於服務整合了oauth2,在被調用時需要傳遞令牌才能正常調用,feign攔截器的作用就是為了在服務之間傳遞令牌。
2.feign攔截器怎么用?
(1)創建攔截器(一般定義在全局中)
@Component public class FeignInterceptor implements RequestInterceptor { @Override public void apply(RequestTemplate requestTemplate) { RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes(); if (requestAttributes!=null){ HttpServletRequest request = ((ServletRequestAttributes) requestAttributes).getRequest(); if (request!=null){ Enumeration<String> headerNames = request.getHeaderNames(); if (headerNames!=null){ while (headerNames.hasMoreElements()){ String headerName = headerNames.nextElement(); if (headerName.equals("authorization")){ String headerValue = request.getHeader(headerName);//Bearer jwt requestTemplate.header(headerName,headerValue);//向下傳遞令牌 } } } } } } }
2) 更改changgou_order_web啟動類,添加攔截器聲明
@Bean public FeignInterceptor feignInterceptor(){ return new FeignInterceptor(); }