SpringCloud OpenFeign用户转发在请求头中添加用户信息 微服务内部调用

介绍

在微服务架构中,用户信息通常是通过请求头(HTTP headers)在服务间传递的,以便让下游服务能够识别请求来自于哪个用户,并执行相关的授权、认证等操作。在使用 OpenFeign 进行服务间调用时,我们可以通过在请求头中传递用户信息来实现这种需求。

OpenFeign中提供了一个拦截器接口,所有由OpenFeign发起的请求都会先调用拦截器处理请求

创建请求拦截器

java 复制代码
@Configuration
public class OpenFeignConfig {

    @Bean
    public RequestInterceptor userInterceptor(){
        return new RequestInterceptor() {
            @Override
            public void apply(RequestTemplate requestTemplate) {
                requestTemplate.header("user-id","123456");
            }
        };
    }
}

其他微服务获取值

java 复制代码
@GetMapping("/list")
public List<Goods> list(@RequestHeader(value = "user-id") String userId){
    System.out.println("我被调用用户:"+ userId);
  return  goodsService.list();
}
相关推荐
monkey_meng3 分钟前
【遵守孤儿规则的External trait pattern】
开发语言·后端·rust
天天进步20155 分钟前
Vue+Springboot用Websocket实现协同编辑
vue.js·spring boot·websocket
草莓base16 分钟前
【手写一个spring】spring源码的简单实现--bean对象的创建
java·spring·rpc
Estar.Lee18 分钟前
时间操作[计算时间差]免费API接口教程
android·网络·后端·网络协议·tcp/ip
乌啼霜满天24944 分钟前
Spring 与 Spring MVC 与 Spring Boot三者之间的区别与联系
java·spring boot·spring·mvc
tangliang_cn1 小时前
java入门 自定义springboot starter
java·开发语言·spring boot
javaDocker1 小时前
业务架构、数据架构、应用架构和技术架构
架构
Grey_fantasy1 小时前
高级编程之结构化代码
java·spring boot·spring cloud
新知图书1 小时前
Rust编程与项目实战-模块std::thread(之一)
开发语言·后端·rust
Elaine2023911 小时前
零碎04 MybatisPlus自定义模版生成代码
java·spring·mybatis