首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Spring Cloud Alibaba - 15 微服务之间使用Feign实现参数的透传

Spring Cloud Alibaba - 15 微服务之间使用Feign实现参数的透传

作者头像
小小工匠
发布2022-02-04 15:19:00
发布2022-02-04 15:19:00
1.1K0
举报
文章被收录于专栏:小工匠聊架构小工匠聊架构

文章目录

业务场景

服务A 获取到Token值后,要传递给 服务B进行校验 。

在微服务架构下如何实现呢?

实现

自定义拦截器

artisan-feign-api 子模块 增加 拦截器

代码语言:javascript
复制
import feign.RequestInterceptor;
import feign.RequestTemplate;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;

import javax.servlet.http.HttpServletRequest;

/**
 * @author 小工匠
 * @version 1.0
 * @description: TODO
 * @date 2022/2/4 0:52
 * @mark: show me the code , change the world
 */


public class ArtisanRequestInterceptor implements RequestInterceptor {

    @Override
    public void apply(RequestTemplate requestTemplate) {
        ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
        HttpServletRequest request = attributes.getRequest();
        requestTemplate.header("token", request.getHeader("token"));
    }
}

然后实例化

暴漏接口

因为是从header中获取参数 ,所以

代码语言:javascript
复制
@RequestHeader("token") String token

服务实现

服务提供者 artisan-cloud-feign-product

服务调用者

artisan-cloud-feign-order 写个测试接口,测测吧

验证

观察下OORDER的日志

源码

https://github.com/yangshangwei/SpringCloudAlibabMaster

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022/02/04 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 业务场景
  • 实现
    • 自定义拦截器
    • 暴漏接口
    • 服务实现
    • 服务调用者
    • 验证
  • 源码
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档