路由过滤器 GatewayFilter

简介: 路由过滤器 GatewayFilter

GatewayFilter是网关中提供的一种过滤器,可以对进入网关的请求和微服务返回的响应做处理

过滤器的作用

  • 对路由的请求或响应做加工处理,比如添加请求头
  • 配置在路由下的过滤器只对当前路由的请求生效

其作用时机如下

Spring提供了31种不同的路由过滤器工厂。例如:

名称

说明

AddRequestHeader

给当前请求添加一个请求头

RemoveRequestHeader

移除请求中的一个请求头

AddResponseHeader

给响应结果中添加一个响应头

RemoveResponseHeader

从响应结果中移除有一个响应头

RequestRateLimiter

限制请求的流量

...

使用方法

假设有一个服务实例userservice

给所有进入userservice的请求添加一个请求头:Truth=itcast is freaking awesome!

实现方式:在gateway中修改application.yml文件,给userservice的路由添加过滤器:

spring:

 cloud:

   gateway:

      routes: # 网关路由配置

       - id: user-service

         uri: lb://userservice

         predicates:

           - Path=/user/**

         filters: # 过滤器

           - AddRequestHeader=Truth, Itcast is freaking awesome! #添加请求头

如果要对所有的路由都生效,则可以将过滤器工厂写到default下。格式如下:

spring:

application:

   name: gateway # 服务名称

 cloud:

   nacos:

     server-addr: localhost:8848 # nacos地址

   gateway:

     routes: # 网关路由配置

       - id: user-service

         uri: lb://userservice

         predicates:

           - Path=/user/**

       - id: order-service

         uri: lb://orderservice

         predicates:

           - Path=/order/**

     default-filters: # 默认过滤器,会对所有的路由请求都生效

       - AddRequestHeader=Truth, Itcast is freaking awesome! # 添加请求头

目录
相关文章
|
19天前
|
缓存 开发框架 监控
路由拦截器
路由拦截器
26 8
|
8月前
|
Java 容器
28JavaWeb基础 - 过滤器
28JavaWeb基础 - 过滤器
27 0
|
19天前
|
Python
过滤器
过滤器
10 2
|
7月前
|
JSON 数据格式
屏蔽词过滤器 1
屏蔽词过滤器
83 0
|
7月前
屏蔽词过滤器 2
屏蔽词过滤器
30 0
|
10月前
|
API 微服务
全局过滤器 GlobalFilter
全局过滤器 GlobalFilter
170 0
|
12月前
|
监控 Java 数据库连接
过滤器的应用
在上一篇博客中,我们简单的学习了一下面向切面编程,而过滤器就是对这一思想的应用。那如何在项目中使用呢?
|
负载均衡 前端开发 Java
统一网关Gateway、路由断言工厂、路由过滤器及跨域问题处理
统一网关Gateway、路由断言工厂、路由过滤器及跨域问题处理
208 0
|
前端开发 Java 应用服务中间件
GetWay网关过滤器工厂与全局过滤器
GatewayFilter是网关中提供的一种过滤器,可以对进入网关的请求和微服务返回的响应做处理:
298 0