|
27 | 27 | import org.springframework.mock.http.server.reactive.MockServerHttpRequest;
|
28 | 28 | import org.springframework.mock.web.server.MockServerWebExchange;
|
29 | 29 | import org.springframework.security.oauth2.client.registration.ClientRegistration;
|
| 30 | +import org.springframework.security.oauth2.client.registration.ClientSettings; |
30 | 31 | import org.springframework.security.oauth2.client.registration.ReactiveClientRegistrationRepository;
|
31 | 32 | import org.springframework.security.oauth2.client.registration.TestClientRegistrations;
|
32 | 33 | import org.springframework.security.oauth2.client.web.OAuth2AuthorizationRequestCustomizers;
|
@@ -169,6 +170,20 @@ public void resolveWhenAuthorizationRequestApplyPkceToSpecificConfidentialClient
|
169 | 170 | assertPkceNotApplied(request, registration2);
|
170 | 171 | }
|
171 | 172 |
|
| 173 | + @Test |
| 174 | + void resolveWhenRequireProofKeyTrueThenPkceEnabled() { |
| 175 | + ClientSettings pkceEnabled = ClientSettings.builder().requireProofKey(true).build(); |
| 176 | + ClientRegistration clientWithPkceEnabled = TestClientRegistrations.clientRegistration() |
| 177 | + .clientSettings(pkceEnabled) |
| 178 | + .build(); |
| 179 | + given(this.clientRegistrationRepository.findByRegistrationId(any())) |
| 180 | + .willReturn(Mono.just(clientWithPkceEnabled)); |
| 181 | + |
| 182 | + OAuth2AuthorizationRequest request = resolve( |
| 183 | + "/oauth2/authorization/" + clientWithPkceEnabled.getRegistrationId()); |
| 184 | + assertPkceApplied(request, clientWithPkceEnabled); |
| 185 | + } |
| 186 | + |
172 | 187 | private void assertPkceApplied(OAuth2AuthorizationRequest authorizationRequest,
|
173 | 188 | ClientRegistration clientRegistration) {
|
174 | 189 | assertThat(authorizationRequest.getAdditionalParameters()).containsKey(PkceParameterNames.CODE_CHALLENGE);
|
|
0 commit comments