SpringCloud OpenFeign用户转发在请求头中添加用户信息 微服务内部调用
介绍
在微服务架构中,用户信息通常是通过请求头(HTTP headers)在服务间传递的,以便让下游服务能够识别请求来自于哪个用户,并执行相关的授权、认证等操作。在使用 OpenFeign 进行服务间调用时,我们可以通过在请求头中传递用户信息来实现这种需求。
OpenFeign中提供了一个拦截器接口,所有由OpenFeign发起的请求都会先调用拦截器处理请求
创建请求拦截器
@Configuration
public class OpenFeignConfig {
@Bean
public RequestInterceptor userInterceptor(){
return new RequestInterceptor() {
@Override
public void apply(RequestTemplate requestTemplate) {
requestTemplate.header("user-id","123456");
}
};
}
}
其他微服务获取值
@GetMapping("/list")
public List<Goods> list(@RequestHeader(value = "user-id") String userId){
System.out.println("我被调用用户:"+ userId);
return goodsService.list();
}