1.Gateway过滤器种类
过滤器种类 | 描述 |
---|---|
GatewayFilter | 路由过滤器,作用于任意指定的路由。默认不生效,要配置到路由后生效 |
GlobalFilter | 全局过滤器,作用范围是所有路由。声明后自定生效 |
2.Gateway过滤器参数
参数 | 描述 |
---|---|
ServerWebExchange | Gateway内部上下文对象,包含了整个过滤器链内共享的数据 |
GatewayFilterChain | 过滤器链,当前过滤器执行完毕后,要调用过滤器链中的下一个过滤器 |
3.自定义GlobalFilter过滤器
java
package com.example.filter;
import org.springframework.cloud.gateway.filter.GatewayFilterChain;
import org.springframework.cloud.gateway.filter.GlobalFilter;
import org.springframework.core.Ordered;
import org.springframework.stereotype.Component;
import org.springframework.web.server.ServerWebExchange;
import reactor.core.publisher.Mono;
@Component
public class LoginGlobalFilter implements GlobalFilter, Ordered {
@Override
public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
// 1.获取请求等数据
// 2.过滤器的业务处理
// 3.放行
return chain.filter(exchange);
}
@Override
public int getOrder() {
// 过滤器的执行顺序,值越小,优先级越高。要高于NettyRoutingFilter过滤器的优先级
return 0 ;
}
}