package jnpf.filter; import cn.dev33.satoken.reactor.context.SaReactorSyncHolder; import org.springframework.cloud.gateway.filter.GatewayFilterChain; import org.springframework.cloud.gateway.filter.GlobalFilter; import org.springframework.core.Ordered; import org.springframework.web.server.ServerWebExchange; import reactor.core.publisher.Mono; /** * 网关过滤器 */ public class ContextGatewayFilterForReactor implements GlobalFilter, Ordered { @Override public Mono filter(ServerWebExchange exchange, GatewayFilterChain chain) { //初始化SaToken上下文 SaReactorSyncHolder.setContext(exchange); return chain.filter(exchange) .doFinally(s -> SaReactorSyncHolder.clearContext()); } @Override public int getOrder() { return 0; } }