|
@@ -27,6 +27,7 @@ import org.springframework.http.HttpStatus;
|
|
|
import org.springframework.mock.http.server.reactive.MockServerHttpRequest;
|
|
|
import org.springframework.mock.web.server.MockServerWebExchange;
|
|
|
import org.springframework.security.oauth2.client.registration.ClientRegistration;
|
|
|
+import org.springframework.security.oauth2.client.registration.ClientSettings;
|
|
|
import org.springframework.security.oauth2.client.registration.ReactiveClientRegistrationRepository;
|
|
|
import org.springframework.security.oauth2.client.registration.TestClientRegistrations;
|
|
|
import org.springframework.security.oauth2.client.web.OAuth2AuthorizationRequestCustomizers;
|
|
@@ -169,6 +170,20 @@ public class DefaultServerOAuth2AuthorizationRequestResolverTests {
|
|
|
assertPkceNotApplied(request, registration2);
|
|
|
}
|
|
|
|
|
|
+ @Test
|
|
|
+ void resolveWhenRequireProofKeyTrueThenPkceEnabled() {
|
|
|
+ ClientSettings pkceEnabled = ClientSettings.builder().requireProofKey(true).build();
|
|
|
+ ClientRegistration clientWithPkceEnabled = TestClientRegistrations.clientRegistration()
|
|
|
+ .clientSettings(pkceEnabled)
|
|
|
+ .build();
|
|
|
+ given(this.clientRegistrationRepository.findByRegistrationId(any()))
|
|
|
+ .willReturn(Mono.just(clientWithPkceEnabled));
|
|
|
+
|
|
|
+ OAuth2AuthorizationRequest request = resolve(
|
|
|
+ "/oauth2/authorization/" + clientWithPkceEnabled.getRegistrationId());
|
|
|
+ assertPkceApplied(request, clientWithPkceEnabled);
|
|
|
+ }
|
|
|
+
|
|
|
private void assertPkceApplied(OAuth2AuthorizationRequest authorizationRequest,
|
|
|
ClientRegistration clientRegistration) {
|
|
|
assertThat(authorizationRequest.getAdditionalParameters()).containsKey(PkceParameterNames.CODE_CHALLENGE);
|