|
@@ -1,5 +1,5 @@
|
|
|
/*
|
|
|
- * Copyright 2002-2021 the original author or authors.
|
|
|
+ * Copyright 2002-2020 the original author or authors.
|
|
|
*
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
* you may not use this file except in compliance with the License.
|
|
@@ -16,10 +16,6 @@
|
|
|
|
|
|
package org.springframework.security.oauth2.client.endpoint;
|
|
|
|
|
|
-import java.net.URLEncoder;
|
|
|
-import java.nio.charset.StandardCharsets;
|
|
|
-import java.util.Base64;
|
|
|
-
|
|
|
import okhttp3.mockwebserver.MockResponse;
|
|
|
import okhttp3.mockwebserver.MockWebServer;
|
|
|
import okhttp3.mockwebserver.RecordedRequest;
|
|
@@ -93,35 +89,6 @@ public class WebClientReactiveClientCredentialsTokenResponseClientTests {
|
|
|
assertThat(body).isEqualTo("grant_type=client_credentials&scope=read%3Auser");
|
|
|
}
|
|
|
|
|
|
- // gh-9610
|
|
|
- @Test
|
|
|
- public void getTokenResponseWhenSpecialCharactersThenSuccessWithEncodedClientCredentials() throws Exception {
|
|
|
- // @formatter:off
|
|
|
- enqueueJson("{\n"
|
|
|
- + " \"access_token\":\"MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3\",\n"
|
|
|
- + " \"token_type\":\"bearer\",\n"
|
|
|
- + " \"expires_in\":3600,\n"
|
|
|
- + " \"refresh_token\":\"IwOGYzYTlmM2YxOTQ5MGE3YmNmMDFkNTVk\",\n"
|
|
|
- + " \"scope\":\"create\"\n"
|
|
|
- + "}");
|
|
|
- // @formatter:on
|
|
|
- String clientCredentialWithAnsiKeyboardSpecialCharacters = "~!@#$%^&*()_+{}|:\"<>?`-=[]\\;',./ ";
|
|
|
- OAuth2ClientCredentialsGrantRequest request = new OAuth2ClientCredentialsGrantRequest(
|
|
|
- this.clientRegistration.clientId(clientCredentialWithAnsiKeyboardSpecialCharacters)
|
|
|
- .clientSecret(clientCredentialWithAnsiKeyboardSpecialCharacters).build());
|
|
|
- OAuth2AccessTokenResponse response = this.client.getTokenResponse(request).block();
|
|
|
- RecordedRequest actualRequest = this.server.takeRequest();
|
|
|
- String body = actualRequest.getBody().readUtf8();
|
|
|
- assertThat(response.getAccessToken()).isNotNull();
|
|
|
- String urlEncodedClientCredentialecret = URLEncoder.encode(clientCredentialWithAnsiKeyboardSpecialCharacters,
|
|
|
- StandardCharsets.UTF_8.toString());
|
|
|
- String clientCredentials = Base64.getEncoder()
|
|
|
- .encodeToString((urlEncodedClientCredentialecret + ":" + urlEncodedClientCredentialecret)
|
|
|
- .getBytes(StandardCharsets.UTF_8));
|
|
|
- assertThat(actualRequest.getHeader(HttpHeaders.AUTHORIZATION)).isEqualTo("Basic " + clientCredentials);
|
|
|
- assertThat(body).isEqualTo("grant_type=client_credentials&scope=read%3Auser");
|
|
|
- }
|
|
|
-
|
|
|
@Test
|
|
|
public void getTokenResponseWhenPostThenSuccess() throws Exception {
|
|
|
ClientRegistration registration = this.clientRegistration
|