web/src/main/java/org/springframework/security/web/server/util/matcher/AndServerWebExchangeMatcher.java
@Override
	public Mono<MatchResult> matches(ServerWebExchange exchange) {
		return Mono.defer(() -> {
			Map<String, Object> variables = new HashMap<>();
			return Flux.fromIterable(matchers)
				.flatMap(matcher -> matcher.matches(exchange))
				.doOnNext(matchResult -> variables.putAll(matchResult.getVariables()))
				.all(MatchResult::isMatch)
				.flatMap(allMatch -> allMatch ? MatchResult.match(variables) : MatchResult.notMatch());
		});
	}
@Override
	public Mono<MatchResult> matches(ServerWebExchange exchange) {
		return Mono.defer(() -> {
			Map<String, Object> variables = new HashMap<>();
			return Flux.fromIterable(matchers)
				.flatMap(matcher -> matcher.matches(exchange))
				.doOnNext(matchResult -> variables.putAll(matchResult.getVariables()))
				.all(MatchResult::isMatch)
				.flatMap(allMatch -> allMatch ? MatchResult.match(variables) : MatchResult.notMatch());
		});
	}
/* (non-Javadoc)
@see org.springframework.security.web.server.util.matcher.ServerWebExchangeMatcher#matches(org.springframework.web.server.ServerWebExchange)