SpringBoot 微服务token 传递实现

1、前言

随着微服务的流行,微服务之间的安全以及业务需要,都需要穿递token ,而token的传递一般通过header 头来传递。从架构的角度来讲 ,一般的企业应用都由nginx、业务网关和各个微服务组成。这个nginx 传递header 我就不讲述。下面重点讲述一下header业务网关到微服务以及微服务到微服务是怎么实现的。

2 、实现方式

2.1 业务网关传递header 头到微服务

这里网关我采用zuul 实现,大家都zuul其实就是是servlet,它设置很多内存过滤器,如果你业务需要定义过滤器,继承ZuulFilter 即可。自定过滤和内置过滤组成一个过滤器的List,根据类型实现不同的功能。网关收到请求为每一个请求创建一个RequestContext 对象此对象为Map的子类,见下面截图

,用来存储Http相关的各种信息,例如request ,reponse,header等信息。在内置路由过滤器SimpleHostRoutingFilter,如下截图

它在转发请求的会从RequestContext获取body(请求体)已经请求头(header)再通过HttpClient把请求传递到微服务。具体截图如下

由此网关传递header到微服务实现了。

2.2 微服务传递header 头到微服务实现

通常微服务之间通过fegin 或者openFegin 实现,只要实现RequestInterceptor接口就会拦截@FeginClient 的类。在此拦截器实现header的传递,当然我们也可以自定义aop 实现header传递。但完全没有必要。代码如下:

相关推荐
向着光芒的女孩36 分钟前
【IDEA】关不了的Proxy Authentication弹框探索过程
java·ide·intellij-idea
Filotimo_1 小时前
Spring Boot 整合 JdbcTemplate(持久层)
java·spring boot·后端
李慕婉学姐1 小时前
【开题答辩过程】以《“饭否”食材搭配指南小程序的设计与实现》为例,不知道这个选题怎么做的,不知道这个选题怎么开题答辩的可以进来看看
java·spring·小程序
Mr_sun.1 小时前
Day11——微服务高级
微服务·云原生·架构
小毅&Nora2 小时前
【AI微服务】【Spring AI Alibaba】 ① 技术内核全解析:架构、组件与无缝扩展新模型能力
人工智能·微服务·架构
喵个咪3 小时前
基于 Go-Kratos 与 MCP 的推荐服务实战指南
后端·深度学习·微服务
abments3 小时前
pgsql timestamp without time zone > character varying解决方案
java
sanggou3 小时前
大数据量查询处理方案 - 内存优化与高效展示
java
没有bug.的程序员3 小时前
Java 字节码:看懂 JVM 的“机器语言“
java·jvm·python·spring·微服务
-大头.3 小时前
深入理解 Java 内存区域与 JVM 运行机制
java·jvm