From 2c0c09b9a61d1b7f4627cf5c13c0f5d8639172ea Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 17 Aug 2026 03:15:42 +0000 Subject: [PATCH 1/5] Bump ch.qos.logback:logback-classic from 1.6.1 to 1.6.2 Bumps [ch.qos.logback:logback-classic](https://github.com/qos-ch/logback) from 1.6.1 to 1.6.2. - [Release notes](https://github.com/qos-ch/logback/releases) - [Commits](https://github.com/qos-ch/logback/compare/v_1.6.1...v_1.6.2) --- updated-dependencies: - dependency-name: ch.qos.logback:logback-classic dependency-version: 1.6.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 143919c7d7..a891c62776 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -18,7 +18,7 @@ org-springframework = "7.0.8" com-password4j = "1.8.4" [libraries] -ch-qos-logback-logback-classic = "ch.qos.logback:logback-classic:1.6.1" +ch-qos-logback-logback-classic = "ch.qos.logback:logback-classic:1.6.2" com-fasterxml-jackson-jackson-bom = "com.fasterxml.jackson:jackson-bom:2.22.1" com-google-inject-guice = "com.google.inject:guice:3.0" com-netflix-nebula-nebula-project-plugin = "com.netflix.nebula:nebula-project-plugin:8.2.0" From 7f219ea530030a7d132d047fce21d443026af3cb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 18 Aug 2026 03:09:07 +0000 Subject: [PATCH 2/5] Bump ch.qos.logback:logback-classic from 1.6.2 to 1.6.3 Bumps [ch.qos.logback:logback-classic](https://github.com/qos-ch/logback) from 1.6.2 to 1.6.3. - [Release notes](https://github.com/qos-ch/logback/releases) - [Commits](https://github.com/qos-ch/logback/compare/v_1.6.2...v_1.6.3) --- updated-dependencies: - dependency-name: ch.qos.logback:logback-classic dependency-version: 1.6.3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index a891c62776..848ea30469 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -18,7 +18,7 @@ org-springframework = "7.0.8" com-password4j = "1.8.4" [libraries] -ch-qos-logback-logback-classic = "ch.qos.logback:logback-classic:1.6.2" +ch-qos-logback-logback-classic = "ch.qos.logback:logback-classic:1.6.3" com-fasterxml-jackson-jackson-bom = "com.fasterxml.jackson:jackson-bom:2.22.1" com-google-inject-guice = "com.google.inject:guice:3.0" com-netflix-nebula-nebula-project-plugin = "com.netflix.nebula:nebula-project-plugin:8.2.0" From 3cf0867955954080bb5afc71bdfaa5c435aac74a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 18 Aug 2026 03:08:09 +0000 Subject: [PATCH 3/5] Bump tools.jackson:jackson-bom from 3.2.1 to 3.2.2 Bumps [tools.jackson:jackson-bom](https://github.com/FasterXML/jackson-bom) from 3.2.1 to 3.2.2. - [Commits](https://github.com/FasterXML/jackson-bom/compare/jackson-bom-3.2.1...jackson-bom-3.2.2) --- updated-dependencies: - dependency-name: tools.jackson:jackson-bom dependency-version: 3.2.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 848ea30469..a86e54a89b 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -89,7 +89,7 @@ org-springframework-data-spring-data-bom = "org.springframework.data:spring-data org-springframework-ldap-spring-ldap-core = "org.springframework.ldap:spring-ldap-core:4.1.0" org-springframework-spring-framework-bom = { module = "org.springframework:spring-framework-bom", version.ref = "org-springframework" } org-synchronoss-cloud-nio-multipart-parser = "org.synchronoss.cloud:nio-multipart-parser:1.1.0" -tools-jackson-jackson-bom = "tools.jackson:jackson-bom:3.2.1" +tools-jackson-jackson-bom = "tools.jackson:jackson-bom:3.2.2" com-google-code-gson-gson = "com.google.code.gson:gson:2.14.0" com-thaiopensource-trag = "com.thaiopensource:trang:20091111" From d90714f07d422b6e0cbe94164d59ad7cfbcff795 Mon Sep 17 00:00:00 2001 From: Peter Phillips <5099053+petergphillips@users.noreply.github.com> Date: Fri, 12 Jun 2026 11:59:17 +0100 Subject: [PATCH 4/5] Fix to allow null servlet request/response in ServletOAuth2AuthorizedClientExchangeFilterFunction Issue gh-17819 Closes gh-19421 Signed-off-by: Peter Phillips <5099053+petergphillips@users.noreply.github.com> --- ...uthorizedClientExchangeFilterFunction.java | 10 +-- ...zedClientExchangeFilterFunctionITests.java | 63 +++++++++++++++++++ ...izedClientExchangeFilterFunctionTests.java | 40 ++++++++++++ 3 files changed, 105 insertions(+), 8 deletions(-) diff --git a/oauth2/oauth2-client/src/main/java/org/springframework/security/oauth2/client/web/reactive/function/client/ServletOAuth2AuthorizedClientExchangeFilterFunction.java b/oauth2/oauth2-client/src/main/java/org/springframework/security/oauth2/client/web/reactive/function/client/ServletOAuth2AuthorizedClientExchangeFilterFunction.java index 129d90dd51..f0e1f62fde 100644 --- a/oauth2/oauth2-client/src/main/java/org/springframework/security/oauth2/client/web/reactive/function/client/ServletOAuth2AuthorizedClientExchangeFilterFunction.java +++ b/oauth2/oauth2-client/src/main/java/org/springframework/security/oauth2/client/web/reactive/function/client/ServletOAuth2AuthorizedClientExchangeFilterFunction.java @@ -511,9 +511,6 @@ public final class ServletOAuth2AuthorizedClientExchangeFilterFunction implement } HttpServletRequest servletRequest = getRequest(attrs); HttpServletResponse servletResponse = getResponse(attrs); - if (servletRequest == null || servletResponse == null) { - return Mono.empty(); - } OAuth2AuthorizeRequest.Builder builder = OAuth2AuthorizeRequest.withClientRegistrationId(clientRegistrationId) .principal(authentication); builder.attributes((attributes) -> addToAttributes(attributes, servletRequest, servletResponse)); @@ -538,9 +535,6 @@ public final class ServletOAuth2AuthorizedClientExchangeFilterFunction implement } HttpServletRequest servletRequest = getRequest(attrs); HttpServletResponse servletResponse = getResponse(attrs); - if (servletRequest == null || servletResponse == null) { - return Mono.just(authorizedClient); - } OAuth2AuthorizeRequest.Builder builder = OAuth2AuthorizeRequest.withAuthorizedClient(authorizedClient) .principal(authentication); builder.attributes((attributes) -> addToAttributes(attributes, servletRequest, servletResponse)); @@ -552,8 +546,8 @@ public final class ServletOAuth2AuthorizedClientExchangeFilterFunction implement .subscribeOn(Schedulers.boundedElastic()); } - private void addToAttributes(Map attributes, HttpServletRequest servletRequest, - HttpServletResponse servletResponse) { + private void addToAttributes(Map attributes, @Nullable HttpServletRequest servletRequest, + @Nullable HttpServletResponse servletResponse) { if (servletRequest != null) { attributes.put(HTTP_SERVLET_REQUEST_ATTR_NAME, servletRequest); } diff --git a/oauth2/oauth2-client/src/test/java/org/springframework/security/oauth2/client/web/reactive/function/client/ServletOAuth2AuthorizedClientExchangeFilterFunctionITests.java b/oauth2/oauth2-client/src/test/java/org/springframework/security/oauth2/client/web/reactive/function/client/ServletOAuth2AuthorizedClientExchangeFilterFunctionITests.java index 56458af6db..e8995b4048 100644 --- a/oauth2/oauth2-client/src/test/java/org/springframework/security/oauth2/client/web/reactive/function/client/ServletOAuth2AuthorizedClientExchangeFilterFunctionITests.java +++ b/oauth2/oauth2-client/src/test/java/org/springframework/security/oauth2/client/web/reactive/function/client/ServletOAuth2AuthorizedClientExchangeFilterFunctionITests.java @@ -40,8 +40,10 @@ import org.springframework.mock.web.MockHttpServletResponse; import org.springframework.security.authentication.TestingAuthenticationToken; import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.security.oauth2.client.AuthorizedClientServiceOAuth2AuthorizedClientManager; import org.springframework.security.oauth2.client.InMemoryOAuth2AuthorizedClientService; import org.springframework.security.oauth2.client.OAuth2AuthorizedClient; +import org.springframework.security.oauth2.client.OAuth2AuthorizedClientService; import org.springframework.security.oauth2.client.registration.ClientRegistration; import org.springframework.security.oauth2.client.registration.ClientRegistrationRepository; import org.springframework.security.oauth2.client.registration.TestClientRegistrations; @@ -166,6 +168,67 @@ public class ServletOAuth2AuthorizedClientExchangeFilterFunctionITests { assertThat(authorizedClientCaptor.getValue().getClientRegistration()).isSameAs(clientRegistration); } + @Test + public void requestWhenNoServletRequestThenAuthorizeAndSendRequest() { + RequestContextHolder.resetRequestAttributes(); + InMemoryOAuth2AuthorizedClientService delegate = new InMemoryOAuth2AuthorizedClientService( + this.clientRegistrationRepository); + OAuth2AuthorizedClientService clientService = spy(new OAuth2AuthorizedClientService() { + @Override + public T loadAuthorizedClient(String clientRegistrationId, + String principal) { + return delegate.loadAuthorizedClient(clientRegistrationId, principal); + } + + @Override + public void saveAuthorizedClient(OAuth2AuthorizedClient authorizedClient, Authentication principal) { + delegate.saveAuthorizedClient(authorizedClient, principal); + } + + @Override + public void removeAuthorizedClient(String clientRegistrationId, String principal) { + delegate.removeAuthorizedClient(clientRegistrationId, principal); + } + }); + this.authorizedClientFilter = new ServletOAuth2AuthorizedClientExchangeFilterFunction( + new AuthorizedClientServiceOAuth2AuthorizedClientManager(this.clientRegistrationRepository, + clientService)); + this.webClient = WebClient.builder().apply(this.authorizedClientFilter.oauth2Configuration()).build(); + + // @formatter:off + String accessTokenResponse = "{\n" + + " \"access_token\": \"access-token-1234\",\n" + + " \"token_type\": \"bearer\",\n" + + " \"expires_in\": \"3600\",\n" + + " \"scope\": \"read write\"\n" + + "}\n"; + String clientResponse = "{\n" + + " \"attribute1\": \"value1\",\n" + + " \"attribute2\": \"value2\"\n" + + "}\n"; + // @formatter:on + this.server.enqueue(jsonResponse(accessTokenResponse)); + this.server.enqueue(jsonResponse(clientResponse)); + ClientRegistration clientRegistration = TestClientRegistrations.clientCredentials() + .tokenUri(this.serverUrl) + .build(); + given(this.clientRegistrationRepository.findByRegistrationId(eq(clientRegistration.getRegistrationId()))) + .willReturn(clientRegistration); + + this.webClient.get() + .uri(this.serverUrl) + .attributes(ServletOAuth2AuthorizedClientExchangeFilterFunction + .clientRegistrationId(clientRegistration.getRegistrationId())) + .retrieve() + .bodyToMono(String.class) + .block(); + assertThat(this.server.getRequestCount()).isEqualTo(2); + ArgumentCaptor authorizedClientCaptor = ArgumentCaptor + .forClass(OAuth2AuthorizedClient.class); + verify(clientService).saveAuthorizedClient(authorizedClientCaptor.capture(), eq(this.authentication)); + assertThat(authorizedClientCaptor.getValue().getClientRegistration()).isSameAs(clientRegistration); + } + @Test public void requestWhenAuthorizedButExpiredThenRefreshAndSendRequest() { // @formatter:off diff --git a/oauth2/oauth2-client/src/test/java/org/springframework/security/oauth2/client/web/reactive/function/client/ServletOAuth2AuthorizedClientExchangeFilterFunctionTests.java b/oauth2/oauth2-client/src/test/java/org/springframework/security/oauth2/client/web/reactive/function/client/ServletOAuth2AuthorizedClientExchangeFilterFunctionTests.java index 423705420c..71157f36f8 100644 --- a/oauth2/oauth2-client/src/test/java/org/springframework/security/oauth2/client/web/reactive/function/client/ServletOAuth2AuthorizedClientExchangeFilterFunctionTests.java +++ b/oauth2/oauth2-client/src/test/java/org/springframework/security/oauth2/client/web/reactive/function/client/ServletOAuth2AuthorizedClientExchangeFilterFunctionTests.java @@ -38,6 +38,8 @@ import org.mockito.ArgumentCaptor; import org.mockito.Captor; import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; +import org.springframework.security.oauth2.client.AuthorizedClientServiceOAuth2AuthorizedClientManager; +import org.springframework.security.oauth2.client.OAuth2AuthorizedClientService; import reactor.core.publisher.Mono; import reactor.util.context.Context; @@ -134,6 +136,9 @@ public class ServletOAuth2AuthorizedClientExchangeFilterFunctionTests { @Mock private OAuth2AuthorizedClientRepository authorizedClientRepository; + @Mock + private OAuth2AuthorizedClientService oAuth2AuthorizedClientService; + @Mock private ClientRegistrationRepository clientRegistrationRepository; @@ -661,6 +666,41 @@ public class ServletOAuth2AuthorizedClientExchangeFilterFunctionTests { authentication, servletRequest); } + @Test + public void filterWhenServletRequestNullClientRegistrationIdFromAuthenticationAndCustomPrincipalResolverThenAuthorizedClientResolved() { + this.function = new ServletOAuth2AuthorizedClientExchangeFilterFunction( + new AuthorizedClientServiceOAuth2AuthorizedClientManager(this.clientRegistrationRepository, + oAuth2AuthorizedClientService)); + this.function.setDefaultOAuth2AuthorizedClient(true); + OAuth2User user = mock(OAuth2User.class); + List authorities = AuthorityUtils.createAuthorityList("ROLE_USER"); + OAuth2AuthenticationToken initialAuthentication = new OAuth2AuthenticationToken(user, authorities, + "initial-registration-id"); + OAuth2AuthenticationToken authentication = new OAuth2AuthenticationToken(user, authorities, + this.registration.getRegistrationId()); + OAuth2AuthorizedClient authorizedClient = new OAuth2AuthorizedClient(this.registration, "principalName", + this.accessToken); + given(this.clientRegistrationRepository.findByRegistrationId(any())).willReturn(this.registration); + given(this.oAuth2AuthorizedClientService.loadAuthorizedClient(this.registration.getRegistrationId(), + initialAuthentication.getName())) + .willReturn(authorizedClient); + final ClientRequest clientRequest = ClientRequest.create(HttpMethod.GET, URI.create("https://example.com")) + .build(); + this.function.setPrincipalResolver((request) -> authentication); + this.function.filter(clientRequest, this.exchange) + .contextWrite(context(null, null, initialAuthentication)) + .block(); + List requests = this.exchange.getRequests(); + assertThat(requests).hasSize(1); + ClientRequest request = requests.get(0); + assertThat(request.headers().getFirst(HttpHeaders.AUTHORIZATION)).isEqualTo("Bearer token-0"); + assertThat(request.url().toASCIIString()).isEqualTo("https://example.com"); + assertThat(request.method()).isEqualTo(HttpMethod.GET); + assertThat(getBody(request)).isEmpty(); + verify(this.oAuth2AuthorizedClientService).loadAuthorizedClient(this.registration.getRegistrationId(), + authentication.getName()); + } + @Test public void filterWhenUnauthorizedThenInvokeFailureHandler() { assertHttpStatusInvokesFailureHandler(HttpStatus.UNAUTHORIZED, OAuth2ErrorCodes.INVALID_TOKEN); From 7491e37310bffb82c9742d5cf3c7c11e21e631bc Mon Sep 17 00:00:00 2001 From: Joe Grandja <10884212+jgrandja@users.noreply.github.com> Date: Tue, 18 Aug 2026 12:07:21 -0400 Subject: [PATCH 5/5] Polish gh-19421 --- ...izedClientExchangeFilterFunctionITests.java | 10 +++++----- ...rizedClientExchangeFilterFunctionTests.java | 18 ++++++++++-------- 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/oauth2/oauth2-client/src/test/java/org/springframework/security/oauth2/client/web/reactive/function/client/ServletOAuth2AuthorizedClientExchangeFilterFunctionITests.java b/oauth2/oauth2-client/src/test/java/org/springframework/security/oauth2/client/web/reactive/function/client/ServletOAuth2AuthorizedClientExchangeFilterFunctionITests.java index e8995b4048..2dbf9afdf6 100644 --- a/oauth2/oauth2-client/src/test/java/org/springframework/security/oauth2/client/web/reactive/function/client/ServletOAuth2AuthorizedClientExchangeFilterFunctionITests.java +++ b/oauth2/oauth2-client/src/test/java/org/springframework/security/oauth2/client/web/reactive/function/client/ServletOAuth2AuthorizedClientExchangeFilterFunctionITests.java @@ -168,12 +168,13 @@ public class ServletOAuth2AuthorizedClientExchangeFilterFunctionITests { assertThat(authorizedClientCaptor.getValue().getClientRegistration()).isSameAs(clientRegistration); } + // gh-19421 @Test public void requestWhenNoServletRequestThenAuthorizeAndSendRequest() { RequestContextHolder.resetRequestAttributes(); - InMemoryOAuth2AuthorizedClientService delegate = new InMemoryOAuth2AuthorizedClientService( + final OAuth2AuthorizedClientService delegate = new InMemoryOAuth2AuthorizedClientService( this.clientRegistrationRepository); - OAuth2AuthorizedClientService clientService = spy(new OAuth2AuthorizedClientService() { + OAuth2AuthorizedClientService authorizedClientService = spy(new OAuth2AuthorizedClientService() { @Override public T loadAuthorizedClient(String clientRegistrationId, String principal) { @@ -192,7 +193,7 @@ public class ServletOAuth2AuthorizedClientExchangeFilterFunctionITests { }); this.authorizedClientFilter = new ServletOAuth2AuthorizedClientExchangeFilterFunction( new AuthorizedClientServiceOAuth2AuthorizedClientManager(this.clientRegistrationRepository, - clientService)); + authorizedClientService)); this.webClient = WebClient.builder().apply(this.authorizedClientFilter.oauth2Configuration()).build(); // @formatter:off @@ -214,7 +215,6 @@ public class ServletOAuth2AuthorizedClientExchangeFilterFunctionITests { .build(); given(this.clientRegistrationRepository.findByRegistrationId(eq(clientRegistration.getRegistrationId()))) .willReturn(clientRegistration); - this.webClient.get() .uri(this.serverUrl) .attributes(ServletOAuth2AuthorizedClientExchangeFilterFunction @@ -225,7 +225,7 @@ public class ServletOAuth2AuthorizedClientExchangeFilterFunctionITests { assertThat(this.server.getRequestCount()).isEqualTo(2); ArgumentCaptor authorizedClientCaptor = ArgumentCaptor .forClass(OAuth2AuthorizedClient.class); - verify(clientService).saveAuthorizedClient(authorizedClientCaptor.capture(), eq(this.authentication)); + verify(authorizedClientService).saveAuthorizedClient(authorizedClientCaptor.capture(), eq(this.authentication)); assertThat(authorizedClientCaptor.getValue().getClientRegistration()).isSameAs(clientRegistration); } diff --git a/oauth2/oauth2-client/src/test/java/org/springframework/security/oauth2/client/web/reactive/function/client/ServletOAuth2AuthorizedClientExchangeFilterFunctionTests.java b/oauth2/oauth2-client/src/test/java/org/springframework/security/oauth2/client/web/reactive/function/client/ServletOAuth2AuthorizedClientExchangeFilterFunctionTests.java index 71157f36f8..ee74ec1c00 100644 --- a/oauth2/oauth2-client/src/test/java/org/springframework/security/oauth2/client/web/reactive/function/client/ServletOAuth2AuthorizedClientExchangeFilterFunctionTests.java +++ b/oauth2/oauth2-client/src/test/java/org/springframework/security/oauth2/client/web/reactive/function/client/ServletOAuth2AuthorizedClientExchangeFilterFunctionTests.java @@ -38,8 +38,6 @@ import org.mockito.ArgumentCaptor; import org.mockito.Captor; import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; -import org.springframework.security.oauth2.client.AuthorizedClientServiceOAuth2AuthorizedClientManager; -import org.springframework.security.oauth2.client.OAuth2AuthorizedClientService; import reactor.core.publisher.Mono; import reactor.util.context.Context; @@ -69,12 +67,14 @@ import org.springframework.security.core.authority.AuthorityUtils; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.core.context.SecurityContextHolderStrategy; import org.springframework.security.core.context.SecurityContextImpl; +import org.springframework.security.oauth2.client.AuthorizedClientServiceOAuth2AuthorizedClientManager; import org.springframework.security.oauth2.client.ClientAuthorizationException; import org.springframework.security.oauth2.client.JwtBearerOAuth2AuthorizedClientProvider; import org.springframework.security.oauth2.client.OAuth2AuthorizationFailureHandler; import org.springframework.security.oauth2.client.OAuth2AuthorizedClient; import org.springframework.security.oauth2.client.OAuth2AuthorizedClientProvider; import org.springframework.security.oauth2.client.OAuth2AuthorizedClientProviderBuilder; +import org.springframework.security.oauth2.client.OAuth2AuthorizedClientService; import org.springframework.security.oauth2.client.RefreshTokenOAuth2AuthorizedClientProvider; import org.springframework.security.oauth2.client.authentication.OAuth2AuthenticationToken; import org.springframework.security.oauth2.client.endpoint.JwtBearerGrantRequest; @@ -137,7 +137,7 @@ public class ServletOAuth2AuthorizedClientExchangeFilterFunctionTests { private OAuth2AuthorizedClientRepository authorizedClientRepository; @Mock - private OAuth2AuthorizedClientService oAuth2AuthorizedClientService; + private OAuth2AuthorizedClientService authorizedClientService; @Mock private ClientRegistrationRepository clientRegistrationRepository; @@ -666,11 +666,12 @@ public class ServletOAuth2AuthorizedClientExchangeFilterFunctionTests { authentication, servletRequest); } + // gh-19421 @Test - public void filterWhenServletRequestNullClientRegistrationIdFromAuthenticationAndCustomPrincipalResolverThenAuthorizedClientResolved() { + public void filterWhenServletRequestNullAndClientRegistrationIdFromAuthenticationAndCustomPrincipalResolverThenAuthorizedClientResolved() { this.function = new ServletOAuth2AuthorizedClientExchangeFilterFunction( new AuthorizedClientServiceOAuth2AuthorizedClientManager(this.clientRegistrationRepository, - oAuth2AuthorizedClientService)); + this.authorizedClientService)); this.function.setDefaultOAuth2AuthorizedClient(true); OAuth2User user = mock(OAuth2User.class); List authorities = AuthorityUtils.createAuthorityList("ROLE_USER"); @@ -680,8 +681,9 @@ public class ServletOAuth2AuthorizedClientExchangeFilterFunctionTests { this.registration.getRegistrationId()); OAuth2AuthorizedClient authorizedClient = new OAuth2AuthorizedClient(this.registration, "principalName", this.accessToken); - given(this.clientRegistrationRepository.findByRegistrationId(any())).willReturn(this.registration); - given(this.oAuth2AuthorizedClientService.loadAuthorizedClient(this.registration.getRegistrationId(), + given(this.clientRegistrationRepository.findByRegistrationId(this.registration.getRegistrationId())) + .willReturn(this.registration); + given(this.authorizedClientService.loadAuthorizedClient(this.registration.getRegistrationId(), initialAuthentication.getName())) .willReturn(authorizedClient); final ClientRequest clientRequest = ClientRequest.create(HttpMethod.GET, URI.create("https://example.com")) @@ -697,7 +699,7 @@ public class ServletOAuth2AuthorizedClientExchangeFilterFunctionTests { assertThat(request.url().toASCIIString()).isEqualTo("https://example.com"); assertThat(request.method()).isEqualTo(HttpMethod.GET); assertThat(getBody(request)).isEmpty(); - verify(this.oAuth2AuthorizedClientService).loadAuthorizedClient(this.registration.getRegistrationId(), + verify(this.authorizedClientService).loadAuthorizedClient(this.registration.getRegistrationId(), authentication.getName()); }