Replace removed context-related operators
Closes gh-11194
This commit is contained in:
+1
-1
@@ -103,7 +103,7 @@ public final class DefaultReactiveOAuth2AuthorizedClientManager implements React
|
||||
// @formatter:on
|
||||
|
||||
// @formatter:off
|
||||
private static final Mono<ServerWebExchange> currentServerWebExchangeMono = Mono.subscriberContext()
|
||||
private static final Mono<ServerWebExchange> currentServerWebExchangeMono = Mono.deferContextual(Mono::just)
|
||||
.filter((c) -> c.hasKey(ServerWebExchange.class))
|
||||
.map((c) -> c.get(ServerWebExchange.class));
|
||||
// @formatter:on
|
||||
|
||||
+1
-1
@@ -139,7 +139,7 @@ public final class ServerOAuth2AuthorizedClientExchangeFilterFunction implements
|
||||
// @formatter:on
|
||||
|
||||
// @formatter:off
|
||||
private final Mono<ServerWebExchange> currentServerWebExchangeMono = Mono.subscriberContext()
|
||||
private final Mono<ServerWebExchange> currentServerWebExchangeMono = Mono.deferContextual(Mono::just)
|
||||
.filter((c) -> c.hasKey(ServerWebExchange.class))
|
||||
.map((c) -> c.get(ServerWebExchange.class));
|
||||
// @formatter:on
|
||||
|
||||
+1
-1
@@ -471,7 +471,7 @@ public final class ServletOAuth2AuthorizedClientExchangeFilterFunction implement
|
||||
|
||||
private Mono<ClientRequest> mergeRequestAttributesFromContext(ClientRequest request) {
|
||||
ClientRequest.Builder builder = ClientRequest.from(request);
|
||||
return Mono.subscriberContext()
|
||||
return Mono.deferContextual(Mono::just).cast(Context.class)
|
||||
.map((ctx) -> builder.attributes((attrs) -> populateRequestAttributes(attrs, ctx)))
|
||||
.map(ClientRequest.Builder::build);
|
||||
}
|
||||
|
||||
+1
-1
@@ -141,7 +141,7 @@ public final class OAuth2AuthorizedClientArgumentResolver implements HandlerMeth
|
||||
|
||||
private Mono<ServerWebExchange> currentServerWebExchange() {
|
||||
// @formatter:off
|
||||
return Mono.subscriberContext()
|
||||
return Mono.deferContextual(Mono::just)
|
||||
.filter((c) -> c.hasKey(ServerWebExchange.class))
|
||||
.map((c) -> c.get(ServerWebExchange.class));
|
||||
// @formatter:on
|
||||
|
||||
+15
-15
@@ -194,7 +194,7 @@ public class DefaultReactiveOAuth2AuthorizedClientManagerTests {
|
||||
OAuth2AuthorizeRequest authorizeRequest = OAuth2AuthorizeRequest
|
||||
.withClientRegistrationId("invalid-registration-id").principal(this.principal).build();
|
||||
assertThatIllegalArgumentException().isThrownBy(
|
||||
() -> this.authorizedClientManager.authorize(authorizeRequest).subscriberContext(this.context).block())
|
||||
() -> this.authorizedClientManager.authorize(authorizeRequest).contextWrite(this.context).block())
|
||||
.withMessage("Could not find ClientRegistration with id 'invalid-registration-id'");
|
||||
}
|
||||
|
||||
@@ -207,7 +207,7 @@ public class DefaultReactiveOAuth2AuthorizedClientManagerTests {
|
||||
.withClientRegistrationId(this.clientRegistration.getRegistrationId()).principal(this.principal)
|
||||
.build();
|
||||
OAuth2AuthorizedClient authorizedClient = this.authorizedClientManager.authorize(authorizeRequest)
|
||||
.subscriberContext(this.context).block();
|
||||
.contextWrite(this.context).block();
|
||||
verify(this.authorizedClientProvider).authorize(this.authorizationContextCaptor.capture());
|
||||
verify(this.contextAttributesMapper).apply(eq(authorizeRequest));
|
||||
OAuth2AuthorizationContext authorizationContext = this.authorizationContextCaptor.getValue();
|
||||
@@ -230,7 +230,7 @@ public class DefaultReactiveOAuth2AuthorizedClientManagerTests {
|
||||
.withClientRegistrationId(this.clientRegistration.getRegistrationId()).principal(this.principal)
|
||||
.build();
|
||||
OAuth2AuthorizedClient authorizedClient = this.authorizedClientManager.authorize(authorizeRequest)
|
||||
.subscriberContext(this.context).block();
|
||||
.contextWrite(this.context).block();
|
||||
verify(this.authorizedClientProvider).authorize(this.authorizationContextCaptor.capture());
|
||||
verify(this.contextAttributesMapper).apply(eq(authorizeRequest));
|
||||
OAuth2AuthorizationContext authorizationContext = this.authorizationContextCaptor.getValue();
|
||||
@@ -258,7 +258,7 @@ public class DefaultReactiveOAuth2AuthorizedClientManagerTests {
|
||||
this.authorizedClientManager.setAuthorizationSuccessHandler(
|
||||
(client, principal, attributes) -> authorizationSuccessHandlerProbe.mono());
|
||||
OAuth2AuthorizedClient authorizedClient = this.authorizedClientManager.authorize(authorizeRequest)
|
||||
.subscriberContext(this.context).block();
|
||||
.contextWrite(this.context).block();
|
||||
verify(this.authorizedClientProvider).authorize(this.authorizationContextCaptor.capture());
|
||||
verify(this.contextAttributesMapper).apply(eq(authorizeRequest));
|
||||
OAuth2AuthorizationContext authorizationContext = this.authorizationContextCaptor.getValue();
|
||||
@@ -285,7 +285,7 @@ public class DefaultReactiveOAuth2AuthorizedClientManagerTests {
|
||||
given(this.authorizedClientProvider.authorize(any(OAuth2AuthorizationContext.class)))
|
||||
.willReturn(Mono.error(exception));
|
||||
assertThatExceptionOfType(ClientAuthorizationException.class).isThrownBy(
|
||||
() -> this.authorizedClientManager.authorize(authorizeRequest).subscriberContext(this.context).block())
|
||||
() -> this.authorizedClientManager.authorize(authorizeRequest).contextWrite(this.context).block())
|
||||
.isEqualTo(exception);
|
||||
verify(this.authorizedClientProvider).authorize(this.authorizationContextCaptor.capture());
|
||||
verify(this.contextAttributesMapper).apply(eq(authorizeRequest));
|
||||
@@ -313,7 +313,7 @@ public class DefaultReactiveOAuth2AuthorizedClientManagerTests {
|
||||
given(this.authorizedClientProvider.authorize(any(OAuth2AuthorizationContext.class)))
|
||||
.willReturn(Mono.error(exception));
|
||||
assertThatExceptionOfType(ClientAuthorizationException.class).isThrownBy(
|
||||
() -> this.authorizedClientManager.authorize(authorizeRequest).subscriberContext(this.context).block())
|
||||
() -> this.authorizedClientManager.authorize(authorizeRequest).contextWrite(this.context).block())
|
||||
.isEqualTo(exception);
|
||||
verify(this.authorizedClientProvider).authorize(this.authorizationContextCaptor.capture());
|
||||
verify(this.contextAttributesMapper).apply(eq(authorizeRequest));
|
||||
@@ -341,7 +341,7 @@ public class DefaultReactiveOAuth2AuthorizedClientManagerTests {
|
||||
given(this.authorizedClientProvider.authorize(any(OAuth2AuthorizationContext.class)))
|
||||
.willReturn(Mono.error(exception));
|
||||
assertThatExceptionOfType(ClientAuthorizationException.class).isThrownBy(
|
||||
() -> this.authorizedClientManager.authorize(authorizeRequest).subscriberContext(this.context).block())
|
||||
() -> this.authorizedClientManager.authorize(authorizeRequest).contextWrite(this.context).block())
|
||||
.isEqualTo(exception);
|
||||
verify(this.authorizedClientProvider).authorize(this.authorizationContextCaptor.capture());
|
||||
verify(this.contextAttributesMapper).apply(eq(authorizeRequest));
|
||||
@@ -366,7 +366,7 @@ public class DefaultReactiveOAuth2AuthorizedClientManagerTests {
|
||||
given(this.authorizedClientProvider.authorize(any(OAuth2AuthorizationContext.class)))
|
||||
.willReturn(Mono.error(exception));
|
||||
assertThatExceptionOfType(OAuth2AuthorizationException.class).isThrownBy(
|
||||
() -> this.authorizedClientManager.authorize(authorizeRequest).subscriberContext(this.context).block())
|
||||
() -> this.authorizedClientManager.authorize(authorizeRequest).contextWrite(this.context).block())
|
||||
.isEqualTo(exception);
|
||||
verify(this.authorizedClientProvider).authorize(this.authorizationContextCaptor.capture());
|
||||
verify(this.contextAttributesMapper).apply(eq(authorizeRequest));
|
||||
@@ -394,7 +394,7 @@ public class DefaultReactiveOAuth2AuthorizedClientManagerTests {
|
||||
this.authorizedClientManager.setAuthorizationFailureHandler(
|
||||
(client, principal, attributes) -> authorizationFailureHandlerProbe.mono());
|
||||
assertThatExceptionOfType(OAuth2AuthorizationException.class).isThrownBy(
|
||||
() -> this.authorizedClientManager.authorize(authorizeRequest).subscriberContext(this.context).block())
|
||||
() -> this.authorizedClientManager.authorize(authorizeRequest).contextWrite(this.context).block())
|
||||
.isEqualTo(exception);
|
||||
verify(this.authorizedClientProvider).authorize(this.authorizationContextCaptor.capture());
|
||||
verify(this.contextAttributesMapper).apply(eq(authorizeRequest));
|
||||
@@ -423,7 +423,7 @@ public class DefaultReactiveOAuth2AuthorizedClientManagerTests {
|
||||
.withClientRegistrationId(this.clientRegistration.getRegistrationId()).principal(this.principal)
|
||||
.build();
|
||||
OAuth2AuthorizedClient authorizedClient = this.authorizedClientManager.authorize(authorizeRequest)
|
||||
.subscriberContext(this.context).block();
|
||||
.contextWrite(this.context).block();
|
||||
verify(this.authorizedClientProvider).authorize(this.authorizationContextCaptor.capture());
|
||||
verify(this.contextAttributesMapper).apply(any());
|
||||
OAuth2AuthorizationContext authorizationContext = this.authorizationContextCaptor.getValue();
|
||||
@@ -460,7 +460,7 @@ public class DefaultReactiveOAuth2AuthorizedClientManagerTests {
|
||||
OAuth2AuthorizeRequest authorizeRequest = OAuth2AuthorizeRequest
|
||||
.withClientRegistrationId(this.clientRegistration.getRegistrationId()).principal(this.principal)
|
||||
.build();
|
||||
this.authorizedClientManager.authorize(authorizeRequest).subscriberContext(this.context).block();
|
||||
this.authorizedClientManager.authorize(authorizeRequest).contextWrite(this.context).block();
|
||||
verify(this.authorizedClientProvider).authorize(this.authorizationContextCaptor.capture());
|
||||
OAuth2AuthorizationContext authorizationContext = this.authorizationContextCaptor.getValue();
|
||||
String username = authorizationContext.getAttribute(OAuth2AuthorizationContext.USERNAME_ATTRIBUTE_NAME);
|
||||
@@ -475,7 +475,7 @@ public class DefaultReactiveOAuth2AuthorizedClientManagerTests {
|
||||
OAuth2AuthorizeRequest reauthorizeRequest = OAuth2AuthorizeRequest.withAuthorizedClient(this.authorizedClient)
|
||||
.principal(this.principal).build();
|
||||
OAuth2AuthorizedClient authorizedClient = this.authorizedClientManager.authorize(reauthorizeRequest)
|
||||
.subscriberContext(this.context).block();
|
||||
.contextWrite(this.context).block();
|
||||
verify(this.authorizedClientProvider).authorize(this.authorizationContextCaptor.capture());
|
||||
verify(this.contextAttributesMapper).apply(eq(reauthorizeRequest));
|
||||
OAuth2AuthorizationContext authorizationContext = this.authorizationContextCaptor.getValue();
|
||||
@@ -496,7 +496,7 @@ public class DefaultReactiveOAuth2AuthorizedClientManagerTests {
|
||||
OAuth2AuthorizeRequest reauthorizeRequest = OAuth2AuthorizeRequest.withAuthorizedClient(this.authorizedClient)
|
||||
.principal(this.principal).build();
|
||||
OAuth2AuthorizedClient authorizedClient = this.authorizedClientManager.authorize(reauthorizeRequest)
|
||||
.subscriberContext(this.context).block();
|
||||
.contextWrite(this.context).block();
|
||||
verify(this.authorizedClientProvider).authorize(this.authorizationContextCaptor.capture());
|
||||
verify(this.contextAttributesMapper).apply(eq(reauthorizeRequest));
|
||||
OAuth2AuthorizationContext authorizationContext = this.authorizationContextCaptor.getValue();
|
||||
@@ -524,7 +524,7 @@ public class DefaultReactiveOAuth2AuthorizedClientManagerTests {
|
||||
this.context = Context.of(ServerWebExchange.class, this.serverWebExchange);
|
||||
OAuth2AuthorizeRequest reauthorizeRequest = OAuth2AuthorizeRequest.withAuthorizedClient(this.authorizedClient)
|
||||
.principal(this.principal).build();
|
||||
this.authorizedClientManager.authorize(reauthorizeRequest).subscriberContext(this.context).block();
|
||||
this.authorizedClientManager.authorize(reauthorizeRequest).contextWrite(this.context).block();
|
||||
verify(this.authorizedClientProvider).authorize(this.authorizationContextCaptor.capture());
|
||||
OAuth2AuthorizationContext authorizationContext = this.authorizationContextCaptor.getValue();
|
||||
String[] requestScopeAttribute = authorizationContext
|
||||
@@ -533,7 +533,7 @@ public class DefaultReactiveOAuth2AuthorizedClientManagerTests {
|
||||
}
|
||||
|
||||
private Mono<ServerWebExchange> currentServerWebExchange() {
|
||||
return Mono.subscriberContext().filter((c) -> c.hasKey(ServerWebExchange.class))
|
||||
return Mono.deferContextual(Mono::just).filter((c) -> c.hasKey(ServerWebExchange.class))
|
||||
.map((c) -> c.get(ServerWebExchange.class));
|
||||
}
|
||||
|
||||
|
||||
+8
-9
@@ -156,8 +156,8 @@ public class ServerOAuth2AuthorizedClientExchangeFilterFunctionITests {
|
||||
.clientRegistrationId(clientRegistration.getRegistrationId()))
|
||||
.retrieve()
|
||||
.bodyToMono(String.class)
|
||||
.subscriberContext(Context.of(ServerWebExchange.class, this.exchange))
|
||||
.subscriberContext(ReactiveSecurityContextHolder.withAuthentication(this.authentication))
|
||||
.contextWrite(Context.of(ServerWebExchange.class, this.exchange))
|
||||
.contextWrite(ReactiveSecurityContextHolder.withAuthentication(this.authentication))
|
||||
.block();
|
||||
// @formatter:on
|
||||
assertThat(this.server.getRequestCount()).isEqualTo(2);
|
||||
@@ -199,9 +199,8 @@ public class ServerOAuth2AuthorizedClientExchangeFilterFunctionITests {
|
||||
this.webClient.get().uri(this.serverUrl)
|
||||
.attributes(ServletOAuth2AuthorizedClientExchangeFilterFunction
|
||||
.clientRegistrationId(clientRegistration.getRegistrationId()))
|
||||
.retrieve().bodyToMono(String.class)
|
||||
.subscriberContext(Context.of(ServerWebExchange.class, this.exchange))
|
||||
.subscriberContext(ReactiveSecurityContextHolder.withAuthentication(this.authentication)).block();
|
||||
.retrieve().bodyToMono(String.class).contextWrite(Context.of(ServerWebExchange.class, this.exchange))
|
||||
.contextWrite(ReactiveSecurityContextHolder.withAuthentication(this.authentication)).block();
|
||||
assertThat(this.server.getRequestCount()).isEqualTo(2);
|
||||
ArgumentCaptor<OAuth2AuthorizedClient> authorizedClientCaptor = ArgumentCaptor
|
||||
.forClass(OAuth2AuthorizedClient.class);
|
||||
@@ -254,8 +253,8 @@ public class ServerOAuth2AuthorizedClientExchangeFilterFunctionITests {
|
||||
.retrieve()
|
||||
.bodyToMono(String.class)
|
||||
)
|
||||
.subscriberContext(Context.of(ServerWebExchange.class, this.exchange))
|
||||
.subscriberContext(ReactiveSecurityContextHolder.withAuthentication(this.authentication))
|
||||
.contextWrite(Context.of(ServerWebExchange.class, this.exchange))
|
||||
.contextWrite(ReactiveSecurityContextHolder.withAuthentication(this.authentication))
|
||||
.block();
|
||||
// @formatter:on
|
||||
assertThat(this.server.getRequestCount()).isEqualTo(4);
|
||||
@@ -306,8 +305,8 @@ public class ServerOAuth2AuthorizedClientExchangeFilterFunctionITests {
|
||||
.clientRegistrationId(clientRegistration.getRegistrationId()))
|
||||
.retrieve()
|
||||
.bodyToMono(String.class)
|
||||
.subscriberContext(Context.of(ServerWebExchange.class, this.exchange))
|
||||
.subscriberContext(ReactiveSecurityContextHolder.withAuthentication(this.authentication));
|
||||
.contextWrite(Context.of(ServerWebExchange.class, this.exchange))
|
||||
.contextWrite(ReactiveSecurityContextHolder.withAuthentication(this.authentication));
|
||||
// @formatter:on
|
||||
// first try should fail, and remove the cached authorized client
|
||||
// @formatter:off
|
||||
|
||||
+29
-29
@@ -249,7 +249,7 @@ public class ServerOAuth2AuthorizedClientExchangeFilterFunctionTests {
|
||||
.attributes(ServerOAuth2AuthorizedClientExchangeFilterFunction.oauth2AuthorizedClient(authorizedClient))
|
||||
.build();
|
||||
// @formatter:off
|
||||
this.function.filter(request, this.exchange).subscriberContext(serverWebExchange())
|
||||
this.function.filter(request, this.exchange).contextWrite(serverWebExchange())
|
||||
.block();
|
||||
// @formatter:on
|
||||
assertThat(this.exchange.getRequest().headers().getFirst(HttpHeaders.AUTHORIZATION))
|
||||
@@ -266,7 +266,7 @@ public class ServerOAuth2AuthorizedClientExchangeFilterFunctionTests {
|
||||
.attributes(ServerOAuth2AuthorizedClientExchangeFilterFunction.oauth2AuthorizedClient(authorizedClient))
|
||||
.build();
|
||||
// @formatter:on
|
||||
this.function.filter(request, this.exchange).subscriberContext(serverWebExchange()).block();
|
||||
this.function.filter(request, this.exchange).contextWrite(serverWebExchange()).block();
|
||||
HttpHeaders headers = this.exchange.getRequest().headers();
|
||||
assertThat(headers.get(HttpHeaders.AUTHORIZATION)).containsOnly("Bearer " + this.accessToken.getTokenValue());
|
||||
}
|
||||
@@ -296,8 +296,8 @@ public class ServerOAuth2AuthorizedClientExchangeFilterFunctionTests {
|
||||
.attributes(ServerOAuth2AuthorizedClientExchangeFilterFunction.oauth2AuthorizedClient(authorizedClient))
|
||||
.build();
|
||||
this.function.filter(request, this.exchange)
|
||||
.subscriberContext(ReactiveSecurityContextHolder.withAuthentication(authentication))
|
||||
.subscriberContext(serverWebExchange())
|
||||
.contextWrite(ReactiveSecurityContextHolder.withAuthentication(authentication))
|
||||
.contextWrite(serverWebExchange())
|
||||
.block();
|
||||
// @formatter:on
|
||||
verify(this.clientCredentialsTokenResponseClient).getTokenResponse(any());
|
||||
@@ -322,8 +322,8 @@ public class ServerOAuth2AuthorizedClientExchangeFilterFunctionTests {
|
||||
.attributes(ServerOAuth2AuthorizedClientExchangeFilterFunction.oauth2AuthorizedClient(authorizedClient))
|
||||
.build();
|
||||
this.function.filter(request, this.exchange)
|
||||
.subscriberContext(ReactiveSecurityContextHolder.withAuthentication(authentication))
|
||||
.subscriberContext(serverWebExchange())
|
||||
.contextWrite(ReactiveSecurityContextHolder.withAuthentication(authentication))
|
||||
.contextWrite(serverWebExchange())
|
||||
.block();
|
||||
// @formatter:on
|
||||
verify(this.clientCredentialsTokenResponseClient, never()).getTokenResponse(any());
|
||||
@@ -357,8 +357,8 @@ public class ServerOAuth2AuthorizedClientExchangeFilterFunctionTests {
|
||||
TestingAuthenticationToken authentication = new TestingAuthenticationToken("test", "this");
|
||||
// @formatter:off
|
||||
this.function.filter(request, this.exchange)
|
||||
.subscriberContext(ReactiveSecurityContextHolder.withAuthentication(authentication))
|
||||
.subscriberContext(serverWebExchange())
|
||||
.contextWrite(ReactiveSecurityContextHolder.withAuthentication(authentication))
|
||||
.contextWrite(serverWebExchange())
|
||||
.block();
|
||||
// @formatter:on
|
||||
verify(this.refreshTokenTokenResponseClient).getTokenResponse(any());
|
||||
@@ -394,7 +394,7 @@ public class ServerOAuth2AuthorizedClientExchangeFilterFunctionTests {
|
||||
.attributes(ServerOAuth2AuthorizedClientExchangeFilterFunction.oauth2AuthorizedClient(authorizedClient))
|
||||
.build();
|
||||
this.function.filter(request, this.exchange)
|
||||
.subscriberContext(serverWebExchange())
|
||||
.contextWrite(serverWebExchange())
|
||||
.block();
|
||||
// @formatter:on
|
||||
verify(this.refreshTokenTokenResponseClient).getTokenResponse(any());
|
||||
@@ -436,8 +436,8 @@ public class ServerOAuth2AuthorizedClientExchangeFilterFunctionTests {
|
||||
.build();
|
||||
// @formatter:on
|
||||
this.function.filter(request, this.exchange)
|
||||
.subscriberContext(ReactiveSecurityContextHolder.withAuthentication(jwtAuthentication))
|
||||
.subscriberContext(serverWebExchange()).block();
|
||||
.contextWrite(ReactiveSecurityContextHolder.withAuthentication(jwtAuthentication))
|
||||
.contextWrite(serverWebExchange()).block();
|
||||
verify(this.jwtBearerTokenResponseClient).getTokenResponse(any());
|
||||
verify(this.authorizedClientRepository).loadAuthorizedClient(eq(registration.getRegistrationId()),
|
||||
eq(jwtAuthentication), any());
|
||||
@@ -460,7 +460,7 @@ public class ServerOAuth2AuthorizedClientExchangeFilterFunctionTests {
|
||||
.attributes(ServerOAuth2AuthorizedClientExchangeFilterFunction.oauth2AuthorizedClient(authorizedClient))
|
||||
.build();
|
||||
this.function.filter(request, this.exchange)
|
||||
.subscriberContext(serverWebExchange())
|
||||
.contextWrite(serverWebExchange())
|
||||
.block();
|
||||
// @formatter:on
|
||||
List<ClientRequest> requests = this.exchange.getRequests();
|
||||
@@ -482,7 +482,7 @@ public class ServerOAuth2AuthorizedClientExchangeFilterFunctionTests {
|
||||
.attributes(ServerOAuth2AuthorizedClientExchangeFilterFunction.oauth2AuthorizedClient(authorizedClient))
|
||||
.build();
|
||||
this.function.filter(request, this.exchange)
|
||||
.subscriberContext(serverWebExchange())
|
||||
.contextWrite(serverWebExchange())
|
||||
.block();
|
||||
// @formatter:on
|
||||
List<ClientRequest> requests = this.exchange.getRequests();
|
||||
@@ -510,7 +510,7 @@ public class ServerOAuth2AuthorizedClientExchangeFilterFunctionTests {
|
||||
.build();
|
||||
// @formatter:on
|
||||
given(this.exchange.getResponse().rawStatusCode()).willReturn(HttpStatus.UNAUTHORIZED.value());
|
||||
this.function.filter(request, this.exchange).subscriberContext(serverWebExchange()).block();
|
||||
this.function.filter(request, this.exchange).contextWrite(serverWebExchange()).block();
|
||||
assertThat(publisherProbe.wasSubscribed()).isTrue();
|
||||
verify(this.authorizationFailureHandler).onAuthorizationFailure(this.authorizationExceptionCaptor.capture(),
|
||||
this.authenticationCaptor.capture(), this.attributesCaptor.capture());
|
||||
@@ -547,7 +547,7 @@ public class ServerOAuth2AuthorizedClientExchangeFilterFunctionTests {
|
||||
assertThatExceptionOfType(WebClientResponseException.class)
|
||||
.isThrownBy(() -> this.function
|
||||
.filter(request, throwingExchangeFunction)
|
||||
.subscriberContext(serverWebExchange())
|
||||
.contextWrite(serverWebExchange())
|
||||
.block()
|
||||
)
|
||||
.isEqualTo(exception);
|
||||
@@ -585,7 +585,7 @@ public class ServerOAuth2AuthorizedClientExchangeFilterFunctionTests {
|
||||
.build();
|
||||
// @formatter:on
|
||||
given(this.exchange.getResponse().rawStatusCode()).willReturn(HttpStatus.FORBIDDEN.value());
|
||||
this.function.filter(request, this.exchange).subscriberContext(serverWebExchange()).block();
|
||||
this.function.filter(request, this.exchange).contextWrite(serverWebExchange()).block();
|
||||
assertThat(publisherProbe.wasSubscribed()).isTrue();
|
||||
verify(this.authorizationFailureHandler).onAuthorizationFailure(this.authorizationExceptionCaptor.capture(),
|
||||
this.authenticationCaptor.capture(), this.attributesCaptor.capture());
|
||||
@@ -620,7 +620,7 @@ public class ServerOAuth2AuthorizedClientExchangeFilterFunctionTests {
|
||||
assertThatExceptionOfType(WebClientResponseException.class)
|
||||
.isThrownBy(() -> this.function
|
||||
.filter(request, throwingExchangeFunction)
|
||||
.subscriberContext(serverWebExchange())
|
||||
.contextWrite(serverWebExchange())
|
||||
.block()
|
||||
)
|
||||
.isEqualTo(exception);
|
||||
@@ -659,7 +659,7 @@ public class ServerOAuth2AuthorizedClientExchangeFilterFunctionTests {
|
||||
given(headers.header(eq(HttpHeaders.WWW_AUTHENTICATE)))
|
||||
.willReturn(Collections.singletonList(wwwAuthenticateHeader));
|
||||
given(this.exchange.getResponse().headers()).willReturn(headers);
|
||||
this.function.filter(request, this.exchange).subscriberContext(serverWebExchange()).block();
|
||||
this.function.filter(request, this.exchange).contextWrite(serverWebExchange()).block();
|
||||
assertThat(publisherProbe.wasSubscribed()).isTrue();
|
||||
verify(this.authorizationFailureHandler).onAuthorizationFailure(this.authorizationExceptionCaptor.capture(),
|
||||
this.authenticationCaptor.capture(), this.attributesCaptor.capture());
|
||||
@@ -693,8 +693,8 @@ public class ServerOAuth2AuthorizedClientExchangeFilterFunctionTests {
|
||||
OAuth2AuthorizationException exception = new OAuth2AuthorizationException(
|
||||
new OAuth2Error(OAuth2ErrorCodes.INVALID_TOKEN, null, null));
|
||||
ExchangeFunction throwingExchangeFunction = (r) -> Mono.error(exception);
|
||||
assertThatExceptionOfType(OAuth2AuthorizationException.class).isThrownBy(() -> this.function
|
||||
.filter(request, throwingExchangeFunction).subscriberContext(serverWebExchange()).block())
|
||||
assertThatExceptionOfType(OAuth2AuthorizationException.class).isThrownBy(
|
||||
() -> this.function.filter(request, throwingExchangeFunction).contextWrite(serverWebExchange()).block())
|
||||
.isEqualTo(exception);
|
||||
assertThat(publisherProbe.wasSubscribed()).isTrue();
|
||||
verify(this.authorizationFailureHandler).onAuthorizationFailure(this.authorizationExceptionCaptor.capture(),
|
||||
@@ -716,7 +716,7 @@ public class ServerOAuth2AuthorizedClientExchangeFilterFunctionTests {
|
||||
.attributes(ServerOAuth2AuthorizedClientExchangeFilterFunction.oauth2AuthorizedClient(authorizedClient))
|
||||
.build();
|
||||
given(this.exchange.getResponse().rawStatusCode()).willReturn(HttpStatus.BAD_REQUEST.value());
|
||||
this.function.filter(request, this.exchange).subscriberContext(serverWebExchange()).block();
|
||||
this.function.filter(request, this.exchange).contextWrite(serverWebExchange()).block();
|
||||
verify(this.authorizationFailureHandler, never()).onAuthorizationFailure(any(), any(), any());
|
||||
}
|
||||
|
||||
@@ -754,8 +754,8 @@ public class ServerOAuth2AuthorizedClientExchangeFilterFunctionTests {
|
||||
.clientRegistrationId(registration.getRegistrationId()))
|
||||
.build();
|
||||
this.function.filter(request, this.exchange)
|
||||
.subscriberContext(ReactiveSecurityContextHolder.withAuthentication(authentication))
|
||||
.subscriberContext(serverWebExchange()).block();
|
||||
.contextWrite(ReactiveSecurityContextHolder.withAuthentication(authentication))
|
||||
.contextWrite(serverWebExchange()).block();
|
||||
verify(this.passwordTokenResponseClient).getTokenResponse(any());
|
||||
verify(this.authorizedClientRepository).saveAuthorizedClient(any(), eq(authentication), any());
|
||||
List<ClientRequest> requests = this.exchange.getRequests();
|
||||
@@ -778,7 +778,7 @@ public class ServerOAuth2AuthorizedClientExchangeFilterFunctionTests {
|
||||
.attributes(ServerOAuth2AuthorizedClientExchangeFilterFunction
|
||||
.clientRegistrationId(this.registration.getRegistrationId()))
|
||||
.build();
|
||||
this.function.filter(request, this.exchange).subscriberContext(serverWebExchange()).block();
|
||||
this.function.filter(request, this.exchange).contextWrite(serverWebExchange()).block();
|
||||
List<ClientRequest> requests = this.exchange.getRequests();
|
||||
assertThat(requests).hasSize(1);
|
||||
ClientRequest request0 = requests.get(0);
|
||||
@@ -797,7 +797,7 @@ public class ServerOAuth2AuthorizedClientExchangeFilterFunctionTests {
|
||||
given(this.authorizedClientRepository.loadAuthorizedClient(any(), any(), any()))
|
||||
.willReturn(Mono.just(authorizedClient));
|
||||
ClientRequest request = ClientRequest.create(HttpMethod.GET, URI.create("https://example.com")).build();
|
||||
this.function.filter(request, this.exchange).subscriberContext(serverWebExchange()).block();
|
||||
this.function.filter(request, this.exchange).contextWrite(serverWebExchange()).block();
|
||||
List<ClientRequest> requests = this.exchange.getRequests();
|
||||
assertThat(requests).hasSize(1);
|
||||
ClientRequest request0 = requests.get(0);
|
||||
@@ -821,8 +821,8 @@ public class ServerOAuth2AuthorizedClientExchangeFilterFunctionTests {
|
||||
OAuth2AuthenticationToken authentication = new OAuth2AuthenticationToken(user, user.getAuthorities(),
|
||||
"client-id");
|
||||
this.function.filter(request, this.exchange)
|
||||
.subscriberContext(ReactiveSecurityContextHolder.withAuthentication(authentication))
|
||||
.subscriberContext(serverWebExchange()).block();
|
||||
.contextWrite(ReactiveSecurityContextHolder.withAuthentication(authentication))
|
||||
.contextWrite(serverWebExchange()).block();
|
||||
List<ClientRequest> requests = this.exchange.getRequests();
|
||||
assertThat(requests).hasSize(1);
|
||||
ClientRequest request0 = requests.get(0);
|
||||
@@ -841,7 +841,7 @@ public class ServerOAuth2AuthorizedClientExchangeFilterFunctionTests {
|
||||
"client-id");
|
||||
// @formatter:off
|
||||
this.function.filter(request, this.exchange)
|
||||
.subscriberContext(ReactiveSecurityContextHolder.withAuthentication(authentication))
|
||||
.contextWrite(ReactiveSecurityContextHolder.withAuthentication(authentication))
|
||||
.block();
|
||||
// @formatter:on
|
||||
List<ClientRequest> requests = this.exchange.getRequests();
|
||||
@@ -861,7 +861,7 @@ public class ServerOAuth2AuthorizedClientExchangeFilterFunctionTests {
|
||||
.attributes(ServerOAuth2AuthorizedClientExchangeFilterFunction.clientRegistrationId(this.registration.getRegistrationId()))
|
||||
.build();
|
||||
this.function.filter(request, this.exchange)
|
||||
.subscriberContext(serverWebExchange())
|
||||
.contextWrite(serverWebExchange())
|
||||
.block();
|
||||
// @formatter:on
|
||||
verify(this.authorizedClientRepository).loadAuthorizedClient(eq(this.registration.getRegistrationId()), any(),
|
||||
|
||||
+1
-1
@@ -245,7 +245,7 @@ public class ServletOAuth2AuthorizedClientExchangeFilterFunctionITests {
|
||||
.retrieve()
|
||||
.bodyToMono(String.class)
|
||||
)
|
||||
.subscriberContext(context())
|
||||
.contextWrite(context())
|
||||
.block();
|
||||
// @formatter:on
|
||||
assertThat(this.server.getRequestCount()).isEqualTo(4);
|
||||
|
||||
+1
-2
@@ -657,8 +657,7 @@ public class ServletOAuth2AuthorizedClientExchangeFilterFunctionTests {
|
||||
final ClientRequest request2 = ClientRequest.create(HttpMethod.GET, URI.create("https://example2.com")).build();
|
||||
Context context = context(servletRequest, servletResponse, authentication);
|
||||
this.function.filter(request1, this.exchange)
|
||||
.flatMap((response) -> this.function.filter(request2, this.exchange)).subscriberContext(context)
|
||||
.block();
|
||||
.flatMap((response) -> this.function.filter(request2, this.exchange)).contextWrite(context).block();
|
||||
List<ClientRequest> requests = this.exchange.getRequests();
|
||||
assertThat(requests).hasSize(2);
|
||||
ClientRequest request = requests.get(0);
|
||||
|
||||
+2
-2
@@ -187,9 +187,9 @@ public class OAuth2AuthorizedClientArgumentResolverTests {
|
||||
|
||||
private Object resolveArgument(MethodParameter methodParameter) {
|
||||
return this.argumentResolver.resolveArgument(methodParameter, null, null)
|
||||
.subscriberContext((this.authentication != null)
|
||||
.contextWrite((this.authentication != null)
|
||||
? ReactiveSecurityContextHolder.withAuthentication(this.authentication) : Context.empty())
|
||||
.subscriberContext(serverWebExchange()).block();
|
||||
.contextWrite(serverWebExchange()).block();
|
||||
}
|
||||
|
||||
private Context serverWebExchange() {
|
||||
|
||||
+2
-1
@@ -73,7 +73,8 @@ public final class ServletBearerExchangeFilterFunction implements ExchangeFilter
|
||||
|
||||
private Mono<AbstractOAuth2Token> oauth2Token() {
|
||||
// @formatter:off
|
||||
return Mono.subscriberContext()
|
||||
return Mono.deferContextual(Mono::just)
|
||||
.cast(Context.class)
|
||||
.flatMap(this::currentAuthentication)
|
||||
.filter((authentication) -> authentication.getCredentials() instanceof AbstractOAuth2Token)
|
||||
.map(Authentication::getCredentials)
|
||||
|
||||
+3
-3
@@ -69,7 +69,7 @@ public class ServerBearerExchangeFilterFunctionTests {
|
||||
public void filterWhenAuthenticatedThenAuthorizationHeaderNull() throws Exception {
|
||||
ClientRequest request = ClientRequest.create(HttpMethod.GET, URI.create("https://example.com")).build();
|
||||
this.function.filter(request, this.exchange)
|
||||
.subscriberContext(ReactiveSecurityContextHolder.withAuthentication(this.authentication)).block();
|
||||
.contextWrite(ReactiveSecurityContextHolder.withAuthentication(this.authentication)).block();
|
||||
assertThat(this.exchange.getRequest().headers().getFirst(HttpHeaders.AUTHORIZATION))
|
||||
.isEqualTo("Bearer " + this.accessToken.getTokenValue());
|
||||
}
|
||||
@@ -80,7 +80,7 @@ public class ServerBearerExchangeFilterFunctionTests {
|
||||
ClientRequest request = ClientRequest.create(HttpMethod.GET, URI.create("https://example.com")).build();
|
||||
TestingAuthenticationToken token = new TestingAuthenticationToken("user", "pass");
|
||||
this.function.filter(request, this.exchange)
|
||||
.subscriberContext(ReactiveSecurityContextHolder.withAuthentication(token)).block();
|
||||
.contextWrite(ReactiveSecurityContextHolder.withAuthentication(token)).block();
|
||||
assertThat(this.exchange.getRequest().headers().getFirst(HttpHeaders.AUTHORIZATION)).isNull();
|
||||
}
|
||||
|
||||
@@ -89,7 +89,7 @@ public class ServerBearerExchangeFilterFunctionTests {
|
||||
ClientRequest request = ClientRequest.create(HttpMethod.GET, URI.create("https://example.com"))
|
||||
.header(HttpHeaders.AUTHORIZATION, "Existing").build();
|
||||
this.function.filter(request, this.exchange)
|
||||
.subscriberContext(ReactiveSecurityContextHolder.withAuthentication(this.authentication)).block();
|
||||
.contextWrite(ReactiveSecurityContextHolder.withAuthentication(this.authentication)).block();
|
||||
HttpHeaders headers = this.exchange.getRequest().headers();
|
||||
assertThat(headers.get(HttpHeaders.AUTHORIZATION)).containsOnly("Bearer " + this.accessToken.getTokenValue());
|
||||
}
|
||||
|
||||
+3
-3
@@ -74,14 +74,14 @@ public class ServletBearerExchangeFilterFunctionTests {
|
||||
public void filterWhenAuthenticatedWithOtherTokenThenAuthorizationHeaderNull() {
|
||||
TestingAuthenticationToken token = new TestingAuthenticationToken("user", "pass");
|
||||
ClientRequest request = ClientRequest.create(HttpMethod.GET, URI.create("https://example.com")).build();
|
||||
this.function.filter(request, this.exchange).subscriberContext(context(token)).block();
|
||||
this.function.filter(request, this.exchange).contextWrite(context(token)).block();
|
||||
assertThat(this.exchange.getRequest().headers().getFirst(HttpHeaders.AUTHORIZATION)).isNull();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void filterWhenAuthenticatedThenAuthorizationHeader() {
|
||||
ClientRequest request = ClientRequest.create(HttpMethod.GET, URI.create("https://example.com")).build();
|
||||
this.function.filter(request, this.exchange).subscriberContext(context(this.authentication)).block();
|
||||
this.function.filter(request, this.exchange).contextWrite(context(this.authentication)).block();
|
||||
assertThat(this.exchange.getRequest().headers().getFirst(HttpHeaders.AUTHORIZATION))
|
||||
.isEqualTo("Bearer " + this.accessToken.getTokenValue());
|
||||
}
|
||||
@@ -90,7 +90,7 @@ public class ServletBearerExchangeFilterFunctionTests {
|
||||
public void filterWhenExistingAuthorizationThenSingleAuthorizationHeader() {
|
||||
ClientRequest request = ClientRequest.create(HttpMethod.GET, URI.create("https://example.com"))
|
||||
.header(HttpHeaders.AUTHORIZATION, "Existing").build();
|
||||
this.function.filter(request, this.exchange).subscriberContext(context(this.authentication)).block();
|
||||
this.function.filter(request, this.exchange).contextWrite(context(this.authentication)).block();
|
||||
HttpHeaders headers = this.exchange.getRequest().headers();
|
||||
assertThat(headers.get(HttpHeaders.AUTHORIZATION)).containsOnly("Bearer " + this.accessToken.getTokenValue());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user