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));
	}
@ 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}
{