一. 概述
分布式服务系统中, 服务间调用一般用Feign组件实现, 一般请求的token都在请求头上, Feign请求默认是不带token的, 但是我们可以通过拦截器实现Feign请求的请求头带上token
二. 编写拦截器注入
import feign.RequestInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class QwFeignConfigure {
@Bean
public RequestInterceptor qwFeignRequestInterceptor() {
return requestTemplate -> {
requestTemplate.header("token", "123456");
};
}
}
踩坑注意
如果你需要动态获取token的, 同时服务引入了Spring-Cloud Hystrix组件, 注意把资源隔离策略改成信号量模式, 不然Feign请求不在同一线程, 就获取不到动态的token了
网友评论