Spring Cloud Gateway的路由配置的功能是以Spring WebFlux中的Handler Mapping为基础实现的。Spring Cloud Gateway也是由许多的路由谓词工厂组成的。当Http Request请求进行谓词匹配。匹配成功则进行下一步处理,否则谓词失败直接返回错误信息。
Spring Cloud Gateway内置了一系列的路由谓词工厂,以便我们可以在开发中灵活的使用Gateway进行请求转发。
路由谓词工厂的作用是:符合Predicate的条件,就使用该路由的配置,否则就不执行。
路由谓词工厂 |
作用 |
参数 |
After |
当且仅当请求时的时间After配置的时间时,才转发该请求 |
一个带有时区的具体时间 |
Before |
当且仅当请求时的时间Before配置的时间时,才转发该请求 |
一个带有时区的具体时间 |
Between |
当且仅当请求时的时间Between配置的时间段时,才转发该请求 |
一个带有时区的具体时间段 |
Cookie |
当且仅当请求时携带的Cookie名称及值与配置的名称及值相符时,才转发该请求 |
Cookie的名称及值,支持使用正则表达式来匹配值 |
Header |
当且仅当请求时携带的Header名称及值与配置的名称及值相符时,才转发该请求 |
Header的名称及值,支持使用正则表达式来匹配值 |
Host |
当且仅当请求时名为Host的Header的值与配置的值相符时,才转发该请求 |
Host的值,支持配置多个且支持使用通配符 |
Method |
当且仅当请求时所使用的HTTP方法与配置的请求方法相符时,才转发该请求 |
HTTP请求方法,例如GET、POST等 |
Path |
当且仅当请求时所访问的路径与配置的路径相匹配时,才转发该请求 |
通配符、占位符或具体的接口路径,可以配置多个 |
Query |
当且仅当请求时所带有的参数名称与配置的参数名称相符时,才转发该请求 |
参数名称和参数值(非必须),支持使用正则表达式对参数值进行匹配 |
RemoteAddr |
当且仅当请求时的IP地址与配置的IP地址相符时,才转发该请求 |
IP地址或IP段 |