当前位置: 代码迷 >> 综合 >> Feign 微服务之间调用认证拦截器
  详细解决方案

Feign 微服务之间调用认证拦截器

热度:51   发布时间:2023-12-24 03:43:05.0

 配置request中 的header往微服务传递 

public class FeignClientInterceptor implements RequestInterceptor {@Overridepublic 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 

    @Beanpublic FeignClientInterceptor getFeignClientInterceptor(){return new FeignClientInterceptor();}