-
Notifications
You must be signed in to change notification settings - Fork 8
Description
[ojdbc-extension] [Azure Vault Config Provider] if vault secret name is empty, the exception is not useful.
For example jdbc:oracle:thin:@config-azurevault://jdbc-qa-vault.vault.azure.net/secrets/?AUTHENTICATION=AZURE_SERVICE_PRINCIPAL
throws
{code:java}
Exception in thread "main" java.lang.IllegalStateException: Request failed with parameters: AZURE_CLIENT_SECRET=[OMITTED], AZURE_CLIENT_CERTIFICATE_PATH=null, key=, AZURE_CLIENT_CERTIFICATE_PASSWORD=[OMITTED], AZURE_CLIENT_ID=a7520bd6-0728-48c0-b494-92b29b7a7062, AUTHENTICATION=SERVICE_PRINCIPLE, value=https://jdbc-qa-vault.vault.azure.net/, value=/, AZURE_REDIRECT_URL=null, AZURE_TENANT_ID=5b743bc7-c1e2-4d46-b4b5-a32eddac0286
at oracle.jdbc.provider.azure.AzureResourceFactory.request(AzureResourceFactory.java:77)
at oracle.jdbc.provider.cache.CachedResourceFactory.lambda$request$0(CachedResourceFactory.java:177)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at oracle.jdbc.provider.cache.CachedResourceFactory.request(CachedResourceFactory.java:197)
at oracle.jdbc.provider.azure.configuration.AzureVaultJsonProvider.getInputStream(AzureVaultJsonProvider.java:97)
at oracle.jdbc.driver.configuration.OracleConfigurationParsableProvider.retrieveProperties(OracleConfigurationParsableProvider.java:183)
at oracle.jdbc.driver.configuration.OracleConfigurationParsableProvider.getConnectionProperties(OracleConfigurationParsableProvider.java:142)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:778)
at oracle.jdbc.datasource.impl.OracleDataSource.getPhysicalConnection(OracleDataSource.java:703)
at oracle.jdbc.datasource.impl.OracleDataSource.getConnection(OracleDataSource.java:377)
at oracle.jdbc.datasource.impl.OracleDataSource.getConnectionInternal(OracleDataSource.java:2192)
at oracle.jdbc.datasource.impl.OracleDataSource.getConnection(OracleDataSource.java:350)
at oracle.jdbc.datasource.impl.OracleDataSource.getConnection(OracleDataSource.java:311)
at oracle.jdbc.provider.azure.configuration.AzureVaultJSONProviderConnection.main(AzureVaultJSONProviderConnection.java:99)
Caused by: com.azure.core.exception.HttpResponseException: Deserialization Failed.
at com.azure.core.implementation.serializer.HttpResponseBodyDecoder.decodeByteArray(HttpResponseBodyDecoder.java:99)
at com.azure.core.implementation.serializer.HttpResponseDecoder$HttpDecodedResponse.getDecodedBody(HttpResponseDecoder.java:93)
at com.azure.core.implementation.http.rest.SyncRestProxy.handleBodyReturnType(SyncRestProxy.java:193)
at com.azure.core.implementation.http.rest.SyncRestProxy.handleRestResponseReturnType(SyncRestProxy.java:148)
at com.azure.core.implementation.http.rest.SyncRestProxy.handleRestReturnType(SyncRestProxy.java:221)
at com.azure.core.implementation.http.rest.SyncRestProxy.invoke(SyncRestProxy.java:86)
at com.azure.core.implementation.http.rest.RestProxyBase.invoke(RestProxyBase.java:124)
at com.azure.core.http.rest.RestProxy.invoke(RestProxy.java:95)
at com.sun.proxy.$Proxy17.getSecretSync(Unknown Source)
at com.azure.security.keyvault.secrets.implementation.SecretClientImpl.getSecretWithResponse(SecretClientImpl.java:936)
at com.azure.security.keyvault.secrets.SecretClient.lambda$getSecretWithResponse$1(SecretClient.java:360)
at com.azure.security.keyvault.secrets.SecretClient.callWithMappedException(SecretClient.java:1027)
at com.azure.security.keyvault.secrets.SecretClient.getSecretWithResponse(SecretClient.java:359)
at com.azure.security.keyvault.secrets.SecretClient.getSecret(SecretClient.java:296)
at oracle.jdbc.provider.azure.keyvault.KeyVaultSecretFactory.request(KeyVaultSecretFactory.java:100)
at oracle.jdbc.provider.azure.AzureResourceFactory.request(AzureResourceFactory.java:74)
... 13 more
Caused by: java.io.IOException: java.lang.IllegalStateException: Unexpected token to begin object deserialization: FIELD_NAME
at com.azure.core.implementation.ReflectionSerializable.deserializeAsJsonSerializable(ReflectionSerializable.java:164)
at com.azure.core.implementation.serializer.HttpResponseBodyDecoder.deserialize(HttpResponseBodyDecoder.java:169)
at com.azure.core.implementation.serializer.HttpResponseBodyDecoder.deserializeBody(HttpResponseBodyDecoder.java:150)
at com.azure.core.implementation.serializer.HttpResponseBodyDecoder.decodeByteArray(HttpResponseBodyDecoder.java:93)
... 28 more