2过滤器 · SpringCloud微服务实战 · 看云
目前GatewayFilter工厂的内建实现如下:
| ID | 类名 | 类型 | 功能 |
|---|---|---|---|
| StripPrefix | StripPrefixGatewayFilterFactory | pre | 移除请求URL路径的第一部分,例如原始请求路径是/order/query,处理后是/query |
| SetStatus | SetStatusGatewayFilterFactory | post | 设置请求响应的状态码,会从org.springframework.http.HttpStatus中解析 |
| SetResponseHeader | SetResponseHeaderGatewayFilterFactory | post | 设置(添加)请求响应的响应头 |
| SetRequestHeader | SetRequestHeaderGatewayFilterFactory | pre | 设置(添加)请求头 |
| SetPath | SetPathGatewayFilterFactory | pre | 设置(覆盖)请求路径 |
| SecureHeader | SecureHeadersGatewayFilterFactory | pre | 设置安全相关的请求头,见SecureHeadersProperties |
| SaveSession | SaveSessionGatewayFilterFactory | pre | 保存WebSession |
| RewriteResponseHeader | RewriteResponseHeaderGatewayFilterFactory | post | 重新响应头 |
| RewritePath | RewritePathGatewayFilterFactory | pre | 重写请求路径 |
| Retry | RetryGatewayFilterFactory | pre | 基于条件对请求进行重试 |
| RequestSize | RequestSizeGatewayFilterFactory | pre | 限制请求的大小,单位是byte,超过设定值返回413 Payload Too Large |
| RequestRateLimiter | RequestRateLimiterGatewayFilterFactory | pre | 限流 |
| RequestHeaderToRequestUri | RequestHeaderToRequestUriGatewayFilterFactory | pre | 通过请求头的值改变请求URL |
| RemoveResponseHeader | RemoveResponseHeaderGatewayFilterFactory | post | 移除配置的响应头 |
| RemoveRequestHeader | RemoveRequestHeaderGatewayFilterFactory | pre | 移除配置的请求头 |
| RedirectTo | RedirectToGatewayFilterFactory | pre | 重定向,需要指定HTTP状态码和重定向URL |
| PreserveHostHeader | PreserveHostHeaderGatewayFilterFactory | pre | 设置请求携带的属性preserveHostHeader为true |
| PrefixPath | PrefixPathGatewayFilterFactory | pre | 请求路径添加前置路径 |
| Hystrix | HystrixGatewayFilterFactory | pre | 整合Hystrix |
| FallbackHeaders | FallbackHeadersGatewayFilterFactory | pre | Hystrix执行如果命中降级逻辑允许通过请求头携带异常明细信息 |
| AddResponseHeader | AddResponseHeaderGatewayFilterFactory | post | 添加响应头 |
| AddRequestParameter | AddRequestParameterGatewayFilterFactory | pre | 添加请求参数,仅仅限于URL的Query参数 |
| AddRequestHeader | AddRequestHeaderGatewayFilterFactory | pre | 添加请求头 |
这个filter的执行顺序和配置定义的顺序是有关系的