从过滤器⽣命周期(影响时机点)的⻆度来说,主要有两个pre(前置过滤器)和post(后置过滤器):
触发时机 | 用途 |
---|---|
pre | 这种过滤器在请求被路由之前调⽤。我们可利⽤这种过滤器实现身份验证、在集群中选择 请求的微服务、记录调试信息等。 |
post | 这种过滤器在路由到微服务以后执⾏。这种过滤器可⽤来为响应添加标准的 HTTP Header、收集统计信息和指标、将响应从微服务发送给客户端等。 |
从过滤器类型的⻆度,Spring Cloud GateWay的过滤器分为GateWayFilter(作用到单个路由上面额度过滤器)和GlobalFilter(作用到所有路由的全局过滤器)两种。
1 全局过滤器GlobalFilter
定义全局过滤器要实现GlobalFilter接口(org.springframework.cloud.gateway.filter.GlobalFilter),同时为了确保全局过滤器的执行顺序要继承Ordered接口(org.springframework.core.Ordered)。
下面编写四个GlobalFilter,它们的ordered排序-2、-1、1、2。四个全局过滤器的代码实现如下: