diff --git a/sdk/keyvault/azure-security-keyvault-jca/src/main/java/com/azure/security/keyvault/jca/implementation/utils/AccessTokenUtil.java b/sdk/keyvault/azure-security-keyvault-jca/src/main/java/com/azure/security/keyvault/jca/implementation/utils/AccessTokenUtil.java index 4c48dbe41ba4..959f2c73b7bf 100644 --- a/sdk/keyvault/azure-security-keyvault-jca/src/main/java/com/azure/security/keyvault/jca/implementation/utils/AccessTokenUtil.java +++ b/sdk/keyvault/azure-security-keyvault-jca/src/main/java/com/azure/security/keyvault/jca/implementation/utils/AccessTokenUtil.java @@ -6,6 +6,9 @@ import static java.util.logging.Level.INFO; import com.azure.security.keyvault.jca.implementation.model.AccessToken; + +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; import java.util.HashMap; import java.util.logging.Logger; @@ -98,10 +101,14 @@ public static AccessToken getAccessToken(String resource, String aadAuthenticati .append(OAUTH2_TOKEN_POSTFIX); StringBuilder requestBody = new StringBuilder(); - requestBody.append(GRANT_TYPE_FRAGMENT) - .append(CLIENT_ID_FRAGMENT).append(clientId) - .append(CLIENT_SECRET_FRAGMENT).append(clientSecret) - .append(RESOURCE_FRAGMENT).append(resource); + try { + requestBody.append(GRANT_TYPE_FRAGMENT) + .append(CLIENT_ID_FRAGMENT).append(clientId) + .append(CLIENT_SECRET_FRAGMENT).append(URLEncoder.encode(clientSecret, "UTF-8")) + .append(RESOURCE_FRAGMENT).append(resource); + } catch (UnsupportedEncodingException e) { + LOGGER.warning("Failed to construct requestBody"); + } String body = HttpUtil .post(oauth2Url.toString(), requestBody.toString(), "application/x-www-form-urlencoded"); diff --git a/sdk/keyvault/azure-security-keyvault-jca/src/test/java/com/azure/security/keyvault/jca/AccessTokenUtilTest.java b/sdk/keyvault/azure-security-keyvault-jca/src/test/java/com/azure/security/keyvault/jca/AccessTokenUtilTest.java index fa45b51e2924..3be4b46e3532 100644 --- a/sdk/keyvault/azure-security-keyvault-jca/src/test/java/com/azure/security/keyvault/jca/AccessTokenUtilTest.java +++ b/sdk/keyvault/azure-security-keyvault-jca/src/test/java/com/azure/security/keyvault/jca/AccessTokenUtilTest.java @@ -8,8 +8,6 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; -import java.net.URLEncoder; - import static org.junit.jupiter.api.Assertions.assertNotNull; /** @@ -20,11 +18,9 @@ public class AccessTokenUtilTest { /** * Test getAuthorizationToken method. - * - * @throws Exception when a serious error occurs. */ @Test - public void testGetAuthorizationToken() throws Exception { + public void testGetAuthorizationToken() { String tenantId = PropertyConvertorUtils.getPropertyValue("AZURE_KEYVAULT_TENANT_ID"); String clientId = PropertyConvertorUtils.getPropertyValue("AZURE_KEYVAULT_CLIENT_ID"); String clientSecret = PropertyConvertorUtils.getPropertyValue("AZURE_KEYVAULT_CLIENT_SECRET"); @@ -37,7 +33,7 @@ public void testGetAuthorizationToken() throws Exception { aadAuthenticationUrl, tenantId, clientId, - URLEncoder.encode(clientSecret, "UTF-8") + clientSecret ); assertNotNull(result); }