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<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
|
//初始化SaToken上下文
|
SaReactorSyncHolder.setContext(exchange);
|
return chain.filter(exchange)
|
.doFinally(s -> SaReactorSyncHolder.clearContext());
|
}
|
|
@Override
|
public int getOrder() {
|
return 0;
|
}
|
}
|