1.前言
SpringCloud 虽然给我们提供了很多过滤器,但是这些过滤器功能都是固定的,无法满足用户的各式各样的需求。因此SpringCloud提供了过滤器的扩展功能自定过滤器。
开发者可以根据自己的业务需求自定义过滤器。
2. 自定义 GatewayFilter(局部过滤器)
-
GatewayFilter 则是局部过滤器,它们可以应用到特定的路由或者路径上。通过将过滤器应用到特定的路由配置中,可以使得这些过滤器只在特定的请求路径下生效。
通常情况下,GatewayFilter 可以分为两类:
-
Pre 过滤器:在请求被路由到目标服务之前执行。例如,可以在此类过滤器中进行身份验证、日志记录、请求修改等操作。
-
Post 过滤器:在请求被路由到目标服务之后执行。通常用于记录响应日志、修改响应、添加响应头等操作。
Spring Cloud Gateway 中的过滤器可以按照顺序链式执行,从而实现复杂的请求处理逻辑。通过自定义和组合不同的过滤器,可以满足各种场景下的需求。
2.1 代码实现
1. 编写一个类,继承的抽象类是 AbstractGatewayFilterFactory创建自定义的局部网关过滤器,用于接收过滤器的配置参数。
实现 Ordered 用于自定义过滤器的执行顺序。
/**
* @Description: 自定义Gateway过滤器
* @Author: windStop
* @Date: 2024/