Pārlūkot izejas kodu

Update Deprecated Reactor Usage

Josh Cummings 4 mēneši atpakaļ
vecāks
revīzija
eecd7d9559

+ 1 - 3
oauth2/oauth2-client/src/main/java/org/springframework/security/oauth2/client/endpoint/AbstractWebClientReactiveOAuth2AccessTokenResponseClient.java

@@ -84,9 +84,7 @@ public abstract class AbstractWebClientReactiveOAuth2AccessTokenResponseClient<T
 		Assert.notNull(grantRequest, "grantRequest cannot be null");
 		// @formatter:off
 		return Mono.defer(() -> this.requestEntityConverter.convert(grantRequest)
-				.exchange()
-				.flatMap((response) -> response.body(this.bodyExtractor))
-		);
+				.exchangeToMono((response) -> response.body(this.bodyExtractor)));
 		// @formatter:on
 	}
 

+ 2 - 3
oauth2/oauth2-resource-server/src/main/java/org/springframework/security/oauth2/server/resource/introspection/SpringReactiveOpaqueTokenIntrospector.java

@@ -105,7 +105,6 @@ public class SpringReactiveOpaqueTokenIntrospector implements ReactiveOpaqueToke
 		// @formatter:off
 		return Mono.just(token)
 				.flatMap(this::makeRequest)
-				.flatMap(this::adaptToNimbusResponse)
 				.map(this::convertClaimsSet)
 				.flatMap(this.authenticationConverter::convert)
 				.cast(OAuth2AuthenticatedPrincipal.class)
@@ -113,13 +112,13 @@ public class SpringReactiveOpaqueTokenIntrospector implements ReactiveOpaqueToke
 		// @formatter:on
 	}
 
-	private Mono<ClientResponse> makeRequest(String token) {
+	private Mono<Map<String, Object>> makeRequest(String token) {
 		// @formatter:off
 		return this.webClient.post()
 				.uri(this.introspectionUri)
 				.header(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON_VALUE)
 				.body(BodyInserters.fromFormData("token", token))
-				.exchange();
+				.exchangeToMono(this::adaptToNimbusResponse);
 		// @formatter:on
 	}
 

+ 5 - 1
oauth2/oauth2-resource-server/src/test/java/org/springframework/security/oauth2/server/resource/introspection/SpringReactiveOpaqueTokenIntrospectorTests.java

@@ -24,6 +24,7 @@ import java.util.Collection;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Optional;
+import java.util.function.Function;
 
 import com.fasterxml.jackson.databind.ObjectMapper;
 import okhttp3.mockwebserver.Dispatcher;
@@ -322,7 +323,10 @@ public class SpringReactiveOpaqueTokenIntrospectorTests {
 		ClientResponse.Headers headers = mock(ClientResponse.Headers.class);
 		given(headers.contentType()).willReturn(Optional.of(MediaType.APPLICATION_JSON));
 		given(clientResponse.headers()).willReturn(headers);
-		given(spec.exchange()).willReturn(Mono.just(clientResponse));
+		given(spec.exchangeToMono(any())).willAnswer((invocation) -> {
+			Function<ClientResponse, Mono<ClientResponse>> fun = invocation.getArgument(0);
+			return fun.apply(clientResponse);
+		});
 		return webClient;
 	}