@Override
        public Mono<Void> execute(final ServerWebExchange exchange) {
            return Mono.defer(() -> {
                if (this.index < plugins.size()) {
                    ShenyuPlugin plugin = plugins.get(this.index++);
                    boolean skip = plugin.skip(exchange);
                    if (skip) {
                        return this.execute(exchange);
                    }
                    try {
                        plugin.before(exchange);
                        return plugin.execute(exchange, this);
                    } finally {
                        plugin.after(exchange);
                    }
                }
                return Mono.empty();
            });
        }
Delegate to the next {@code WebFilter} in the chain.

@param exchange the current server exchange
@return {@code Mono<Void>} to indicate when request handling is complete
shenyu-web/src/main/java/org/apache/shenyu/web/handler/ShenyuWebHandler.java