断言(Predicate)可以简单理解为前置的filter,如果符合要求放行,否则返回
例如:
predicates:
- Path=/user/**
介绍常用的断言
1. - After=2020-07-21T11:33:33.993+08:00[Asia/Shanghai] 指定日期之后的请求进行路由
2. - Before=2020-07-21T11:33:33.993+08:00[Asia/Shanghai] 指定日期之前的请求进行路由
3. - Between=2020-07-21T11:33:33.993+08:00[Asia/Shanghai], 2020-07-21T11:33:33.993+08:00[Asia/Shanghai] 指定在什么日期期间
4. - Cookie=username,gzy - Cookie=username,[A-Za-z0-9]+ (正则表达式) 基于指定cookie的请求进行路由
5. - Header=X-Request-Id, \d+ 基于请求头中的指定属性的正则匹配路由(这里全是整数)
6. - Method=GET,POST 基于指定的请求方式请求进行路由
7. - Path=/xxx/xxx 基于路径方式的断言
官方更多: https://cloud.spring.io/spring-cloud-static/spring-cloud-gateway/2.2.3.RELEASE/reference/html/#the-cookie-route-predicate-factory
使用断言
spring:
application:
name: GATEWAY
cloud:
consul:
host: localhost
port: 8500
gateway:
routes:
- id: user_route
uri: lb://USERS
predicates:
- Path=/user/**
- After=2020-07-21T11:39:33.993+08:00[Asia/Shanghai]
- Cookie=username,[A-Za-z0-9]+
- Header=X-Request-Id, \d+