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);
}
}
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


