ny
昨天 b6f169fe43a2b13f351aefc152374fc7f0bc8cb7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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;
    }
}