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传递。但完全没有必要。代码如下:

相关推荐
金銀銅鐵6 小时前
一个 Java 文件实现《孫子兵法·始計篇》中英对照阅读器
java·后端·ai编程
DevOpenClub6 小时前
高考教育信息问答 API:会话参数、资料引用与流式响应
java·数据库·高考
bro_Java6667 小时前
《排序的底层逻辑:比较、交换与分治》
java·算法·排序算法
wdyan2977 小时前
带着小白学习-微服务-5 实战:配置中心-数据库连接
数据库·学习·微服务
文丑颜不良啊8 小时前
LeetCode2081~2100题目解析
java·leetcode
蜗牛8758 小时前
为 Spring Boot 团队做一个 Elasticsearch 查询工作台:六种模式、语义补全与浏览器直连
spring boot
玖米GEO运营王总监8 小时前
2026年账号矩阵协同效应怎么量化:三个指标与公式结构
java·大数据·数据库
叼烟扛炮9 小时前
[LangChain] 学习笔记(03):打破失忆症——对话机制与上下文管理
java·前端·javascript·笔记·学习·langchain
文丑颜不良啊10 小时前
LeetCode2061~2080题目解析
java·leetcode
特立独行的猫A10 小时前
13MB 单文件、一条命令变服务:把仓颉写的 cjh 内嵌进你的应用,当它的 AI 大脑
java·后端·python