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

相关推荐
企业数字化笔记14 分钟前
视频字幕如何烧录到成片?硬字幕、软字幕、样式控制与播放验收
java·ffmpeg
小朱爱编程12326 分钟前
我用 Jev 做了三个实用工具:整理标签页、分诊飞书反馈、找回 GitHub 收藏
java·开发语言·人工智能·后端·python·架构·ai编程
酷虎软件40 分钟前
视频加标题字幕 API 接口文档
java·数据库·mysql
谢亮_vipxieliang1 小时前
Java 8/11/17/21/25 怎么选?一篇讲清 LTS 升级路线
java·开发语言
Cindy_cd1 小时前
IDEA2021 配置 JDK+Maven
java·开发语言·maven
我要神龙摆尾1 小时前
IDEA 阅读插件
java·ide·intellij-idea·idea-plugs·plugs
涉密IT资质笔记2 小时前
涉密人员脱密期管理规范:期限分级模型、就业限制边界与违规认定标准
java·服务器·前端·网络·数据库
MZ_ZXD0012 小时前
【关注可白嫖源码】--课程设计--毕业设计-- 42557基于springboot的大学生体质健康管理系统
spring boot·课程设计·毕设·大作业·程序开发·程序定制·毕设代做
mmsx2 小时前
Android Dialog 插槽模式:用一套壳统一全应用的弹窗风格
android·java·dialog·开发语言
u0111026752 小时前
工具页案例图如何编写 alt让图片说明与处理场景对应
java·前端·javascript·图像处理·人工智能·算法·ai作画