org.springframework.cloud spring-cloud-starter-gateway
如果你包含了 starter,但是你不想启用网关,则可以设置 spring.cloud.gateway.enabled=false
5. Route Predicate FactoriesSpring Cloud Gateway 包含许多内置的路由谓词工厂,所有这些谓词匹配不同的 HTTP 请求属性
5.1. The After Route Predicate FactoryAfter 路由谓词工厂携带一个参数,即一个 datetime(其实是 Java 的 ZonedDateTime)。该谓词匹配发生在指定时间之后的请求。
spring: cloud: gateway: routes: - id: after_route uri: http://www.baidu.com predicates: - After=2021-06-03T10:00:00.000+08:005.2. The Before Route Predicate Factory
Before 路由谓词工厂携带一个参数,即一个 datetime(其实是 Java 的 ZonedDateTime)。该谓词匹配发生在指定时间之前的请求。
spring: cloud: gateway: routes: - id: before_route uri: http://www.baidu.com predicates: - Before=2021-06-03T10:00:00.000+08:005.3. The Between Route Predicate Factory
Between 路由谓词工厂携带两个参数,datetime1 和 datetime2,他们都是 Java 的 ZonedDateTime 对象。该谓词匹配发生在 datetime1 之后,以及 datetime2 之前的请求。datetime2 参数必须在 datetime1 之后。
spring: cloud: gateway: routes: - id: method_route uri: http://www.baidu.com predicates: - Between=2017-01-20T17:42:47.789-07:00[America/Denver], 2017-01-21T17:42:47.789-07:00[America/Denver]5.4. The cookie Route Predicate Factory
cookie 路由谓词工厂携带两个参数,name 和 regexp(本质是 Java 的正则表达式)。该谓词匹配具有给定名称,并且值匹配正则表达式的 cookie。
spring: cloud: gateway: routes: - id: method_route uri: https://www.baidu.com predicates: - cookie=x-token, w+5.5. The Header Route Predicate Factory
Header 路由谓词工厂携带两个参数,name 和 regexp(本质是 Java 的正则表达式)。该谓词匹配具有给定名称,并且值匹配正则表达式的 header。
spring: cloud: gateway: routes: - id: method_route uri: http://www.baidu.com predicates: - Header=X-Request-Id, d+5.6. The Host Route Predicate Factory
Header 路由谓词工厂携带一个参数:主机名 patterns 列表。模式是一种 Ant 风格的带有 . 作为分隔符的模式。该谓词匹配模式中的的 Host 头部。
spring: cloud: gateway: routes: - id: method_route uri: http://www.baidu.com predicates: - Header=X-Request-Id, d+
5.7. The Method Route Predicate Factory消息头部的字段名是大小写不敏感的,也就是头部 X-Request-Id,也可以传递 x-request-id
RFC 2616 https://www.rfc-editor.org/rfc/inline-errata/rfc2616.html,查询 (" 关键字附近文字可以找到:Field names are case-insensitive.
Method 路由谓词工厂携带一个参数 methods,该参数是一个或者多个参数:待匹配的 HTTP 方法。
spring: cloud: gateway: routes: - id: method_route uri: http://www.baidu.com predicates: - Method=GET,POST5.8. The Path Route Predicate Factory
spring: cloud: gateway: routes: - id: method_route uri: http://localhost:8080 predicates: - Path=/echo/{segment}5.9. The Query Route Predicate Factory
Query 路由谓词工厂携带两个参数,一个必需的 param 和一个可选的 regexp(本质是 Java 的正则表达式)。
spring: cloud: gateway: routes: - id: method_route uri: https://www.baidu.com predicates: - Query=id5.10. The RemoteAddr Route Predicate Factory
RemoteAddr 路由谓词工厂携带一个 sources 列表,这是 CIDR 符号字符串,例如 192.168.0.1/16,此处 192.168.0.1 是 IP 地址,16 是子网掩码。
spring: cloud: gateway: routes: - id: remoteaddr_route uri: http://www.baidu.com predicates: - RemoteAddr=192.168.0.187/24
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)