oauth2/oauth2-client/src/main/java/org/springframework/security/oauth2/client/oidc/web/server/logout/OidcClientInitiatedServerLogoutSuccessHandler.java
@Override
	public Mono<Void> onLogoutSuccess(WebFilterExchange exchange, Authentication authentication) {
		return Mono.just(authentication)
				.filter(OAuth2AuthenticationToken.class::isInstance)
				.filter(token -> authentication.getPrincipal() instanceof OidcUser)
				.map(OAuth2AuthenticationToken.class::cast)
				.flatMap(this::endSessionEndpoint)
				.map(endSessionEndpoint -> endpointUri(endSessionEndpoint, authentication))
				.switchIfEmpty(this.serverLogoutSuccessHandler
						.onLogoutSuccess(exchange, authentication).then(Mono.empty()))
				.flatMap(endpointUri -> this.redirectStrategy.sendRedirect(exchange.getExchange(), endpointUri));
	}
@Override
	public Mono<Void> onLogoutSuccess(WebFilterExchange exchange, Authentication authentication) {
		return Mono.just(authentication)
				.filter(OAuth2AuthenticationToken.class::isInstance)
				.filter(token -> authentication.getPrincipal() instanceof OidcUser)
				.map(OAuth2AuthenticationToken.class::cast)
				.flatMap(this::endSessionEndpoint)
				.map(endSessionEndpoint -> endpointUri(endSessionEndpoint, authentication))
				.switchIfEmpty(this.serverLogoutSuccessHandler
						.onLogoutSuccess(exchange, authentication).then(Mono.empty()))
				.flatMap(endpointUri -> this.redirectStrategy.sendRedirect(exchange.getExchange(), endpointUri));
	}
{@inheritDoc}