当前位置: 首页 > news >正文

Spring-Cloud-Gateway Filter详细配置说明

Spring-Cloud-Gateway 常见Filter详细配置说明

gateway Filter官网:https://docs.spring.io/spring-cloud-gateway/docs/current/reference/html/#gatewayfilter-factories

概述:

SpringMVC里面的的拦截器Interceptor,Servlet的过滤器。

“pre”和 “post” 分别会在请求被执行前调用和被执行后调用,用来修改请求和响应信息

作用:

  • 请求鉴权
  • 异常处理
  • 记录接口调用时长统计

类别

  • 全局默认过滤器:官网:https://docs.spring.io/spring-cloud-gateway/docs/current/reference/html/#global-filters,出厂默认已有的,直接用,作用于所有的路由,不推荐。
  • 单一内置过滤器:官网:https://docs.spring.io/spring-cloud-gateway/docs/4.0.4/reference/html/#gatewayfilter-factories,也可以称为网关过滤器,这种过滤器主要是作用于单一路由或者某个路由分组
  • 自定义过滤器

过滤器配置详解

常见内置过滤器
1.增删改请求头响应头
 spring:cloud:gateway:routes:- id: pay_routh1 #pay_routh1                #路由的ID(类似mysql主键ID),没有固定规则但要求唯一,建议配合服务名#uri: http://localhost:8001                #匹配后提供服务的路由地址uri: lb://cloud-payment-service                #匹配后提供服务的路由地址predicates:- Path=/pay/gateway/get/**              # 断言,路径相匹配的进行路由filters:- AddRequestHeader=X-Request-username,value  # 请求头kv,若一头含有多参则重写一行设置- RemoveRequestHeader=sec-fetch-site  # 删除请求头sec-fetch-site- SetRequestHeader=sec-fetch-mode, Blue-updatebyzzyy # 将请求头sec-fetch-mode对应的值修改为Blue-updatebyzzyy- AddRequestParameter=customerId,9527001 # 新增请求参数Parameter:k ,v- RemoveRequestParameter=customerName   # 删除url请求参数customerName,你传递过来也是null- AddResponseHeader=X-Response-hello, BlueResponse # 新增响应参数X-Response-atguigu并设值为BlueResponse- SetResponseHeader=Date,2099-11-11 # 设置回应头Date值为2099-11-11- RemoveResponseHeader=Content-Type # 将默认自带Content-Type回应属性删除
2.对微服务路径和前缀进行配置

前缀修改

 spring:cloud:gateway:routes:- id: pay_routh1 #pay_routh1                #路由的ID(类似mysql主键ID),没有固定规则但要求唯一,建议配合服务名#uri: http://localhost:8001                #匹配后提供服务的路由地址uri: lb://cloud-payment-service                #匹配后提供服务的路由地址predicates:#- Path=/pay/gateway/filter/**   # 被分拆为: PrefixPath + Path- Path=/gateway/filter/**              # 断言,为配合PrefixPath测试过滤,暂时注释掉/pay filters:- PrefixPath=/pay # http://localhost:9527/pay/gateway/filter

路径修改

 spring:cloud:gateway:routes:- id: pay_routh1 #pay_routh1                #路由的ID(类似mysql主键ID),没有固定规则但要求唯一,建议配合服务名#uri: http://localhost:8001                #匹配后提供服务的路由地址uri: lb://cloud-payment-service                #匹配后提供服务的路由地址predicates:#- Path=/pay/gateway/filter/**   # 被分拆为: PrefixPath + Path- Path=/XYZ/abc/{segment}              # 断言,为配合SetPath测试,{segment}的内容最后被SetPath取代filters:- SetPath=/pay/gateway/{segment}  # {segment}表示占位符,你写abc也行但要上下一致

重定向

spring:cloud:gateway:routes:- id: pay_routh1 #pay_routh1                #路由的ID(类似mysql主键ID),没有固定规则但要求唯一,建议配合服务名#uri: http://localhost:8001                #匹配后提供服务的路由地址uri: lb://cloud-payment-service                #匹配后提供服务的路由地址predicates:- Path=/gateway/filter/**              # 断言,为配合PrefixPath测试过滤,暂时注释掉/pay filters:- RedirectTo=302, http://www.baidu.com/ # 访问

相关文章:

  • 角蜥优化算法 (Horned Lizard Optimization Algorithm ,HLOA)求解无人机路径优化
  • 【NR 定位】3GPP NR Positioning 5G定位标准解读(九)-增强的小区ID定位
  • 【数据结构:树与堆】向上/下调整算法和复杂度的分析、堆排序以及topk问题
  • 泛微ecology9开发
  • Java学习笔记------拼图游戏
  • 【漏洞分析】CVE-2024-27198可RCE身份验证绕过JetBrains TeamCity
  • 什么是高级编程语言?——跟老吕学Python编程
  • 单例模式及线程安全的实践
  • 20个常用的Python脚本
  • Java开发与配置用到的各类中间件官网
  • MongoDB聚合运算符:$dateFromString
  • SQL中如何添加数据
  • 【kubernetes】关于k8s集群的pod控制器
  • 华为ce12800交换机m-lag(V-STP模式)配置举例
  • OD_2024_C卷_200分_9、园区参观路径【JAVA】【动态规划】
  • [js高手之路]搞清楚面向对象,必须要理解对象在创建过程中的内存表示
  • 【108天】Java——《Head First Java》笔记(第1-4章)
  • Android交互
  • CentOS7 安装JDK
  • ComponentOne 2017 V2版本正式发布
  • ES6核心特性
  • Linux快速配置 VIM 实现语法高亮 补全 缩进等功能
  • Making An Indicator With Pure CSS
  • Python语法速览与机器学习开发环境搭建
  • Vue实战(四)登录/注册页的实现
  • 开源SQL-on-Hadoop系统一览
  • 三栏布局总结
  • 深度学习中的信息论知识详解
  • 微服务核心架构梳理
  • 为视图添加丝滑的水波纹
  • ​一、什么是射频识别?二、射频识别系统组成及工作原理三、射频识别系统分类四、RFID与物联网​
  • !! 2.对十份论文和报告中的关于OpenCV和Android NDK开发的总结
  • #git 撤消对文件的更改
  • #每天一道面试题# 什么是MySQL的回表查询
  • (1) caustics\
  • (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切
  • (二)JAVA使用POI操作excel
  • (二)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (四)JPA - JQPL 实现增删改查
  • (完整代码)R语言中利用SVM-RFE机器学习算法筛选关键因子
  • (一)SpringBoot3---尚硅谷总结
  • (中等) HDU 4370 0 or 1,建模+Dijkstra。
  • (转)如何上传第三方jar包至Maven私服让maven项目可以使用第三方jar包
  • .NET开源项目介绍及资源推荐:数据持久层 (微软MVP写作)
  • @Autowired 与@Resource的区别
  • @Autowired注解的实现原理
  • @Transactional类内部访问失效原因详解
  • [04]Web前端进阶—JS伪数组
  • [20170713] 无法访问SQL Server
  • [AI]ChatGPT4 与 ChatGPT3.5 区别有多大
  • [BeginCTF]真龙之力
  • [BSGS算法]纯水斐波那契数列
  • [C++]使用yolov10的onnx模型结合onnxruntime和bytetrack实现目标追踪
  • [Cocoa]iOS 开发者账户,联机调试,发布应用事宜
  • [emacs] CUA的矩形块操作很给力啊