|
@@ -64,6 +64,7 @@ import org.springframework.security.oauth2.client.registration.InMemoryReactiveC
|
|
import org.springframework.security.oauth2.client.registration.ReactiveClientRegistrationRepository;
|
|
import org.springframework.security.oauth2.client.registration.ReactiveClientRegistrationRepository;
|
|
import org.springframework.security.oauth2.client.registration.TestClientRegistrations;
|
|
import org.springframework.security.oauth2.client.registration.TestClientRegistrations;
|
|
import org.springframework.security.oauth2.client.userinfo.ReactiveOAuth2UserService;
|
|
import org.springframework.security.oauth2.client.userinfo.ReactiveOAuth2UserService;
|
|
|
|
+import org.springframework.security.oauth2.client.web.server.DefaultServerOAuth2AuthorizationRequestResolver;
|
|
import org.springframework.security.oauth2.client.web.server.ServerAuthorizationRequestRepository;
|
|
import org.springframework.security.oauth2.client.web.server.ServerAuthorizationRequestRepository;
|
|
import org.springframework.security.oauth2.client.web.server.ServerOAuth2AuthorizationRequestResolver;
|
|
import org.springframework.security.oauth2.client.web.server.ServerOAuth2AuthorizationRequestResolver;
|
|
import org.springframework.security.oauth2.client.web.server.ServerOAuth2AuthorizedClientRepository;
|
|
import org.springframework.security.oauth2.client.web.server.ServerOAuth2AuthorizedClientRepository;
|
|
@@ -457,6 +458,7 @@ public class OAuth2LoginTests {
|
|
OidcUser user = TestOidcUsers.create();
|
|
OidcUser user = TestOidcUsers.create();
|
|
ReactiveOAuth2UserService<OidcUserRequest, OidcUser> userService = config.userService;
|
|
ReactiveOAuth2UserService<OidcUserRequest, OidcUser> userService = config.userService;
|
|
given(userService.loadUser(any())).willReturn(Mono.just(user));
|
|
given(userService.loadUser(any())).willReturn(Mono.just(user));
|
|
|
|
+ ServerOAuth2AuthorizationRequestResolver resolver = config.resolver;
|
|
// @formatter:off
|
|
// @formatter:off
|
|
webTestClient.get()
|
|
webTestClient.get()
|
|
.uri("/login/oauth2/code/google")
|
|
.uri("/login/oauth2/code/google")
|
|
@@ -466,6 +468,7 @@ public class OAuth2LoginTests {
|
|
verify(config.jwtDecoderFactory).createDecoder(any());
|
|
verify(config.jwtDecoderFactory).createDecoder(any());
|
|
verify(tokenResponseClient).getTokenResponse(any());
|
|
verify(tokenResponseClient).getTokenResponse(any());
|
|
verify(securityContextRepository).save(any(), any());
|
|
verify(securityContextRepository).save(any(), any());
|
|
|
|
+ verify(resolver).resolve(any());
|
|
}
|
|
}
|
|
|
|
|
|
// gh-5562
|
|
// gh-5562
|
|
@@ -837,6 +840,10 @@ public class OAuth2LoginTests {
|
|
|
|
|
|
ServerSecurityContextRepository securityContextRepository = mock(ServerSecurityContextRepository.class);
|
|
ServerSecurityContextRepository securityContextRepository = mock(ServerSecurityContextRepository.class);
|
|
|
|
|
|
|
|
+ ServerOAuth2AuthorizationRequestResolver resolver = spy(
|
|
|
|
+ new DefaultServerOAuth2AuthorizationRequestResolver(new InMemoryReactiveClientRegistrationRepository(
|
|
|
|
+ TestClientRegistrations.clientRegistration().build())));
|
|
|
|
+
|
|
@Bean
|
|
@Bean
|
|
SecurityWebFilterChain springSecurityFilter(ServerHttpSecurity http) {
|
|
SecurityWebFilterChain springSecurityFilter(ServerHttpSecurity http) {
|
|
// @formatter:off
|
|
// @formatter:off
|
|
@@ -864,6 +871,11 @@ public class OAuth2LoginTests {
|
|
return this.jwtDecoderFactory;
|
|
return this.jwtDecoderFactory;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @Bean
|
|
|
|
+ ServerOAuth2AuthorizationRequestResolver resolver() {
|
|
|
|
+ return this.resolver;
|
|
|
|
+ }
|
|
|
|
+
|
|
@Bean
|
|
@Bean
|
|
ReactiveOAuth2AccessTokenResponseClient<OAuth2AuthorizationCodeGrantRequest> accessTokenResponseClient() {
|
|
ReactiveOAuth2AccessTokenResponseClient<OAuth2AuthorizationCodeGrantRequest> accessTokenResponseClient() {
|
|
return this.tokenResponseClient;
|
|
return this.tokenResponseClient;
|