SpringBoot 微服务token 传递实现

news/2025/2/23 4:01:21/

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


http://www.ppmy.cn/news/1416653.html

相关文章

vue创建一个项目

要创建一个Vue项目,你可以使用Vue CLI(命令行界面)这个官方工具。以下是使用Vue CLI创建一个新项目的步骤: 步骤 1: 安装 Node.js 和 npm 首先,确保你的计算机上已经安装了Node.js和npm(Node.js的包管理器…

简单了解仿真测试

仿真测试是通过使用模型或者虚拟环境来模拟实际系统的行为和性能。它可以应用于各种领域,包括软件开发、工程设计、人工智能等等。 通常,仿真测试包括以下几个步骤: 确定测试目标: 首先确定要测试的系统或组件,并且明…

开源AI项目:合同检查流程优化,提高工作效率与准确性

合同检查是企业法务管理中的重要环节,它不仅关系到企业合规经营,还直接影响到企业的经济效益和风险控制。随着人工智能技术的不断发展,AI在合同管理领域的应用逐渐成为提高工作效率和准确性的有效手段。本文将探讨如何结合AI技术,…

02 - Git 之命令 +

1 Git相关概念 1.1 以下所谈三个区,文件并不只是简单地在三个区转移,而是以复制副本的方式转移 使用 Git 管理的项目,拥有三个区域,分别是 Working area工作区(亦称为 工作树Working Tree)、stage area …

vb.net textbox滚动显示到最后一行

调用: Private Sub TextBox18_TextChanged(sender As Object, e As System.EventArgs) Handles TextBox18.TextChanged show_textbox_endline(TextBox18) End Sub 函数: 显示textbox最后一行 Public Sub show_textbox_endline(Tbx As TextB…

VUE_H5页面跳转第三方地图导航,兼容微信浏览器

当前项目是uniapp项目,若不是需要替换uni.showActionSheet选择api onMap(address , organName , longitude 0, latitude 0){var ua navigator.userAgent.toLowerCase();var isWeixin ua.indexOf(micromessenger) ! -1;if(isWeixin) {const mapUrl_tx "…

Lua语法(三)——元表与元方法

参考链接: 系列链接: Lua语法(一) 系列链接: Lua语法(二)——闭包/日期和时间 系列链接: Lua语法(三)——元表与元方法 系列链接: Lua语法(四)——协程 系列链接: Lua语法(五)——垃圾回收 系列链接: Lua语法(六)——面相对象编程 元表与元方法目录 简介正文元表元方法表相关常…

LLM - 大语言模型(LLM) 的 应用技术

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://blog.csdn.net/caroline_wendy/article/details/137503579 大语言模型(LLM) 的应用技术范围非常广泛,即: LangChain:开发框架,专为大型语言模型设计,以提高开发人工智能应用的效率,允许开发者将语言模…