Unable to find GatewayFilterFactory with name TokenRelay
目录
- 问题分析
- 解决方案
- 参考文档
- 开源项目
- 微服务商城项目
- 前后端分离项目
问题分析
Spring Cloud Gateway 网关作为代理资源服务器,需要将 JWT 传递给下游资源服务器,下面是网关的配置
spring:cloud:gateway:discovery:locator:enabled: true # 启用服务发现lower-case-service-id: truedefault-filters:# 中继令牌- TokenRelay# 移除Cookie请求头,避免cookie透传到后端服务- RemoveRequestHeader=Cookie
TokenRelay 激活 TokenRelayGatewayFilterFactory,将令牌中继传递给下游资源服务,例如系统服务 (youlai-system)
但是项目启动中会报错:
Unable to find GatewayFilterFactory with name TokenRelay
解决方案
参考链接:Spring Gateway and Auth0: IllegalArgumentException: Unable to find GatewayFilterFactory with name TokenRelay

TokenRelay 过滤器的工作原理是,当一个请求到达网关时,它会从请求中提取 JWT,然后将其添加到转发到资源服务器的请求头中。这样,资源服务器就可以从请求头中提取 JWT,并使用它来验证用户的身份和权限。
spring-boot-starter-oauth2-client 依赖包提供了 OAuth2 客户端的功能,包括处理和转发 JWT。在 Spring Cloud Gateway 中,它可以与 TokenRelay 过滤器一起工作,安全地处理和转发 JWT。
所以添加 oauth2-client 依赖即可
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-oauth2-client</artifactId></dependency>
参考文档
Spring Cloud Gateway 官方文档: The TokenRelay GatewayFilter Factory

开源项目
微服务商城项目
| Github | Gitee | |
|---|---|---|
| 开源组织 | 有来开源组织 | 有来开源组织 |
| 后端 | youlai-mall 📖 | youlai-mall 📖 |
| 前端 | mall-admin🌎 | mall-admin 🌎 |
| 移动端 | mall-app 🌎 | mall-app 🌎 |
前后端分离项目
| Github | Gitee | |
|---|---|---|
| 开源组织 | 有来开源组织 | 有来开源组织 |
| 后端 | youlai-boot 📖 | youlai-boot 📖 |
| 前端 | vue3-element-admin 🌎 | vue3-element-admin 🌎 |
相关文章:
Unable to find GatewayFilterFactory with name TokenRelay
目录 问题分析解决方案参考文档开源项目微服务商城项目前后端分离项目 问题分析 Spring Cloud Gateway 网关作为代理资源服务器,需要将 JWT 传递给下游资源服务器,下面是网关的配置 spring:cloud:gateway:discovery:locator:enabled: true # 启用服务发…...
竞赛 深度学习大数据物流平台 python
文章目录 0 前言1 课题背景2 物流大数据平台的架构与设计3 智能车货匹配推荐算法的实现**1\. 问题陈述****2\. 算法模型**3\. 模型构建总览 **4 司机标签体系的搭建及算法****1\. 冷启动**2\. LSTM多标签模型算法 5 货运价格预测6 总结7 部分核心代码8 最后 0 前言 ǵ…...
git基础及原理相关解析
git入门 结构基本操作help提交分支git merge和git rebase对比 拉取 git文档 结构 工作区:电脑目录中能看到的文件暂存区:使用git add *操作提交文件的位置,一般位于.git\index,这个文件里面存储了当前位于暂存区的所有文件的校验…...
【Python机器学习】零基础掌握isotonic_regression等渗回归
遇到了数据不一致的困扰吗? 在市场分析、医疗研究或者其他数据密集型领域,经常会遇到一个问题:如何从一组不完全一致或者有噪音的数据中提取出有用的信息?例如,假设一家餐厅想要根据顾客的评分和消费金额来调整菜单。 顾客评分消费金额(元)顾客年龄访问次数4.21002533.…...
支持宏的文本编辑器提高生产力
场景 我们知道很多文本/代码编辑器支持宏的录制、重放、保存,甚至可以与快捷键命令结合的功能,快速实现重放宏的操作。 如果您的编辑器支持宏这项功能,请多使用 😃 宏化自动步骤相当于对编辑器的自动化编程,宏录制可…...
JS中面向对象的程序设计
面向对象(Object-Oriented,OO)的语言有一个标志,那就是它们都有类的概念,而通过类可以创建任意多个具有相同属性和方法的对象。但在ECMAScript 中没有类的概念,因此它的对象也与基于类的语言中的对象有所不…...
云耀服务器L实例搭配负载均衡部署Linux 可视化宝塔面板
云耀服务器L实例搭配负载均衡部署Linux 可视化宝塔面板 1. 华为云云耀服务器L实例介绍 华为云云耀服务器L实例是一种高性能、高可靠性的云服务器实例,适用于大规模企业级应用、大数据分析等场景。它基于华为最新一代的硬件虚拟化技术,提供了更高的计算…...
mac pycharm配置autopep8
mac终端安装autopep8 pip install autopep8pycharm配置autopep8 在Pycharm中点击 File–Settings—Tools–External Tools, 点击图中绿色加号图标添加扩展工具,填写相关参数配置。 Name:Autopep8(可以随便取) Tools setting&…...
Vue $nextTick
我们用一个例子来说明$nextTick的作用: 我们用一个变量showIpt来控制input框的显示和隐藏,默认是隐藏。 我们点击一个按钮后显示这个输入框的同时,input还要自动获取焦点。 但是我们点击按钮过后并没有生效。 为什么?this.show…...
linux配置dns
服务器有网,ping IP 地址可以ping的通,但是ping网站域名ping不通,需要配置dns 使用公共dns服务器 1、设置dns服务器地址 vi /etc/resolv.conf 将谷歌的dns服务器地址添加到dns解析配置中 nameserver 8.8.8.8 nameserver 8.8.4.4 保存后&…...
12 原子性|可见性|有序性|JMM内存模型
1 并发三大特性 1.1 原子性 一个或多个操作,要么全部执行,要么全部不执行。Java中,对基本数据类型的变量的读取和赋值操作是原子性操作,但不采取任何原子性保障措施的自增操作不是原子性的,如:i public c…...
pytorch代码复现1(基础知识)
创建矩阵 全零矩阵 In [4]: import torch torch.__version__ xtorch.empty(5,3) xOut[4]: tensor([[0.0000e00, 0.0000e00, 4.6430e-23],[1.4013e-45, 1.2612e-44, 0.0000e00],[3.5733e-43, 0.0000e00, 0.0000e00],[0.0000e00, 0.0000e00, 0.0000e00],[0.0000e00, 0.0000e00, 0…...
PostGreSQL模式schema
问题引入 之前在做数据库设计时,经常会忽略schema模式,直接在数据库下的public模式下建立各类数据表。如果数据表命名不够规范,后期寻找某张表时就会比较麻烦。通过 所幸,PostgreSQL 的模式schema管理,可以对这个问题…...
大厂面试题-什么是JVM
JVM全称是Java虚拟机,在聊什么是JVM之前,我们不妨看⼀下这张图。 从这张图中可以看出JVM所处的位置,同时也能看出它两个作用: 1、运⾏并管理Java源码⽂件所⽣成的Class⽂件, 2、在不同的操作系统上安装不同的JVM&#…...
rest参数
Rest参数是ES6中新增的一个语法特性,也称为剩余参数。其语法形式为三个点(...)加上一个名称,用于表示函数的参数个数不确定,可以将多余的参数收集到一个数组中。Rest参数只能作为最后一个参数出现,且一个函…...
Hadoop3.0大数据处理学习3(MapReduce原理分析、日志归集、序列化机制、Yarn资源调度器)
MapReduce原理分析 什么是MapReduce 前言:如果想知道一堆牌中有多少张红桃,直接的方式是一张张的检查,并数出有多少张红桃。 而MapReduce的方法是,给所有的节点分配这堆牌,让每个节点计算自己手中有几张是红桃&#…...
JS DataTable中导出PDF中文乱码
JS DataTable中导出PDF中文乱码 文章目录 JS DataTable中导出PDF中文乱码一. 问题二. 原因三. vfs_fonts.js四. pdfmake.js五. 解决六.参考资料 一. 问题 二. 原因 DataTable使用pdfmake,pdfmake默认字体为Roboto,不支持中文字体。添加自己的字体&#…...
代码签名证书续费
代码签名证书的有效周期是1-3年,这种情况下证书到期了就要重新申请办理,最开始同样的申请验证步骤还要再走一遍,尤其是Ukey还是要CA机构重新颁发,还是要等待快递配送。OV代码签名证书、EV代码签名证书目前行业内统一采取Ukey存储&…...
机器学习之ROC与AUC
文章目录 定义ROC曲线:AUC(Area Under the ROC Curve): 定义 ROC(Receiver Operating Characteristic)曲线和AUC(Area Under the ROC Curve)是用于评估二分类模型性能的重要工具。 …...
实用篇-Eureka注册中心
一、提供者与消费者 服务提供者:一次业务中,被其他微服务调用的服务。(提供接口给其他微服务) 服务消费者:一次业务中,调用其他微服务的服务。(调用其他微服务提供的接口) 例如前面的案例中,order-service微服务是服…...
OpenLayers 可视化之热力图
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 热力图(Heatmap)又叫热点图,是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...
使用VSCode开发Django指南
使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...
React第五十七节 Router中RouterProvider使用详解及注意事项
前言 在 React Router v6.4 中,RouterProvider 是一个核心组件,用于提供基于数据路由(data routers)的新型路由方案。 它替代了传统的 <BrowserRouter>,支持更强大的数据加载和操作功能(如 loader 和…...
在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能
下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能,包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...
LeetCode - 394. 字符串解码
题目 394. 字符串解码 - 力扣(LeetCode) 思路 使用两个栈:一个存储重复次数,一个存储字符串 遍历输入字符串: 数字处理:遇到数字时,累积计算重复次数左括号处理:保存当前状态&a…...
Objective-C常用命名规范总结
【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名(Class Name)2.协议名(Protocol Name)3.方法名(Method Name)4.属性名(Property Name)5.局部变量/实例变量(Local / Instance Variables&…...
连锁超市冷库节能解决方案:如何实现超市降本增效
在连锁超市冷库运营中,高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术,实现年省电费15%-60%,且不改动原有装备、安装快捷、…...
抖音增长新引擎:品融电商,一站式全案代运营领跑者
抖音增长新引擎:品融电商,一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中,品牌如何破浪前行?自建团队成本高、效果难控;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...
基础测试工具使用经验
背景 vtune,perf, nsight system等基础测试工具,都是用过的,但是没有记录,都逐渐忘了。所以写这篇博客总结记录一下,只要以后发现新的用法,就记得来编辑补充一下 perf 比较基础的用法: 先改这…...
数据库分批入库
今天在工作中,遇到一个问题,就是分批查询的时候,由于批次过大导致出现了一些问题,一下是问题描述和解决方案: 示例: // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...
