Feign 支持请求拦截器,在发送请求前,可以对发送的模板进行操作,例如设置请求头等属性,自定请求拦截器需要实现 feign.RequestInterceptor 接口,该接口的方法 apply 有参数 template ,该参数类型为 RequestTemplate,我们可以根据实际情况对请求信息进行调整,示例如下:
-
创建自定义请求拦截器,在发送请求前增加了一个请求头信息,进行身份校验。
具体代码参考如下:
@Configuration
public class FeignTokenInterceptor implements RequestInterceptor {
@Override
public void apply(RequestTemplate template) {
String tokenHeaderValue = TokenHolder.getToken();
if (tokenHeaderValue != null) {
template.header(HttpHeaders.AUTHORIZATION, TokenHolder.getToken());
}
}
}