Spring Cloud Gateway 的过滤器有哪些

有的时候博客内容会有变动,首发博客是最新的,其他博客地址可能会未同步,认准https://blog.zysicyj.top

全网最细面试题手册,支持艾宾浩斯记忆法。这是一份最全面、最详细、最高质量的 java面试题,不建议你死记硬背,只要每天复习一遍,有个大概印象就行了。 https://store.amazingmemo.com/chapterDetail/1685324709017001`

Spring Cloud Gateway 过滤器概述

Spring Cloud Gateway 提供了一系列的内置过滤器,它们可以在请求和响应的生命周期中应用。下面是不同类型的过滤器简单介绍:

全局过滤器

全局过滤器(Global Filters)适用于所有的路由。

路由过滤器

路由过滤器(Route Filters)只作用于指定的路由。

网关过滤器

网关过滤器(GatewayFilter)可以通过编程的方式自定义,并在配置中指定。

内置过滤器类型

Spring Cloud Gateway 的内置过滤器大体可以分为以下几类:

工厂过滤器

这类过滤器允许通过配置文件定义过滤器行为。

  1. AddRequestHeader - 添加请求头

  2. AddRequestParameter - 添加请求参数

  3. AddResponseHeader - 添加响应头

  4. RedirectTo - 重定向到指定URL

  5. SetPath - 修改请求路径

  6. SetStatus - 修改响应状态码

  7. StripPrefix - 移除URL的前缀部分

  8. Retry - 提供重试逻辑

  9. RequestRateLimiter - 限流

修改请求/响应体的过滤器

这些过滤器用来修改请求或响应的内容。

  1. ModifyRequestBody - 修改请求体

  2. ModifyResponseBody - 修改响应体

鉴权和安全相关

这些过滤器关联到安全和鉴权的操作。

  1. TokenRelay - 令牌转发

  2. SecureHeaders - 添加安全相关的头信息

其他特殊用途

  1. FallbackHeaders - 配置后备请求头信息

  2. Hystrix - 集成Hystrix进行断路器的支持

  3. SaveSession - 保存Session信息

自定义过滤器

除了内置过滤器,Spring Cloud Gateway 还允许我们创建自定义过滤器。自定义过滤器可以用来执行特定的业务逻辑,例如用户认证、日志记录等。自定义过滤器实现 GatewayFilter 接口,并通过继承 AbstractGatewayFilterFactory 基类来简化开发。

public class CustomFilter extends AbstractGatewayFilterFactory<CustomFilter.Config> {
    // 自定义过滤器实现
}

在配置路由时,便可以引用自定义过滤器:

spring:
  cloud:
    gateway:
      routes:
      - id: custom_route
        uri: http://example.com
        filters:
        - CustomFilter

以上便是一些基础知识关于Spring Cloud Gateway中内置的过滤器以及如何创建自定义过滤器。它们都是构建API网关时不可或缺的工具。

最后更新于