Spring cloud Feign如何将客户端的request中的token添加到Feign中呢?
由于整个项目采用多个模块开发,每个模块都必须授权才可以访问,服务同服务之间采用Feign调用,
此时服务A调用服务B时,会出现提示没有token,未授权访问的异常提示,那么此时我们需要将客户端请求时
带过来的token代入到Feign中,那么如何处理此类异常呢?下文笔者将一一道来,如下所示
此时服务A调用服务B时,会出现提示没有token,未授权访问的异常提示,那么此时我们需要将客户端请求时
带过来的token代入到Feign中,那么如何处理此类异常呢?下文笔者将一一道来,如下所示
拦截Feign的头文件,我们只需实现RequestInterceptor接口 实现Apply方法 然后将此配置类放入Feign客户端中,即可实现Feign请求头的改写操作例:
@Configuration public class FeignConfiguration implements RequestInterceptor { private final Logger logger = LoggerFactory.getLogger(getClass()); @Override public void apply(RequestTemplate template) { ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder .getRequestAttributes(); HttpServletRequest request = attributes.getRequest(); String authorization = request.getHeader("Authorization"); template.header("Authorization", authorization); } }
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。