public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
Flux<DataBuffer> body = exchange.getRequest().getBody();
//Return different according to body content...
if (condition) {
return chain.filter(exchange);
} else {
return Mono.empty();
}
}
如何在带有Spring 5的spring-webflux中获取请求的主体以进行一些自定义判断?
答案 0 :(得分:1)
您的问题尚不完全清楚。我认为您的疑问是您在代码段注释中输入的内容。
可能有不同的方法来实现您想要的。一种简单的方法是使用flatMap运算符。如下所示:
public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
Flux<DataBuffer> body = exchange.getRequest().getBody()
.flatMap(data -> {
if (condition) {
return chain.filter(exchange);
}
return Mono.empty();
});
//...
}