diff --git a/pom.xml b/pom.xml index 2c1916a..e54fa16 100644 --- a/pom.xml +++ b/pom.xml @@ -40,6 +40,11 @@ slf4j-simple test + + com.azure + azure-identity + 1.2.2 + diff --git a/src/main/java/com/azure/cosmos/springexamples/quickstart/sync/SampleAppConfiguration.java b/src/main/java/com/azure/cosmos/springexamples/quickstart/sync/SampleAppConfiguration.java index eb2f89e..abc1139 100644 --- a/src/main/java/com/azure/cosmos/springexamples/quickstart/sync/SampleAppConfiguration.java +++ b/src/main/java/com/azure/cosmos/springexamples/quickstart/sync/SampleAppConfiguration.java @@ -4,6 +4,8 @@ import com.azure.cosmos.CosmosClientBuilder; import com.azure.cosmos.DirectConnectionConfig; +import com.azure.identity.DefaultAzureCredential; +import com.azure.identity.DefaultAzureCredentialBuilder; import com.azure.spring.data.cosmos.config.AbstractCosmosConfiguration; import com.azure.spring.data.cosmos.config.CosmosConfig; import com.azure.spring.data.cosmos.core.ResponseDiagnostics; @@ -33,10 +35,15 @@ public class SampleAppConfiguration extends AbstractCosmosConfiguration { @Bean public CosmosClientBuilder cosmosClientBuilder() { DirectConnectionConfig directConnectionConfig = DirectConnectionConfig.getDefaultConfig(); + // DefaultAzureCredential uses environment variables as explained in the below link to build corresponding + // credential. For example setting the environment variables AZURE_CLIENT_ID, AZURE_USERNAME, AZURE_PASSWORD + // will create a UsernamePasswordCredential. Read the link below for further info + // https://docs.microsoft.com/en-us/java/api/overview/azure/identity-readme?view=azure-java-stable#service-principal-with-secret + DefaultAzureCredential credential = new DefaultAzureCredentialBuilder().build(); return new CosmosClientBuilder() - .endpoint(properties.getUri()) - .key(properties.getKey()) - .directMode(directConnectionConfig); + .endpoint(properties.getUri()) + .credential(credential) + .directMode(directConnectionConfig); } @Bean diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index c4362c8..54565bf 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,5 +1,5 @@ cosmos.uri=${ACCOUNT_HOST} -cosmos.key=${ACCOUNT_KEY} +# cosmos.key=${ACCOUNT_KEY} -- Not necessary when using Azure identity credentials cosmos.secondaryKey=${SECONDARY_ACCOUNT_KEY} dynamic.collection.name=spel-property-collection