From b0e491b23f7122d713e8a82048e9899cc8ba7fdb Mon Sep 17 00:00:00 2001 From: Vinay Gera Date: Mon, 8 May 2023 09:37:30 -0700 Subject: [PATCH 1/5] revert the api name --- .../java/com/azure/identity/AadCredentialBuilderBase.java | 4 ++-- .../com/azure/identity/DefaultAzureCredentialBuilder.java | 4 ++-- .../com/azure/identity/implementation/IdentityClient.java | 2 +- .../azure/identity/implementation/IdentityClientBase.java | 4 ++-- .../identity/implementation/IdentityClientOptions.java | 8 ++++---- .../implementation/IdentityClientOptionsTest.java | 4 ++-- 6 files changed, 13 insertions(+), 13 deletions(-) diff --git a/sdk/identity/azure-identity/src/main/java/com/azure/identity/AadCredentialBuilderBase.java b/sdk/identity/azure-identity/src/main/java/com/azure/identity/AadCredentialBuilderBase.java index 686325890ac7..403ac0d19dcd 100644 --- a/sdk/identity/azure-identity/src/main/java/com/azure/identity/AadCredentialBuilderBase.java +++ b/sdk/identity/azure-identity/src/main/java/com/azure/identity/AadCredentialBuilderBase.java @@ -122,8 +122,8 @@ public T additionallyAllowedTenants(List additionallyAllowedTenants) { */ @SuppressWarnings("unchecked") - public T disableAuthorityValidationAndInstanceDiscovery() { - this.identityClientOptions.disableAuthorityValidationAndInstanceDiscovery(); + public T disableInstanceDiscovery() { + this.identityClientOptions.disableInstanceDiscovery(); return (T) this; } } diff --git a/sdk/identity/azure-identity/src/main/java/com/azure/identity/DefaultAzureCredentialBuilder.java b/sdk/identity/azure-identity/src/main/java/com/azure/identity/DefaultAzureCredentialBuilder.java index 7ec1a57c4b3c..74d7d8513a4d 100644 --- a/sdk/identity/azure-identity/src/main/java/com/azure/identity/DefaultAzureCredentialBuilder.java +++ b/sdk/identity/azure-identity/src/main/java/com/azure/identity/DefaultAzureCredentialBuilder.java @@ -240,8 +240,8 @@ public DefaultAzureCredentialBuilder credentialProcessTimeout(Duration credentia * * @return An updated instance of this builder with instance discovery disabled. */ - public DefaultAzureCredentialBuilder disableAuthorityValidationAndInstanceDiscovery() { - this.identityClientOptions.disableAuthorityValidationAndInstanceDiscovery(); + public DefaultAzureCredentialBuilder disableInstanceDiscovery() { + this.identityClientOptions.disableInstanceDiscovery(); return this; } diff --git a/sdk/identity/azure-identity/src/main/java/com/azure/identity/implementation/IdentityClient.java b/sdk/identity/azure-identity/src/main/java/com/azure/identity/implementation/IdentityClient.java index 8ce2ff9e8f07..3eaaba122bf6 100644 --- a/sdk/identity/azure-identity/src/main/java/com/azure/identity/implementation/IdentityClient.java +++ b/sdk/identity/azure-identity/src/main/java/com/azure/identity/implementation/IdentityClient.java @@ -219,7 +219,7 @@ public Mono authenticateWithIntelliJ(TokenRequestContext request) { ConfidentialClientApplication.builder(spDetails.get("client"), ClientCredentialFactory.createFromSecret(spDetails.get("key"))) .authority(authorityUrl) - .instanceDiscovery(options.getDisableAuthorityValidationAndInstanceDiscovery()); + .instanceDiscovery(options.getDisableInstanceDiscovery()); // If http pipeline is available, then it should override the proxy options if any configured. if (httpPipelineAdapter != null) { diff --git a/sdk/identity/azure-identity/src/main/java/com/azure/identity/implementation/IdentityClientBase.java b/sdk/identity/azure-identity/src/main/java/com/azure/identity/implementation/IdentityClientBase.java index 6214672d1c58..2fa697f36739 100644 --- a/sdk/identity/azure-identity/src/main/java/com/azure/identity/implementation/IdentityClientBase.java +++ b/sdk/identity/azure-identity/src/main/java/com/azure/identity/implementation/IdentityClientBase.java @@ -206,7 +206,7 @@ ConfidentialClientApplication getConfidentialClient() { ConfidentialClientApplication.Builder applicationBuilder = ConfidentialClientApplication.builder(clientId, credential); try { - applicationBuilder = applicationBuilder.authority(authorityUrl).instanceDiscovery(options.getDisableAuthorityValidationAndInstanceDiscovery()); + applicationBuilder = applicationBuilder.authority(authorityUrl).instanceDiscovery(options.getDisableInstanceDiscovery()); } catch (MalformedURLException e) { throw LOGGER.logExceptionAsWarning(new IllegalStateException(e)); } @@ -267,7 +267,7 @@ PublicClientApplication getPublicClient(boolean sharedTokenCacheCredential) { + tenantId; PublicClientApplication.Builder builder = PublicClientApplication.builder(clientId); try { - builder = builder.authority(authorityUrl).instanceDiscovery(options.getDisableAuthorityValidationAndInstanceDiscovery()); + builder = builder.authority(authorityUrl).instanceDiscovery(options.getDisableInstanceDiscovery()); } catch (MalformedURLException e) { throw LOGGER.logExceptionAsWarning(new IllegalStateException(e)); } diff --git a/sdk/identity/azure-identity/src/main/java/com/azure/identity/implementation/IdentityClientOptions.java b/sdk/identity/azure-identity/src/main/java/com/azure/identity/implementation/IdentityClientOptions.java index c05d7197dfd2..75e0a82b2789 100644 --- a/sdk/identity/azure-identity/src/main/java/com/azure/identity/implementation/IdentityClientOptions.java +++ b/sdk/identity/azure-identity/src/main/java/com/azure/identity/implementation/IdentityClientOptions.java @@ -665,7 +665,7 @@ IdentityClientOptions setPerRetryPolicies(List perRetryPolic * * @return the updated client options */ - public IdentityClientOptions disableAuthorityValidationAndInstanceDiscovery() { + public IdentityClientOptions disableInstanceDiscovery() { this.instanceDiscovery = false; return this; } @@ -674,7 +674,7 @@ public IdentityClientOptions disableAuthorityValidationAndInstanceDiscovery() { * Gets the instance discovery policy. * @return boolean indicating if instance discovery is enabled. */ - public boolean getDisableAuthorityValidationAndInstanceDiscovery() { + public boolean getDisableInstanceDiscovery() { return this.instanceDiscovery; } @@ -737,8 +737,8 @@ public IdentityClientOptions clone() { .setRetryPolicy(this.retryPolicy) .setPerCallPolicies(this.perCallPolicies) .setPerRetryPolicies(this.perRetryPolicies); - if (!getDisableAuthorityValidationAndInstanceDiscovery()) { - clone.disableAuthorityValidationAndInstanceDiscovery(); + if (!getDisableInstanceDiscovery()) { + clone.disableInstanceDiscovery(); } return clone; } diff --git a/sdk/identity/azure-identity/src/test/java/com/azure/identity/implementation/IdentityClientOptionsTest.java b/sdk/identity/azure-identity/src/test/java/com/azure/identity/implementation/IdentityClientOptionsTest.java index e8055c9230b9..9b7ba386e69e 100644 --- a/sdk/identity/azure-identity/src/test/java/com/azure/identity/implementation/IdentityClientOptionsTest.java +++ b/sdk/identity/azure-identity/src/test/java/com/azure/identity/implementation/IdentityClientOptionsTest.java @@ -39,7 +39,7 @@ public void testCustomAuthorityHost() { @Test public void testDisableAuthorityValidationAndInstanceDiscovery() { IdentityClientOptions identityClientOptions = new IdentityClientOptions(); - identityClientOptions.disableAuthorityValidationAndInstanceDiscovery(); - Assert.assertFalse(identityClientOptions.getDisableAuthorityValidationAndInstanceDiscovery()); + identityClientOptions.disableInstanceDiscovery(); + Assert.assertFalse(identityClientOptions.getDisableInstanceDiscovery()); } } From 2bc13eec52c6b7ed16883d5a14d56263fad49754 Mon Sep 17 00:00:00 2001 From: Vinay Gera Date: Mon, 8 May 2023 13:52:26 -0700 Subject: [PATCH 2/5] update changelog. --- sdk/identity/azure-identity/CHANGELOG.md | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/sdk/identity/azure-identity/CHANGELOG.md b/sdk/identity/azure-identity/CHANGELOG.md index 0419e6137ad9..3268f88b3da3 100644 --- a/sdk/identity/azure-identity/CHANGELOG.md +++ b/sdk/identity/azure-identity/CHANGELOG.md @@ -1,17 +1,13 @@ # Release History -## 1.9.0-beta.4 (Unreleased) - -### Features Added - -### Breaking Changes - -### Bugs Fixed +## 1.9.0 (2023-05-08) ### Other Changes -- renamed `disableInstanceDiscovery` to `disableAuthorityValidationAndInstanceDiscovery`. - renamed `DefaultAzureCredential.processTimeout` to `credentialProcessTimeout`. +#### Dependency Updates +- Upgraded `azure-core` from `1.38.0` to version `1.39.0`. + ## 1.8.3 (2023-05-01) ### Other Changes From 9f390882ad47b66302951e9d556d1c1ed818ab9a Mon Sep 17 00:00:00 2001 From: Vinay Gera Date: Mon, 8 May 2023 13:56:26 -0700 Subject: [PATCH 3/5] update changelog --- sdk/identity/azure-identity/CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/sdk/identity/azure-identity/CHANGELOG.md b/sdk/identity/azure-identity/CHANGELOG.md index 3268f88b3da3..689254418875 100644 --- a/sdk/identity/azure-identity/CHANGELOG.md +++ b/sdk/identity/azure-identity/CHANGELOG.md @@ -2,6 +2,12 @@ ## 1.9.0 (2023-05-08) +### Features Added + +#### Features Generally Available from v1.9.0-beta3 +- Added configurable timeout for developer credentials (Azure CLI, Azure Developer CLI) +- Added `WorkloadIdentityCredential` to authenticate using workload identity in Azure Kubernetes. + ### Other Changes - renamed `DefaultAzureCredential.processTimeout` to `credentialProcessTimeout`. From 60f9c74021b7bc869e95902cd20c7d7b8d590dd4 Mon Sep 17 00:00:00 2001 From: Vinay Gera Date: Mon, 8 May 2023 14:13:36 -0700 Subject: [PATCH 4/5] add log for disable Instance discovery --- .../implementation/IdentityClient.java | 2 +- .../implementation/IdentityClientBase.java | 26 ++++++++++++++++--- .../implementation/IdentityClientOptions.java | 4 +-- .../IdentityClientOptionsTest.java | 2 +- 4 files changed, 27 insertions(+), 7 deletions(-) diff --git a/sdk/identity/azure-identity/src/main/java/com/azure/identity/implementation/IdentityClient.java b/sdk/identity/azure-identity/src/main/java/com/azure/identity/implementation/IdentityClient.java index 2957c238487d..760ffbe5db63 100644 --- a/sdk/identity/azure-identity/src/main/java/com/azure/identity/implementation/IdentityClient.java +++ b/sdk/identity/azure-identity/src/main/java/com/azure/identity/implementation/IdentityClient.java @@ -235,7 +235,7 @@ public Mono authenticateWithIntelliJ(TokenRequestContext request) { ConfidentialClientApplication.builder(spDetails.get("client"), ClientCredentialFactory.createFromSecret(spDetails.get("key"))) .authority(authorityUrl) - .instanceDiscovery(options.getDisableInstanceDiscovery()); + .instanceDiscovery(options.isInstanceDiscoveryEnabled()); // If http pipeline is available, then it should override the proxy options if any configured. if (httpPipelineAdapter != null) { diff --git a/sdk/identity/azure-identity/src/main/java/com/azure/identity/implementation/IdentityClientBase.java b/sdk/identity/azure-identity/src/main/java/com/azure/identity/implementation/IdentityClientBase.java index 3f0e3dbfdddb..459ca76dfdfc 100644 --- a/sdk/identity/azure-identity/src/main/java/com/azure/identity/implementation/IdentityClientBase.java +++ b/sdk/identity/azure-identity/src/main/java/com/azure/identity/implementation/IdentityClientBase.java @@ -23,6 +23,7 @@ import com.azure.core.util.UserAgentUtil; import com.azure.core.util.builder.ClientBuilderUtil; import com.azure.core.util.logging.ClientLogger; +import com.azure.core.util.logging.LogLevel; import com.azure.core.util.serializer.JacksonAdapter; import com.azure.core.util.serializer.SerializerAdapter; import com.azure.core.util.serializer.SerializerEncoding; @@ -213,7 +214,13 @@ ConfidentialClientApplication getConfidentialClient() { ConfidentialClientApplication.Builder applicationBuilder = ConfidentialClientApplication.builder(clientId, credential); try { - applicationBuilder = applicationBuilder.authority(authorityUrl).instanceDiscovery(options.getDisableInstanceDiscovery()); + applicationBuilder = applicationBuilder.authority(authorityUrl).instanceDiscovery(options.isInstanceDiscoveryEnabled()); + + if (!options.isInstanceDiscoveryEnabled()) { + LOGGER.log(LogLevel.VERBOSE, () -> "Instance discovery and authority validation is disabled. In this" + + " state, the library will not fetch metadata to validate the specified authority host. As a" + + " result, it is crucial to ensure that the configured authority host is valid and trustworthy."); + } } catch (MalformedURLException e) { throw LOGGER.logExceptionAsWarning(new IllegalStateException(e)); } @@ -268,7 +275,13 @@ PublicClientApplication getPublicClient(boolean sharedTokenCacheCredential) { + tenantId; PublicClientApplication.Builder builder = PublicClientApplication.builder(clientId); try { - builder = builder.authority(authorityUrl).instanceDiscovery(options.getDisableInstanceDiscovery()); + builder = builder.authority(authorityUrl).instanceDiscovery(options.isInstanceDiscoveryEnabled()); + + if (!options.isInstanceDiscoveryEnabled()) { + LOGGER.log(LogLevel.VERBOSE, () -> "Instance discovery and authority validation is disabled. In this" + + " state, the library will not fetch metadata to validate the specified authority host. As a" + + " result, it is crucial to ensure that the configured authority host is valid and trustworthy."); + } } catch (MalformedURLException e) { throw LOGGER.logExceptionAsWarning(new IllegalStateException(e)); } @@ -376,7 +389,14 @@ ConfidentialClientApplication getWorkloadIdentityConfidentialClient() { : clientId, credential); try { - applicationBuilder = applicationBuilder.authority(authorityUrl).instanceDiscovery(options.getDisableAuthorityValidationAndInstanceDiscovery()); + applicationBuilder = applicationBuilder.authority(authorityUrl).instanceDiscovery(options.isInstanceDiscoveryEnabled()); + + if (!options.isInstanceDiscoveryEnabled()) { + LOGGER.log(LogLevel.VERBOSE, () -> "Instance discovery and authority validation is disabled. In this" + + " state, the library will not fetch metadata to validate the specified authority host. As a" + + " result, it is crucial to ensure that the configured authority host is valid and trustworthy."); + } + } catch (MalformedURLException e) { throw LOGGER.logExceptionAsWarning(new IllegalStateException(e)); } diff --git a/sdk/identity/azure-identity/src/main/java/com/azure/identity/implementation/IdentityClientOptions.java b/sdk/identity/azure-identity/src/main/java/com/azure/identity/implementation/IdentityClientOptions.java index 75e0a82b2789..c3519ecc3188 100644 --- a/sdk/identity/azure-identity/src/main/java/com/azure/identity/implementation/IdentityClientOptions.java +++ b/sdk/identity/azure-identity/src/main/java/com/azure/identity/implementation/IdentityClientOptions.java @@ -674,7 +674,7 @@ public IdentityClientOptions disableInstanceDiscovery() { * Gets the instance discovery policy. * @return boolean indicating if instance discovery is enabled. */ - public boolean getDisableInstanceDiscovery() { + public boolean isInstanceDiscoveryEnabled() { return this.instanceDiscovery; } @@ -737,7 +737,7 @@ public IdentityClientOptions clone() { .setRetryPolicy(this.retryPolicy) .setPerCallPolicies(this.perCallPolicies) .setPerRetryPolicies(this.perRetryPolicies); - if (!getDisableInstanceDiscovery()) { + if (!isInstanceDiscoveryEnabled()) { clone.disableInstanceDiscovery(); } return clone; diff --git a/sdk/identity/azure-identity/src/test/java/com/azure/identity/implementation/IdentityClientOptionsTest.java b/sdk/identity/azure-identity/src/test/java/com/azure/identity/implementation/IdentityClientOptionsTest.java index 9b7ba386e69e..3c34b7e4ad3d 100644 --- a/sdk/identity/azure-identity/src/test/java/com/azure/identity/implementation/IdentityClientOptionsTest.java +++ b/sdk/identity/azure-identity/src/test/java/com/azure/identity/implementation/IdentityClientOptionsTest.java @@ -40,6 +40,6 @@ public void testCustomAuthorityHost() { public void testDisableAuthorityValidationAndInstanceDiscovery() { IdentityClientOptions identityClientOptions = new IdentityClientOptions(); identityClientOptions.disableInstanceDiscovery(); - Assert.assertFalse(identityClientOptions.getDisableInstanceDiscovery()); + Assert.assertFalse(identityClientOptions.isInstanceDiscoveryEnabled()); } } From 6a41800bc7fcc009f1d171c124615e9bdf73fe24 Mon Sep 17 00:00:00 2001 From: Vinay Gera Date: Mon, 8 May 2023 14:44:10 -0700 Subject: [PATCH 5/5] update identity pom versions --- eng/jacoco-test-coverage/pom.xml | 2 +- eng/versioning/version_client.txt | 2 +- sdk/e2e/pom.xml | 2 +- sdk/identity/azure-identity-perf/pom.xml | 2 +- sdk/identity/azure-identity/README.md | 2 +- sdk/identity/azure-identity/pom.xml | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/jacoco-test-coverage/pom.xml b/eng/jacoco-test-coverage/pom.xml index 719120b82e34..5ecad264dd96 100644 --- a/eng/jacoco-test-coverage/pom.xml +++ b/eng/jacoco-test-coverage/pom.xml @@ -213,7 +213,7 @@ com.azure azure-identity - 1.9.0-beta.4 + 1.9.0 com.azure diff --git a/eng/versioning/version_client.txt b/eng/versioning/version_client.txt index c434d9a91d5a..130eceba31b0 100644 --- a/eng/versioning/version_client.txt +++ b/eng/versioning/version_client.txt @@ -113,7 +113,7 @@ com.azure:azure-developer-devcenter;1.0.0-beta.2;1.0.0-beta.3 com.azure:azure-e2e;1.0.0-beta.1;1.0.0-beta.1 com.azure:azure-health-insights-clinicalmatching;1.0.0-beta.1;1.0.0-beta.2 com.azure:azure-health-insights-cancerprofiling;1.0.0-beta.1;1.0.0-beta.2 -com.azure:azure-identity;1.8.3;1.9.0-beta.4 +com.azure:azure-identity;1.8.3;1.9.0 com.azure:azure-identity-perf;1.0.0-beta.1;1.0.0-beta.1 com.azure:azure-iot-deviceupdate;1.0.6;1.1.0-beta.1 com.azure:azure-iot-modelsrepository;1.0.0-beta.1;1.0.0-beta.2 diff --git a/sdk/e2e/pom.xml b/sdk/e2e/pom.xml index c499d242fc91..caa2989926c7 100644 --- a/sdk/e2e/pom.xml +++ b/sdk/e2e/pom.xml @@ -39,7 +39,7 @@ com.azure azure-identity - 1.9.0-beta.4 + 1.9.0 com.azure diff --git a/sdk/identity/azure-identity-perf/pom.xml b/sdk/identity/azure-identity-perf/pom.xml index d272ddddc34d..68b5e929d08b 100644 --- a/sdk/identity/azure-identity-perf/pom.xml +++ b/sdk/identity/azure-identity-perf/pom.xml @@ -25,7 +25,7 @@ com.azure azure-identity - 1.9.0-beta.4 + 1.9.0 com.azure diff --git a/sdk/identity/azure-identity/README.md b/sdk/identity/azure-identity/README.md index 5a45c010ebe8..9cbaad413c75 100644 --- a/sdk/identity/azure-identity/README.md +++ b/sdk/identity/azure-identity/README.md @@ -46,7 +46,7 @@ To take dependency on a particular version of the library that isn't present in com.azure azure-identity - 1.8.2 + 1.9.0 ``` [//]: # ({x-version-update-end}) diff --git a/sdk/identity/azure-identity/pom.xml b/sdk/identity/azure-identity/pom.xml index 27ae2fcd005f..754e7af5b547 100644 --- a/sdk/identity/azure-identity/pom.xml +++ b/sdk/identity/azure-identity/pom.xml @@ -6,7 +6,7 @@ com.azure azure-identity - 1.9.0-beta.4 + 1.9.0 Microsoft Azure client library for Identity This module contains client library for Microsoft Azure Identity.