SpringCloud微服务之间如何进行用户信息传递(涉及:Gateway、OpenFeign组件)

目录

    • 1、想达到的效果
    • 2、用户信息在微服务之间传递的两种途径
    • 3、用RuoYi-Cloud为例进行演示说明
      • (1)网关将用户信息写在请求头中
      • (2)业务微服务之间通过OpenFeign进行调用,并且将用户信息写在OpenFeign准备的请求头中
      • (3)当请求到达业务微服务时,拦截器会从请求头中获取用户信息,并放在ThreadLocal中

1、想达到的效果

在业务微服务中通过工具类获取当前用户信息

2、用户信息在微服务之间传递的两种途径

  1. 网关微服务(Gateway)往业务微服务传递用户信息
  2. 业务微服务之间通过OpenFeign传递用户信息

只要把上面两处打通,然后业务微服务在通过拦截器获取到用户信息,之后再将用户信息存在ThreadLocal中,这样我们就可以实现在业务微服务中通过工具类获取当前用户信息的效果了

直接上图说明整体流程:

在这里插入图片描述

3、用RuoYi-Cloud为例进行演示说明

说明:

  • RuoYi-Cloud:https://gitee.com/y_project/RuoYi-Cloud
  • 演示步骤:下面步骤以上图为例进行演示

(1)网关将用户信息写在请求头中

  • 代码:AuthFilter.java类—filter方法
  • 具体位置截图:
    在这里插入图片描述

(2)业务微服务之间通过OpenFeign进行调用,并且将用户信息写在OpenFeign准备的请求头中

  • 代码:FeignRequestInterceptor类—apply方法
  • 具体位置截图:
    在这里插入图片描述

(3)当请求到达业务微服务时,拦截器会从请求头中获取用户信息,并放在ThreadLocal中

  • 代码:HeaderInterceptor类—preHandle方法
  • 具体位置截图:
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/74576.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python 基础教程,Python 是什么?

Python 的诞生是极具戏曲性的,据 Guido 自述记载,Python 语言是在圣诞节期间为了打发无聊的时间而开发的,之所以会选择 Python 作为该编程语言的名字,是因为 Guido 是 Monty Python 戏剧团的忠实粉丝。 Python 语言是在 ABC 语言的…

透镜天线的分类、特点及龙伯球透镜天线原理

透镜天线,一种能够通过电磁波,将点源或线源的球面波或柱面波转换为平面波从而获得笔形、扇形或其他形状波束的天线。通过合适设计透镜表面形状和折射率n,调节电磁波的相速以获得辐射口径上的平面波前。透镜天线吸收了许多光信息工程技术&…

lodash常用方法笔记

_.fromPairs(pairs) 与_.toPairs正好相反;这个方法返回一个由键值对pairs构成的对象。 _.fromPairs([[fred, 30], [barney, 40]]); // > { fred: 30, barney: 40 }Object.fromEntries()有同样的功能,只是在高版本浏览器才支持: _toPai…

VR全景智慧文旅,用科技助力旅游业振兴

引言: 近年来,科技的迅猛发展将我们带入一个全新的数字化时代,而虚拟现实(Virtual Reality,简称VR)技术则以其令人惊叹的全新方式,影响着各个领域。其中,旅游业作为人们探索世界、体…

通过Python爬虫提升网站搜索排名

目录 怎么使用Python爬虫提升排名 1. 抓取竞争对手数据: 2. 关键词研究: 3. 网页内容优化: 4. 内部链接建设: 5. 外部链接建设: 6. 监测和调整: 需要注意哪些方面 1. 合法性和道德性: …

docker容器管理

创建容器: docker run --name 容器名 -d -p 端口1:端口2 –name :是启动容器时,给容器定义的名称,不使用该参数时,容器启动成功之后,会生成随机名称 -d :代表容器处于后台yunx -p :指定容器的端…

stm32项目(10)——基于stm32的盲人监护系统

一.实现的功能 本次设计的盲人监护系统,旨在为盲人的外出提供保护。主要功能如下: 超声波测距模块检测前方障碍物,当前方有障碍物时,语音模块报警提示“前方有障碍物,请绕道”,盲人在听到这条语音后就知…

数据分析案例丨商品零售购物篮分析(上)

购物篮分析关联规则挖掘应用 将单个客户一次购买商品的总和(以收银台结账为准)称为一个购物篮。那么购物篮分析就是针对商品的相关性进行分析。因为最初这种关联分析主要是在超市应用广泛,所以也称为“购物篮分析”。 购物篮分析是商业领域最前沿、最具挑战性的问…

ASP.NET Core - 缓存之分布式缓存

分布式缓存是由多个应用服务器共享的缓存,通常作为访问它的应用服务器的外部服务进行维护。 分布式缓存可以提高 ASP.NET Core 应用的性能和可伸缩性,尤其是当应用由云服务或服务器场托管时。 与其他将缓存数据存储在单个应用服务器上的缓存方案相比&am…

日常BUG——git提交代码报错

😜作 者:是江迪呀✒️本文关键词:日常BUG、BUG、问题分析☀️每日 一言 :存在错误说明你在进步! 一、问题描述 git 在提交代码时报错: Committing is not possible because you have unmerge…

智慧工地源码,互联网+建筑工地,基于微服务+Java+Spring Cloud +Vue+UniApp开发

基于微服务JavaSpring Cloud VueUniApp MySql开发的智慧工地云平台源码 智慧工地概念: 智慧工地就是互联网建筑工地,是将互联网的理念和技术引入建筑工地,然后以物联网、移动互联网技术为基础,充分应用BIM、大数据、人工智能、移…

日常BUG—— SpringBoot项目DEBUG模式启动慢、卡死。

😜作 者:是江迪呀✒️本文关键词:日常BUG、BUG、问题分析☀️每日 一言 :存在错误说明你在进步! 一、问题描述 我们调试程序时,需要使用DEBUG模式启动SpringBoot项目, 有时候会发…

Blazor简单教程(1.1):Razor基础语法

文章目录 前言基本文件配置引入Layout组件 语法介绍pagecodeRazor 语法[ 显式表达和隐式表达](https://learn.microsoft.com/zh-cn/aspnet/core/mvc/views/razor?viewaspnetcore-7.0#explicit-razor-expressions) 绑定简单绑定双向绑定带参数的函数绑定 依赖注入 前言 Blazor…

【Django】无法从“django.utils.encoding”导入名称“force_text”

整晚处理 Django 的导入错误。 我将把它作为提醒,希望处于相同情况的人数会减少。 原因 某些软件包版本不支持Django 4 请看下表并决定Django和Python的版本 方案 如果出现难以响应,或者更改环境麻烦,请尝试以下操作 例如出现以下错误 …

对方发送的文件已过期如何恢复,这样做很简单

我们常常使用微信来发送文件、传输文件,但很多人也会遇到文件过期的情况。每当发现文件已过期,都会懊恼自己当初为什么没有早点下载保存。 大家要知道,微信文件如果7天内没有及时下载是会被清理的。不过,大家不要着急&#xff0c…

软硬件免费,服务收费:网络安全商业模式正在被颠覆

大数据产业创新服务媒体 ——聚焦数据 改变商业 从元宇宙到造汽车,重回国内A股市场五年的360一路苦追热点。一直到大模型横空出世,360才算真正找到感觉,经历一次战略上的回归。 在8月9日的互联网安全大会上,一袭红衣的红衣教主周…

iTOP-3568开发板使用OpenCV处理图像-颜色转换

本小节代码在配套资料“iTOP-3568 开发板\03_【iTOP-RK3568 开发板】指南教程 \04_OpenCV 开发配套资料\05”目录下,如下图所示: cv2.cvtColor()函数功能: 将一幅图像从一个色彩空间转换到另一个色彩空间。 函数原型: cv2.cvt…

【100天精通python】Day35:一文掌握GUI界面编程基本操作

目录 专栏导读 1 GUI 编程概述 1.1 为什么需要GUI? 1.2 常见的GUI编程工具和库 1.3 GUI应用程序的组成和架构 2 使用Tkinter 库 进行GUI编程 2.1 使用Tkinter库进行GUI编程的基本流程 2.2 使用Tkinter库进行GUI编程 2.2.1 导入Tkinter库 2.2.2 添加标签和…

需求调研前需要做哪些准备?

大家好,我是沐尘而生,今天让我和大家一起走进,产品经理实战百问百答,从问题入手,一步一个脚印,习惯产品经理岗位。 我将从需求调研的角度出发,为大家详细介绍一下在开始调研前需要做哪些准备工作…

Markdown使用笔记

Markdown使用笔记 一、段落与强调 important denotes the impossible thing to do Because your ugly appearance, you cannot have a happy ending. 使用*括起来的为斜体 使用**括起来的是粗体 使用~~括起来的是删除线 在句子后面添加<br>即可换行 二、标题 在…