From aefc5e598fd8d96631ea302e0dff8ad1f5a37899 Mon Sep 17 00:00:00 2001 From: Moary Chen Date: Fri, 23 Feb 2024 10:22:15 +0800 Subject: [PATCH 1/5] update version, add logs --- eng/jacoco-test-coverage/pom.xml | 46 ++++---- eng/versioning/version_client.txt | 102 +++++++++--------- .../spring-cloud-azure-dependencies/pom.xml | 2 +- .../DefaultTokenCredentialProvider.java | 5 + .../provider/TokenCredentialProviders.java | 6 +- .../template/AzureAuthenticationTemplate.java | 11 +- .../token/AccessTokenResolverImpl.java | 4 + .../AzurePostgresqlAuthenticationPlugin.java | 7 +- sdk/parents/azure-client-sdk-parent/pom.xml | 8 +- sdk/spring/pom.xml | 2 - .../pom.xml | 6 +- .../spring-cloud-azure-actuator/pom.xml | 2 +- .../pom.xml | 4 +- .../pom.xml | 2 +- .../spring-cloud-azure-autoconfigure/pom.xml | 16 +-- ...AzureTokenCredentialAutoConfiguration.java | 7 ++ .../jdbc/JdbcPropertiesBeanPostProcessor.java | 13 ++- sdk/spring/spring-cloud-azure-core/pom.xml | 2 +- .../DefaultAzureCredentialBuilderFactory.java | 4 + .../pom.xml | 4 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 28 ++--- .../pom.xml | 4 +- sdk/spring/spring-cloud-azure-service/pom.xml | 4 +- .../SpringTokenCredentialProvider.java | 7 +- .../pom.xml | 4 +- .../pom.xml | 4 +- .../pom.xml | 6 +- .../pom.xml | 2 +- .../pom.xml | 4 +- .../spring-cloud-azure-starter-cosmos/pom.xml | 4 +- .../pom.xml | 4 +- .../pom.xml | 4 +- .../pom.xml | 4 +- .../pom.xml | 6 +- .../pom.xml | 6 +- .../pom.xml | 6 +- .../pom.xml | 4 +- .../pom.xml | 4 +- .../pom.xml | 4 +- .../pom.xml | 4 +- .../pom.xml | 6 +- .../spring-cloud-azure-starter-redis/pom.xml | 4 +- .../pom.xml | 4 +- .../pom.xml | 4 +- .../pom.xml | 4 +- .../pom.xml | 4 +- .../pom.xml | 4 +- .../pom.xml | 8 +- .../pom.xml | 4 +- .../pom.xml | 4 +- sdk/spring/spring-cloud-azure-starter/pom.xml | 4 +- .../pom.xml | 4 +- .../pom.xml | 8 +- .../pom.xml | 4 +- .../pom.xml | 8 +- .../spring-cloud-azure-trace-sleuth/pom.xml | 4 +- .../spring-integration-azure-core/pom.xml | 4 +- .../pom.xml | 8 +- .../pom.xml | 10 +- .../pom.xml | 6 +- .../spring-messaging-azure-eventhubs/pom.xml | 6 +- .../spring-messaging-azure-servicebus/pom.xml | 6 +- .../pom.xml | 6 +- sdk/spring/spring-messaging-azure/pom.xml | 4 +- 66 files changed, 275 insertions(+), 223 deletions(-) diff --git a/eng/jacoco-test-coverage/pom.xml b/eng/jacoco-test-coverage/pom.xml index c12626402fc3..32ec7f1f1ca3 100644 --- a/eng/jacoco-test-coverage/pom.xml +++ b/eng/jacoco-test-coverage/pom.xml @@ -465,117 +465,117 @@ com.azure.spring spring-cloud-azure-core - 4.11.0-beta.1 + 4.11.0 com.azure.spring spring-cloud-azure-resourcemanager - 4.11.0-beta.1 + 4.11.0 com.azure.spring spring-messaging-azure - 4.11.0-beta.1 + 4.11.0 com.azure.spring spring-messaging-azure-eventhubs - 4.11.0-beta.1 + 4.11.0 com.azure.spring spring-messaging-azure-servicebus - 4.11.0-beta.1 + 4.11.0 com.azure.spring spring-messaging-azure-storage-queue - 4.11.0-beta.1 + 4.11.0 com.azure.spring spring-integration-azure-core - 4.11.0-beta.1 + 4.11.0 com.azure.spring spring-integration-azure-eventhubs - 4.11.0-beta.1 + 4.11.0 com.azure.spring spring-integration-azure-servicebus - 4.11.0-beta.1 + 4.11.0 com.azure.spring spring-integration-azure-storage-queue - 4.11.0-beta.1 + 4.11.0 com.azure.spring spring-cloud-azure-autoconfigure - 4.11.0-beta.1 + 4.11.0 com.azure.spring spring-cloud-azure-stream-binder-servicebus-core - 4.11.0-beta.1 + 4.11.0 com.azure.spring spring-cloud-azure-stream-binder-servicebus - 4.11.0-beta.1 + 4.11.0 com.azure.spring spring-cloud-azure-stream-binder-eventhubs - 4.11.0-beta.1 + 4.11.0 com.azure.spring spring-cloud-azure-stream-binder-eventhubs-core - 4.11.0-beta.1 + 4.11.0 com.azure.spring spring-cloud-azure-service - 4.11.0-beta.1 + 4.11.0 com.azure.spring spring-cloud-azure-trace-sleuth - 4.11.0-beta.1 + 4.11.0 com.azure.spring spring-cloud-azure-actuator - 4.11.0-beta.1 + 4.11.0 com.azure.spring spring-cloud-azure-actuator-autoconfigure - 4.11.0-beta.1 + 4.11.0 com.azure.spring spring-cloud-azure-appconfiguration-config - 4.11.0-beta.1 + 4.11.0 com.azure.spring spring-cloud-azure-appconfiguration-config-web - 4.11.0-beta.1 + 4.11.0 com.azure.spring spring-cloud-azure-feature-management - 4.11.0-beta.1 + 4.11.0 com.azure.spring spring-cloud-azure-feature-management-web - 4.11.0-beta.1 + 4.11.0 com.azure diff --git a/eng/versioning/version_client.txt b/eng/versioning/version_client.txt index 0aa32fd041d7..e918b1b9fb24 100644 --- a/eng/versioning/version_client.txt +++ b/eng/versioning/version_client.txt @@ -190,58 +190,58 @@ com.azure:azure-identity-extensions;1.1.6;1.1.7 com.azure:azure-analytics-purview-sharing;1.0.0-beta.2;1.0.0-beta.3 com.azure.spring:azure-monitor-spring-native;1.0.0-beta.1;1.0.0-beta.1 com.azure.spring:azure-monitor-spring-native-test;1.0.0-beta.1;1.0.0-beta.1 -com.azure.spring:spring-cloud-azure-appconfiguration-config-web;4.10.0;4.11.0-beta.1 -com.azure.spring:spring-cloud-azure-appconfiguration-config;4.10.0;4.11.0-beta.1 -com.azure.spring:spring-cloud-azure-feature-management-web;4.10.0;4.11.0-beta.1 -com.azure.spring:spring-cloud-azure-feature-management;4.10.0;4.11.0-beta.1 -com.azure.spring:spring-cloud-azure-starter-appconfiguration-config;4.10.0;4.11.0-beta.1 -com.azure.spring:spring-cloud-azure-dependencies;4.10.0;4.11.0-beta.1 -com.azure.spring:spring-messaging-azure;4.10.0;4.11.0-beta.1 -com.azure.spring:spring-messaging-azure-eventhubs;4.10.0;4.11.0-beta.1 -com.azure.spring:spring-messaging-azure-servicebus;4.10.0;4.11.0-beta.1 -com.azure.spring:spring-messaging-azure-storage-queue;4.10.0;4.11.0-beta.1 -com.azure.spring:spring-integration-azure-core;4.10.0;4.11.0-beta.1 -com.azure.spring:spring-integration-azure-eventhubs;4.10.0;4.11.0-beta.1 -com.azure.spring:spring-integration-azure-servicebus;4.10.0;4.11.0-beta.1 -com.azure.spring:spring-integration-azure-storage-queue;4.10.0;4.11.0-beta.1 -com.azure.spring:spring-cloud-azure-core;4.10.0;4.11.0-beta.1 -com.azure.spring:spring-cloud-azure-actuator-autoconfigure;4.10.0;4.11.0-beta.1 -com.azure.spring:spring-cloud-azure-actuator;4.10.0;4.11.0-beta.1 -com.azure.spring:spring-cloud-azure-autoconfigure;4.10.0;4.11.0-beta.1 -com.azure.spring:spring-cloud-azure-resourcemanager;4.10.0;4.11.0-beta.1 -com.azure.spring:spring-cloud-azure-service;4.10.0;4.11.0-beta.1 -com.azure.spring:spring-cloud-azure-starter-active-directory;4.10.0;4.11.0-beta.1 -com.azure.spring:spring-cloud-azure-starter-active-directory-b2c;4.10.0;4.11.0-beta.1 -com.azure.spring:spring-cloud-azure-starter-actuator;4.10.0;4.11.0-beta.1 -com.azure.spring:spring-cloud-azure-starter-appconfiguration;4.10.0;4.11.0-beta.1 -com.azure.spring:spring-cloud-azure-starter-cosmos;4.10.0;4.11.0-beta.1 -com.azure.spring:spring-cloud-azure-starter-data-cosmos;4.10.0;4.11.0-beta.1 -com.azure.spring:spring-cloud-azure-starter-eventhubs;4.10.0;4.11.0-beta.1 -com.azure.spring:spring-cloud-azure-starter-eventgrid;4.10.0;4.11.0-beta.1 -com.azure.spring:spring-cloud-azure-starter-jdbc-mysql;4.10.0;4.11.0-beta.1 -com.azure.spring:spring-cloud-azure-starter-jdbc-postgresql;4.10.0;4.11.0-beta.1 -com.azure.spring:spring-cloud-azure-starter-redis;4.10.0;4.11.0-beta.1 -com.azure.spring:spring-cloud-azure-starter-keyvault;4.10.0;4.11.0-beta.1 -com.azure.spring:spring-cloud-azure-starter-keyvault-certificates;4.10.0;4.11.0-beta.1 -com.azure.spring:spring-cloud-azure-starter-keyvault-secrets;4.10.0;4.11.0-beta.1 +com.azure.spring:spring-cloud-azure-appconfiguration-config-web;4.10.0;4.11.0 +com.azure.spring:spring-cloud-azure-appconfiguration-config;4.10.0;4.11.0 +com.azure.spring:spring-cloud-azure-feature-management-web;4.10.0;4.11.0 +com.azure.spring:spring-cloud-azure-feature-management;4.10.0;4.11.0 +com.azure.spring:spring-cloud-azure-starter-appconfiguration-config;4.10.0;4.11.0 +com.azure.spring:spring-cloud-azure-dependencies;4.10.0;4.11.0 +com.azure.spring:spring-messaging-azure;4.10.0;4.11.0 +com.azure.spring:spring-messaging-azure-eventhubs;4.10.0;4.11.0 +com.azure.spring:spring-messaging-azure-servicebus;4.10.0;4.11.0 +com.azure.spring:spring-messaging-azure-storage-queue;4.10.0;4.11.0 +com.azure.spring:spring-integration-azure-core;4.10.0;4.11.0 +com.azure.spring:spring-integration-azure-eventhubs;4.10.0;4.11.0 +com.azure.spring:spring-integration-azure-servicebus;4.10.0;4.11.0 +com.azure.spring:spring-integration-azure-storage-queue;4.10.0;4.11.0 +com.azure.spring:spring-cloud-azure-core;4.10.0;4.11.0 +com.azure.spring:spring-cloud-azure-actuator-autoconfigure;4.10.0;4.11.0 +com.azure.spring:spring-cloud-azure-actuator;4.10.0;4.11.0 +com.azure.spring:spring-cloud-azure-autoconfigure;4.10.0;4.11.0 +com.azure.spring:spring-cloud-azure-resourcemanager;4.10.0;4.11.0 +com.azure.spring:spring-cloud-azure-service;4.10.0;4.11.0 +com.azure.spring:spring-cloud-azure-starter-active-directory;4.10.0;4.11.0 +com.azure.spring:spring-cloud-azure-starter-active-directory-b2c;4.10.0;4.11.0 +com.azure.spring:spring-cloud-azure-starter-actuator;4.10.0;4.11.0 +com.azure.spring:spring-cloud-azure-starter-appconfiguration;4.10.0;4.11.0 +com.azure.spring:spring-cloud-azure-starter-cosmos;4.10.0;4.11.0 +com.azure.spring:spring-cloud-azure-starter-data-cosmos;4.10.0;4.11.0 +com.azure.spring:spring-cloud-azure-starter-eventhubs;4.10.0;4.11.0 +com.azure.spring:spring-cloud-azure-starter-eventgrid;4.10.0;4.11.0 +com.azure.spring:spring-cloud-azure-starter-jdbc-mysql;4.10.0;4.11.0 +com.azure.spring:spring-cloud-azure-starter-jdbc-postgresql;4.10.0;4.11.0 +com.azure.spring:spring-cloud-azure-starter-redis;4.10.0;4.11.0 +com.azure.spring:spring-cloud-azure-starter-keyvault;4.10.0;4.11.0 +com.azure.spring:spring-cloud-azure-starter-keyvault-certificates;4.10.0;4.11.0 +com.azure.spring:spring-cloud-azure-starter-keyvault-secrets;4.10.0;4.11.0 com.azure.spring:spring-cloud-azure-starter-monitor;1.0.0-beta.1;1.0.0-beta.1 -com.azure.spring:spring-cloud-azure-starter-servicebus-jms;4.10.0;4.11.0-beta.1 -com.azure.spring:spring-cloud-azure-starter-servicebus;4.10.0;4.11.0-beta.1 -com.azure.spring:spring-cloud-azure-starter-storage;4.10.0;4.11.0-beta.1 -com.azure.spring:spring-cloud-azure-starter-storage-blob;4.10.0;4.11.0-beta.1 -com.azure.spring:spring-cloud-azure-starter-storage-file-share;4.10.0;4.11.0-beta.1 -com.azure.spring:spring-cloud-azure-starter-storage-queue;4.10.0;4.11.0-beta.1 -com.azure.spring:spring-cloud-azure-starter-integration-eventhubs;4.10.0;4.11.0-beta.1 -com.azure.spring:spring-cloud-azure-starter-integration-servicebus;4.10.0;4.11.0-beta.1 -com.azure.spring:spring-cloud-azure-starter-integration-storage-queue;4.10.0;4.11.0-beta.1 -com.azure.spring:spring-cloud-azure-starter-stream-eventhubs;4.10.0;4.11.0-beta.1 -com.azure.spring:spring-cloud-azure-starter-stream-servicebus;4.10.0;4.11.0-beta.1 -com.azure.spring:spring-cloud-azure-starter;4.10.0;4.11.0-beta.1 -com.azure.spring:spring-cloud-azure-stream-binder-eventhubs-core;4.10.0;4.11.0-beta.1 -com.azure.spring:spring-cloud-azure-stream-binder-eventhubs;4.10.0;4.11.0-beta.1 -com.azure.spring:spring-cloud-azure-stream-binder-servicebus-core;4.10.0;4.11.0-beta.1 -com.azure.spring:spring-cloud-azure-stream-binder-servicebus;4.10.0;4.11.0-beta.1 -com.azure.spring:spring-cloud-azure-trace-sleuth;4.10.0;4.11.0-beta.1 +com.azure.spring:spring-cloud-azure-starter-servicebus-jms;4.10.0;4.11.0 +com.azure.spring:spring-cloud-azure-starter-servicebus;4.10.0;4.11.0 +com.azure.spring:spring-cloud-azure-starter-storage;4.10.0;4.11.0 +com.azure.spring:spring-cloud-azure-starter-storage-blob;4.10.0;4.11.0 +com.azure.spring:spring-cloud-azure-starter-storage-file-share;4.10.0;4.11.0 +com.azure.spring:spring-cloud-azure-starter-storage-queue;4.10.0;4.11.0 +com.azure.spring:spring-cloud-azure-starter-integration-eventhubs;4.10.0;4.11.0 +com.azure.spring:spring-cloud-azure-starter-integration-servicebus;4.10.0;4.11.0 +com.azure.spring:spring-cloud-azure-starter-integration-storage-queue;4.10.0;4.11.0 +com.azure.spring:spring-cloud-azure-starter-stream-eventhubs;4.10.0;4.11.0 +com.azure.spring:spring-cloud-azure-starter-stream-servicebus;4.10.0;4.11.0 +com.azure.spring:spring-cloud-azure-starter;4.10.0;4.11.0 +com.azure.spring:spring-cloud-azure-stream-binder-eventhubs-core;4.10.0;4.11.0 +com.azure.spring:spring-cloud-azure-stream-binder-eventhubs;4.10.0;4.11.0 +com.azure.spring:spring-cloud-azure-stream-binder-servicebus-core;4.10.0;4.11.0 +com.azure.spring:spring-cloud-azure-stream-binder-servicebus;4.10.0;4.11.0 +com.azure.spring:spring-cloud-azure-trace-sleuth;4.10.0;4.11.0 com.azure.resourcemanager:azure-resourcemanager;2.29.0;2.30.0-beta.1 com.azure.resourcemanager:azure-resourcemanager-appplatform;2.29.0;2.30.0-beta.1 com.azure.resourcemanager:azure-resourcemanager-appservice;2.29.0;2.30.0-beta.1 diff --git a/sdk/boms/spring-cloud-azure-dependencies/pom.xml b/sdk/boms/spring-cloud-azure-dependencies/pom.xml index ebf49d931818..8e9dd7a4a0a9 100644 --- a/sdk/boms/spring-cloud-azure-dependencies/pom.xml +++ b/sdk/boms/spring-cloud-azure-dependencies/pom.xml @@ -6,7 +6,7 @@ com.azure.spring spring-cloud-azure-dependencies - 4.11.0-beta.1 + 4.11.0 pom Spring Cloud Azure Dependencies diff --git a/sdk/identity/azure-identity-extensions/src/main/java/com/azure/identity/extensions/implementation/credential/provider/DefaultTokenCredentialProvider.java b/sdk/identity/azure-identity-extensions/src/main/java/com/azure/identity/extensions/implementation/credential/provider/DefaultTokenCredentialProvider.java index 3f7138ef7fb6..bdfe478b2975 100644 --- a/sdk/identity/azure-identity-extensions/src/main/java/com/azure/identity/extensions/implementation/credential/provider/DefaultTokenCredentialProvider.java +++ b/sdk/identity/azure-identity-extensions/src/main/java/com/azure/identity/extensions/implementation/credential/provider/DefaultTokenCredentialProvider.java @@ -4,6 +4,7 @@ package com.azure.identity.extensions.implementation.credential.provider; import com.azure.core.credential.TokenCredential; +import com.azure.core.util.logging.ClientLogger; import com.azure.identity.ClientCertificateCredentialBuilder; import com.azure.identity.ClientSecretCredentialBuilder; import com.azure.identity.DefaultAzureCredentialBuilder; @@ -17,6 +18,8 @@ */ public class DefaultTokenCredentialProvider implements TokenCredentialProvider { + private static final ClientLogger LOGGER = new ClientLogger(DefaultTokenCredentialProvider.class); + private final TokenCredentialProviderOptions options; private final TokenCredential tokenCredential; @@ -33,6 +36,7 @@ public class DefaultTokenCredentialProvider implements TokenCredentialProvider { @Override public TokenCredential get() { + LOGGER.verbose("tokenCredential class name - {}", tokenCredential.getClass()); return tokenCredential; } @@ -94,6 +98,7 @@ && hasText(options.getPassword())) { return builder.build(); } + LOGGER.verbose("Use the dac builder."); return new DefaultAzureCredentialBuilder() .authorityHost(authorityHost) .tenantId(tenantId) diff --git a/sdk/identity/azure-identity-extensions/src/main/java/com/azure/identity/extensions/implementation/credential/provider/TokenCredentialProviders.java b/sdk/identity/azure-identity-extensions/src/main/java/com/azure/identity/extensions/implementation/credential/provider/TokenCredentialProviders.java index e957e814e8e6..67497d47859b 100644 --- a/sdk/identity/azure-identity-extensions/src/main/java/com/azure/identity/extensions/implementation/credential/provider/TokenCredentialProviders.java +++ b/sdk/identity/azure-identity-extensions/src/main/java/com/azure/identity/extensions/implementation/credential/provider/TokenCredentialProviders.java @@ -3,8 +3,9 @@ package com.azure.identity.extensions.implementation.credential.provider; -import com.azure.identity.extensions.implementation.utils.ClassUtil; +import com.azure.core.util.logging.ClientLogger; import com.azure.identity.extensions.implementation.credential.TokenCredentialProviderOptions; +import com.azure.identity.extensions.implementation.utils.ClassUtil; import static com.azure.identity.extensions.implementation.utils.ClassUtil.instantiateClass; @@ -13,6 +14,8 @@ */ public final class TokenCredentialProviders { + private static final ClientLogger LOGGER = new ClientLogger(TokenCredentialProviders.class); + private static Class defaultProviderClass = DefaultTokenCredentialProvider.class; private TokenCredentialProviders() { @@ -40,6 +43,7 @@ public static TokenCredentialProvider createInstance(TokenCredentialProviderOpti clazz = defaultProviderClass; } + LOGGER.verbose("Create credential class is {}", clazz); return instantiateClass(clazz, options); } diff --git a/sdk/identity/azure-identity-extensions/src/main/java/com/azure/identity/extensions/implementation/template/AzureAuthenticationTemplate.java b/sdk/identity/azure-identity-extensions/src/main/java/com/azure/identity/extensions/implementation/template/AzureAuthenticationTemplate.java index cb66b9c8cb67..6084ea6729ca 100644 --- a/sdk/identity/azure-identity-extensions/src/main/java/com/azure/identity/extensions/implementation/template/AzureAuthenticationTemplate.java +++ b/sdk/identity/azure-identity-extensions/src/main/java/com/azure/identity/extensions/implementation/template/AzureAuthenticationTemplate.java @@ -58,13 +58,17 @@ public void init(Properties properties) { LOGGER.verbose("Initializing AzureAuthenticationTemplate."); if (getTokenCredentialProvider() == null) { + LOGGER.verbose("getTokenCredentialProvider is null, create default credential provider."); this.tokenCredentialProvider = TokenCredentialProvider.createDefault( new TokenCredentialProviderOptions(properties)); + LOGGER.verbose("getTokenCredentialProvider class - {}", this.tokenCredentialProvider.getClass()); } if (getAccessTokenResolver() == null) { + LOGGER.verbose("getAccessTokenResolver is null, create default token resolver."); this.accessTokenResolver = AccessTokenResolver.createDefault( new AccessTokenResolverOptions(properties)); + LOGGER.verbose("getAccessTokenResolver class - {}", this.accessTokenResolver.getClass()); } LOGGER.verbose("Initialized AzureAuthenticationTemplate."); @@ -107,11 +111,16 @@ AccessTokenResolver getAccessTokenResolver() { } TokenCredentialProvider getTokenCredentialProvider() { + if (tokenCredentialProvider != null) { + LOGGER.verbose("tokenCredentialProvider class name - {}.", tokenCredentialProvider.getClass()); + } else { + LOGGER.verbose("tokenCredentialProvider class name is not set yet."); + } return tokenCredentialProvider; } Duration getBlockTimeout() { - return Duration.ofSeconds(30); + return Duration.ofSeconds(30 * 4); } AtomicBoolean getIsInitialized() { diff --git a/sdk/identity/azure-identity-extensions/src/main/java/com/azure/identity/extensions/implementation/token/AccessTokenResolverImpl.java b/sdk/identity/azure-identity-extensions/src/main/java/com/azure/identity/extensions/implementation/token/AccessTokenResolverImpl.java index 98f92964b1fa..89ad50604397 100644 --- a/sdk/identity/azure-identity-extensions/src/main/java/com/azure/identity/extensions/implementation/token/AccessTokenResolverImpl.java +++ b/sdk/identity/azure-identity-extensions/src/main/java/com/azure/identity/extensions/implementation/token/AccessTokenResolverImpl.java @@ -6,6 +6,7 @@ import com.azure.core.credential.AccessToken; import com.azure.core.credential.TokenCredential; import com.azure.core.credential.TokenRequestContext; +import com.azure.core.util.logging.ClientLogger; import reactor.core.publisher.Mono; import java.util.Objects; @@ -16,6 +17,8 @@ */ public class AccessTokenResolverImpl implements AccessTokenResolver { + private static final ClientLogger LOGGER = new ClientLogger(AccessTokenResolverImpl.class); + private final AccessTokenResolverOptions options; AccessTokenResolverImpl() { @@ -38,6 +41,7 @@ public Mono apply(TokenCredential tokenCredential) { request.setTenantId(this.options.getTenantId()); request.setClaims(this.options.getClaims()); request.addScopes(this.options.getScopes()); + LOGGER.verbose("Start to get token from credential class - (), {}.", tokenCredential, tokenCredential.getClass()); return tokenCredential.getToken(request); } } diff --git a/sdk/identity/azure-identity-extensions/src/main/java/com/azure/identity/extensions/jdbc/postgresql/AzurePostgresqlAuthenticationPlugin.java b/sdk/identity/azure-identity-extensions/src/main/java/com/azure/identity/extensions/jdbc/postgresql/AzurePostgresqlAuthenticationPlugin.java index bd8840616daf..cfc4c8e4ce5e 100644 --- a/sdk/identity/azure-identity-extensions/src/main/java/com/azure/identity/extensions/jdbc/postgresql/AzurePostgresqlAuthenticationPlugin.java +++ b/sdk/identity/azure-identity-extensions/src/main/java/com/azure/identity/extensions/jdbc/postgresql/AzurePostgresqlAuthenticationPlugin.java @@ -3,6 +3,7 @@ package com.azure.identity.extensions.jdbc.postgresql; +import com.azure.core.util.logging.ClientLogger; import com.azure.identity.extensions.implementation.template.AzureAuthenticationTemplate; import org.postgresql.plugin.AuthenticationPlugin; import org.postgresql.plugin.AuthenticationRequestType; @@ -17,6 +18,8 @@ */ public class AzurePostgresqlAuthenticationPlugin implements AuthenticationPlugin { + private static final ClientLogger LOGGER = new ClientLogger(AzurePostgresqlAuthenticationPlugin.class); + private final AzureAuthenticationTemplate azureAuthenticationTemplate; /** @@ -26,9 +29,10 @@ public class AzurePostgresqlAuthenticationPlugin implements AuthenticationPlugin */ public AzurePostgresqlAuthenticationPlugin(Properties properties) { this(new AzureAuthenticationTemplate(), properties); + LOGGER.verbose("AzurePostgresqlAuthenticationPlugin initialized."); } - AzurePostgresqlAuthenticationPlugin(AzureAuthenticationTemplate azureAuthenticationTemplate, Properties properties) { + public AzurePostgresqlAuthenticationPlugin(AzureAuthenticationTemplate azureAuthenticationTemplate, Properties properties) { this.azureAuthenticationTemplate = azureAuthenticationTemplate; this.azureAuthenticationTemplate.init(properties); } @@ -51,6 +55,7 @@ public AzurePostgresqlAuthenticationPlugin(Properties properties) { */ @Override public char[] getPassword(AuthenticationRequestType type) throws PSQLException { + LOGGER.verbose("AzurePostgresqlAuthenticationPlugin getPassword."); String password = azureAuthenticationTemplate.getTokenAsPassword(); if (password != null) { return password.toCharArray(); diff --git a/sdk/parents/azure-client-sdk-parent/pom.xml b/sdk/parents/azure-client-sdk-parent/pom.xml index c59aa14b39bc..e5ad27cc644e 100644 --- a/sdk/parents/azure-client-sdk-parent/pom.xml +++ b/sdk/parents/azure-client-sdk-parent/pom.xml @@ -248,10 +248,10 @@ - + + 1.23 <!– {x-version-update;org.codehaus.mojo:animal-sniffer-maven-plugin;external_dependency} –> package @@ -262,13 +262,13 @@ com.toasttab.android gummy-bears-api-26 - 0.5.1 + 0.5.1 <!– {x-version-update;com.toasttab.android:gummy-bears-api-26;external_dependency} –> false - + --> diff --git a/sdk/spring/pom.xml b/sdk/spring/pom.xml index 96e89dc4d4e1..693a5c505425 100644 --- a/sdk/spring/pom.xml +++ b/sdk/spring/pom.xml @@ -68,8 +68,6 @@ spring-cloud-azure-feature-management-web spring-cloud-azure-starter-appconfiguration-config azure-spring-data-cosmos - spring-cloud-azure-starter-monitor - spring-cloud-azure-starter-monitor-test diff --git a/sdk/spring/spring-cloud-azure-actuator-autoconfigure/pom.xml b/sdk/spring/spring-cloud-azure-actuator-autoconfigure/pom.xml index 5e7aeca9c33d..f584166a8c87 100644 --- a/sdk/spring/spring-cloud-azure-actuator-autoconfigure/pom.xml +++ b/sdk/spring/spring-cloud-azure-actuator-autoconfigure/pom.xml @@ -12,7 +12,7 @@ com.azure.spring spring-cloud-azure-actuator-autoconfigure - 4.11.0-beta.1 + 4.11.0 Spring Cloud Azure Actuator AutoConfigure Spring Cloud Azure Starter Actuator AutoConfigure @@ -43,12 +43,12 @@ com.azure.spring spring-cloud-azure-actuator - 4.11.0-beta.1 + 4.11.0 com.azure.spring spring-cloud-azure-autoconfigure - 4.11.0-beta.1 + 4.11.0 com.azure.spring diff --git a/sdk/spring/spring-cloud-azure-actuator/pom.xml b/sdk/spring/spring-cloud-azure-actuator/pom.xml index 3124bee0344e..f7505905799a 100644 --- a/sdk/spring/spring-cloud-azure-actuator/pom.xml +++ b/sdk/spring/spring-cloud-azure-actuator/pom.xml @@ -17,7 +17,7 @@ com.azure.spring spring-cloud-azure-actuator - 4.11.0-beta.1 + 4.11.0 Spring Cloud Azure Actuator https://microsoft.github.io/spring-cloud-azure diff --git a/sdk/spring/spring-cloud-azure-appconfiguration-config-web/pom.xml b/sdk/spring/spring-cloud-azure-appconfiguration-config-web/pom.xml index 4a6e335a1f18..2e47f97cf0aa 100644 --- a/sdk/spring/spring-cloud-azure-appconfiguration-config-web/pom.xml +++ b/sdk/spring/spring-cloud-azure-appconfiguration-config-web/pom.xml @@ -10,7 +10,7 @@ com.azure.spring spring-cloud-azure-appconfiguration-config-web - 4.11.0-beta.1 + 4.11.0 Spring Cloud Azure App Configuration Config Web Integration of Spring Cloud Config and Azure App Configuration Service @@ -24,7 +24,7 @@ com.azure.spring spring-cloud-azure-appconfiguration-config - 4.11.0-beta.1 + 4.11.0 org.springframework.boot diff --git a/sdk/spring/spring-cloud-azure-appconfiguration-config/pom.xml b/sdk/spring/spring-cloud-azure-appconfiguration-config/pom.xml index 01209585546f..20fe4e33dc9c 100644 --- a/sdk/spring/spring-cloud-azure-appconfiguration-config/pom.xml +++ b/sdk/spring/spring-cloud-azure-appconfiguration-config/pom.xml @@ -9,7 +9,7 @@ 4.0.0 com.azure.spring spring-cloud-azure-appconfiguration-config - 4.11.0-beta.1 + 4.11.0 Spring Cloud Azure App Configuration Config Integration of Spring Cloud Config and Azure App Configuration Service diff --git a/sdk/spring/spring-cloud-azure-autoconfigure/pom.xml b/sdk/spring/spring-cloud-azure-autoconfigure/pom.xml index 4b6a64e61b5f..e93d41346dda 100644 --- a/sdk/spring/spring-cloud-azure-autoconfigure/pom.xml +++ b/sdk/spring/spring-cloud-azure-autoconfigure/pom.xml @@ -12,7 +12,7 @@ com.azure.spring spring-cloud-azure-autoconfigure - 4.11.0-beta.1 + 4.11.0 Spring Cloud Azure AutoConfigure Spring Cloud Azure AutoConfigure @@ -37,20 +37,20 @@ com.azure.spring spring-cloud-azure-service - 4.11.0-beta.1 + 4.11.0 com.azure.spring spring-cloud-azure-resourcemanager - 4.11.0-beta.1 + 4.11.0 true com.azure.spring spring-cloud-azure-trace-sleuth - 4.11.0-beta.1 + 4.11.0 true @@ -59,7 +59,7 @@ com.azure.spring spring-integration-azure-eventhubs - 4.11.0-beta.1 + 4.11.0 true @@ -73,7 +73,7 @@ com.azure.spring spring-integration-azure-servicebus - 4.11.0-beta.1 + 4.11.0 true @@ -81,7 +81,7 @@ com.azure.spring spring-integration-azure-storage-queue - 4.11.0-beta.1 + 4.11.0 true @@ -111,7 +111,7 @@ com.azure azure-spring-data-cosmos - 3.38.0-beta.1 + 3.38.0 true diff --git a/sdk/spring/spring-cloud-azure-autoconfigure/src/main/java/com/azure/spring/cloud/autoconfigure/context/AzureTokenCredentialAutoConfiguration.java b/sdk/spring/spring-cloud-azure-autoconfigure/src/main/java/com/azure/spring/cloud/autoconfigure/context/AzureTokenCredentialAutoConfiguration.java index 22ef73d4ff8d..232b1fb01998 100644 --- a/sdk/spring/spring-cloud-azure-autoconfigure/src/main/java/com/azure/spring/cloud/autoconfigure/context/AzureTokenCredentialAutoConfiguration.java +++ b/sdk/spring/spring-cloud-azure-autoconfigure/src/main/java/com/azure/spring/cloud/autoconfigure/context/AzureTokenCredentialAutoConfiguration.java @@ -11,6 +11,7 @@ import com.azure.identity.ManagedIdentityCredentialBuilder; import com.azure.identity.UsernamePasswordCredentialBuilder; import com.azure.spring.cloud.autoconfigure.AzureServiceConfigurationBase; +import com.azure.spring.cloud.autoconfigure.implementation.compatibility.AzureSpringBootVersionVerifier; import com.azure.spring.cloud.autoconfigure.implementation.properties.core.AbstractAzureHttpConfigurationProperties; import com.azure.spring.cloud.core.customizer.AzureServiceClientBuilderCustomizer; import com.azure.spring.cloud.core.implementation.credential.resolver.AzureTokenCredentialResolver; @@ -22,6 +23,8 @@ import com.azure.spring.cloud.core.implementation.factory.credential.ManagedIdentityCredentialBuilderFactory; import com.azure.spring.cloud.core.implementation.factory.credential.UsernamePasswordCredentialBuilderFactory; import com.azure.spring.cloud.core.provider.authentication.TokenCredentialOptionsProvider; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.BeansException; import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.BeanFactoryAware; @@ -52,6 +55,8 @@ @AutoConfigureAfter(TaskExecutionAutoConfiguration.class) public class AzureTokenCredentialAutoConfiguration extends AzureServiceConfigurationBase { + private static final Logger LOGGER = LoggerFactory.getLogger(AzureTokenCredentialAutoConfiguration.class); + private final IdentityClientProperties identityClientProperties; AzureTokenCredentialAutoConfiguration(AzureGlobalProperties azureGlobalProperties) { @@ -65,9 +70,11 @@ public class AzureTokenCredentialAutoConfiguration extends AzureServiceConfigura TokenCredential tokenCredential(DefaultAzureCredentialBuilderFactory factory, AzureTokenCredentialResolver resolver) { TokenCredential globalTokenCredential = resolver.resolve(this.identityClientProperties); + LOGGER.debug("Global token credential is null ? - {}", globalTokenCredential == null); if (globalTokenCredential != null) { return globalTokenCredential; } else { + LOGGER.debug("Use Spring DAC."); return factory.build().build(); } } diff --git a/sdk/spring/spring-cloud-azure-autoconfigure/src/main/java/com/azure/spring/cloud/autoconfigure/jdbc/JdbcPropertiesBeanPostProcessor.java b/sdk/spring/spring-cloud-azure-autoconfigure/src/main/java/com/azure/spring/cloud/autoconfigure/jdbc/JdbcPropertiesBeanPostProcessor.java index 7e16de6c0404..e2c921302d62 100644 --- a/sdk/spring/spring-cloud-azure-autoconfigure/src/main/java/com/azure/spring/cloud/autoconfigure/jdbc/JdbcPropertiesBeanPostProcessor.java +++ b/sdk/spring/spring-cloud-azure-autoconfigure/src/main/java/com/azure/spring/cloud/autoconfigure/jdbc/JdbcPropertiesBeanPostProcessor.java @@ -10,6 +10,7 @@ import com.azure.spring.cloud.autoconfigure.implementation.jdbc.DatabaseType; import com.azure.spring.cloud.autoconfigure.implementation.jdbc.JdbcConnectionString; import com.azure.spring.cloud.autoconfigure.implementation.jdbc.JdbcConnectionStringEnhancer; +import com.azure.spring.cloud.core.implementation.properties.AzurePasswordlessPropertiesMapping; import com.azure.spring.cloud.core.implementation.util.AzurePasswordlessPropertiesUtils; import com.azure.spring.cloud.core.implementation.util.AzureSpringIdentifier; import com.azure.spring.cloud.service.implementation.identity.credential.provider.SpringTokenCredentialProvider; @@ -131,9 +132,19 @@ private void enhanceUserAgent(DatabaseType databaseType, JdbcConnectionStringEnh private Map buildEnhancedProperties(DatabaseType databaseType, AzureJdbcPasswordlessProperties properties) { Map result = new HashMap<>(); - TokenCredentialProvider tokenCredentialProvider = TokenCredentialProvider.createDefault(new TokenCredentialProviderOptions(properties.toPasswordlessProperties())); + for (AzurePasswordlessPropertiesMapping m : AzurePasswordlessPropertiesMapping.values()) { + LOGGER.debug("PropertiesMapping - {}", m.name() + " -> " + m.getGetter().apply(properties)); + } + + TokenCredentialProviderOptions providerOptions = new TokenCredentialProviderOptions(properties.toPasswordlessProperties()); + + LOGGER.debug("TokenCredentialProviderOptions - {}", providerOptions.getClientId() + "," + providerOptions.getTenantId() + ", " + providerOptions.isManagedIdentityEnabled() + ", " + providerOptions.getTokenCredentialProviderClassName()); + TokenCredentialProvider tokenCredentialProvider = TokenCredentialProvider.createDefault(providerOptions); + TokenCredential tokenCredential = tokenCredentialProvider.get(); + LOGGER.debug("token credential class {}, {}", tokenCredential, tokenCredential.getClass().getSimpleName()); + AuthProperty.TOKEN_CREDENTIAL_BEAN_NAME.setProperty(result, PASSWORDLESS_TOKEN_CREDENTIAL_BEAN_NAME); applicationContext.registerBean(PASSWORDLESS_TOKEN_CREDENTIAL_BEAN_NAME, TokenCredential.class, () -> tokenCredential); diff --git a/sdk/spring/spring-cloud-azure-core/pom.xml b/sdk/spring/spring-cloud-azure-core/pom.xml index 453826c8a877..e4133ae6e105 100644 --- a/sdk/spring/spring-cloud-azure-core/pom.xml +++ b/sdk/spring/spring-cloud-azure-core/pom.xml @@ -12,7 +12,7 @@ com.azure.spring spring-cloud-azure-core - 4.11.0-beta.1 + 4.11.0 Spring Cloud Azure Core https://microsoft.github.io/spring-cloud-azure diff --git a/sdk/spring/spring-cloud-azure-core/src/main/java/com/azure/spring/cloud/core/implementation/factory/credential/DefaultAzureCredentialBuilderFactory.java b/sdk/spring/spring-cloud-azure-core/src/main/java/com/azure/spring/cloud/core/implementation/factory/credential/DefaultAzureCredentialBuilderFactory.java index 1f649a95760b..eba33827eb74 100644 --- a/sdk/spring/spring-cloud-azure-core/src/main/java/com/azure/spring/cloud/core/implementation/factory/credential/DefaultAzureCredentialBuilderFactory.java +++ b/sdk/spring/spring-cloud-azure-core/src/main/java/com/azure/spring/cloud/core/implementation/factory/credential/DefaultAzureCredentialBuilderFactory.java @@ -7,6 +7,8 @@ import com.azure.spring.cloud.core.implementation.properties.PropertyMapper; import com.azure.spring.cloud.core.properties.AzureProperties; import com.azure.spring.cloud.core.provider.AzureProfileOptionsProvider; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.util.concurrent.ExecutorService; @@ -15,6 +17,7 @@ */ public class DefaultAzureCredentialBuilderFactory extends AbstractAzureCredentialBuilderFactory { + private static final Logger LOGGER = LoggerFactory.getLogger(DefaultAzureCredentialBuilderFactory.class); private ExecutorService executorService = null; /** @@ -41,6 +44,7 @@ protected void configureService(DefaultAzureCredentialBuilder builder) { .when(p -> azureProperties.getCredential().isManagedIdentityEnabled()) .to(builder::managedIdentityClientId); mapper.from(executorService).to(builder::executorService); + LOGGER.debug("**** Build DAC credential"); } /** diff --git a/sdk/spring/spring-cloud-azure-feature-management-web/pom.xml b/sdk/spring/spring-cloud-azure-feature-management-web/pom.xml index 2bd106ac61ff..92b1468f25a3 100644 --- a/sdk/spring/spring-cloud-azure-feature-management-web/pom.xml +++ b/sdk/spring/spring-cloud-azure-feature-management-web/pom.xml @@ -9,7 +9,7 @@ com.azure.spring spring-cloud-azure-feature-management-web - 4.11.0-beta.1 + 4.11.0 Spring Cloud Azure Feature Management Web Adds Feature Management into Spring Web @@ -46,7 +46,7 @@ com.azure.spring spring-cloud-azure-feature-management - 4.11.0-beta.1 + 4.11.0 org.springframework.boot diff --git a/sdk/spring/spring-cloud-azure-feature-management/pom.xml b/sdk/spring/spring-cloud-azure-feature-management/pom.xml index 3b6eed0c9614..bcc67f16335f 100644 --- a/sdk/spring/spring-cloud-azure-feature-management/pom.xml +++ b/sdk/spring/spring-cloud-azure-feature-management/pom.xml @@ -11,7 +11,7 @@ com.azure.spring spring-cloud-azure-feature-management - 4.11.0-beta.1 + 4.11.0 Spring Cloud Azure Feature Management Adds Feature Management into Spring diff --git a/sdk/spring/spring-cloud-azure-integration-test-appconfiguration-config/pom.xml b/sdk/spring/spring-cloud-azure-integration-test-appconfiguration-config/pom.xml index 69245fe69f52..ceb22cbfd776 100644 --- a/sdk/spring/spring-cloud-azure-integration-test-appconfiguration-config/pom.xml +++ b/sdk/spring/spring-cloud-azure-integration-test-appconfiguration-config/pom.xml @@ -24,7 +24,7 @@ com.azure.spring spring-cloud-azure-starter-appconfiguration-config - 4.11.0-beta.1 + 4.11.0 org.springframework.boot diff --git a/sdk/spring/spring-cloud-azure-integration-tests/pom.xml b/sdk/spring/spring-cloud-azure-integration-tests/pom.xml index f40053c2f63a..e24909ddb88d 100644 --- a/sdk/spring/spring-cloud-azure-integration-tests/pom.xml +++ b/sdk/spring/spring-cloud-azure-integration-tests/pom.xml @@ -40,72 +40,72 @@ com.azure.spring spring-cloud-azure-starter-servicebus - 4.11.0-beta.1 + 4.11.0 com.azure.spring spring-cloud-azure-starter-servicebus-jms - 4.11.0-beta.1 + 4.11.0 com.azure.spring spring-cloud-azure-starter-eventhubs - 4.11.0-beta.1 + 4.11.0 com.azure.spring spring-cloud-azure-starter-keyvault-secrets - 4.11.0-beta.1 + 4.11.0 com.azure.spring spring-cloud-azure-starter-storage-blob - 4.11.0-beta.1 + 4.11.0 com.azure.spring spring-cloud-azure-starter-storage-file-share - 4.11.0-beta.1 + 4.11.0 com.azure.spring spring-cloud-azure-starter-storage-queue - 4.11.0-beta.1 + 4.11.0 com.azure.spring spring-cloud-azure-starter-appconfiguration - 4.11.0-beta.1 + 4.11.0 com.azure.spring spring-cloud-azure-starter-data-cosmos - 4.11.0-beta.1 + 4.11.0 com.azure.spring spring-cloud-azure-starter-cosmos - 4.11.0-beta.1 + 4.11.0 com.azure.spring spring-cloud-azure-stream-binder-eventhubs - 4.11.0-beta.1 + 4.11.0 com.azure.spring spring-cloud-azure-stream-binder-servicebus - 4.11.0-beta.1 + 4.11.0 com.azure.spring spring-cloud-azure-starter-jdbc-mysql - 4.11.0-beta.1 + 4.11.0 com.azure.spring spring-cloud-azure-starter-redis - 4.11.0-beta.1 + 4.11.0 org.springframework.boot diff --git a/sdk/spring/spring-cloud-azure-resourcemanager/pom.xml b/sdk/spring/spring-cloud-azure-resourcemanager/pom.xml index a9582301556f..470488368605 100644 --- a/sdk/spring/spring-cloud-azure-resourcemanager/pom.xml +++ b/sdk/spring/spring-cloud-azure-resourcemanager/pom.xml @@ -12,7 +12,7 @@ com.azure.spring spring-cloud-azure-resourcemanager - 4.11.0-beta.1 + 4.11.0 Spring Cloud Azure Resource Manager Spring Cloud Azure Resource Manager @@ -37,7 +37,7 @@ com.azure.spring spring-cloud-azure-core - 4.11.0-beta.1 + 4.11.0 diff --git a/sdk/spring/spring-cloud-azure-service/pom.xml b/sdk/spring/spring-cloud-azure-service/pom.xml index 9ddd0089a96a..d3256250169b 100644 --- a/sdk/spring/spring-cloud-azure-service/pom.xml +++ b/sdk/spring/spring-cloud-azure-service/pom.xml @@ -12,7 +12,7 @@ com.azure.spring spring-cloud-azure-service - 4.11.0-beta.1 + 4.11.0 Spring Cloud Azure Service Spring Cloud Azure Service @@ -37,7 +37,7 @@ com.azure.spring spring-cloud-azure-core - 4.11.0-beta.1 + 4.11.0 diff --git a/sdk/spring/spring-cloud-azure-service/src/main/java/com/azure/spring/cloud/service/implementation/identity/credential/provider/SpringTokenCredentialProvider.java b/sdk/spring/spring-cloud-azure-service/src/main/java/com/azure/spring/cloud/service/implementation/identity/credential/provider/SpringTokenCredentialProvider.java index adf839122f5c..f6a8508c3889 100644 --- a/sdk/spring/spring-cloud-azure-service/src/main/java/com/azure/spring/cloud/service/implementation/identity/credential/provider/SpringTokenCredentialProvider.java +++ b/sdk/spring/spring-cloud-azure-service/src/main/java/com/azure/spring/cloud/service/implementation/identity/credential/provider/SpringTokenCredentialProvider.java @@ -6,6 +6,8 @@ import com.azure.core.credential.TokenCredential; import com.azure.identity.extensions.implementation.credential.TokenCredentialProviderOptions; import com.azure.identity.extensions.implementation.credential.provider.TokenCredentialProvider; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; @@ -17,6 +19,8 @@ */ public class SpringTokenCredentialProvider implements TokenCredentialProvider, ApplicationContextAware { + private static final Logger LOGGER = LoggerFactory.getLogger(SpringTokenCredentialProvider.class); + public static final String DEFAULT_TOKEN_CREDENTIAL_BEAN_NAME = "springCloudAzureDefaultCredential"; public static final String PASSWORDLESS_TOKEN_CREDENTIAL_BEAN_NAME = "passwordlessTokenCredential"; private static ApplicationContext globalApplicationContext; @@ -26,6 +30,7 @@ public class SpringTokenCredentialProvider implements TokenCredentialProvider, A public SpringTokenCredentialProvider(TokenCredentialProviderOptions options) { String beanName = options == null ? null : options.getTokenCredentialBeanName(); if (beanName != null && !beanName.isEmpty()) { + LOGGER.debug("Token credential bean name: {}", beanName); this.tokenCredentialBeanName = beanName; } } @@ -33,7 +38,7 @@ public SpringTokenCredentialProvider(TokenCredentialProviderOptions options) { public TokenCredential get() { ApplicationContext context = getApplicationContext(); Objects.requireNonNull(context); - + LOGGER.debug("Get bean credential bean: {}", tokenCredentialBeanName); return context.getBean(this.tokenCredentialBeanName, TokenCredential.class); } diff --git a/sdk/spring/spring-cloud-azure-starter-active-directory-b2c/pom.xml b/sdk/spring/spring-cloud-azure-starter-active-directory-b2c/pom.xml index 58f59a0c9c19..aad0d026c172 100644 --- a/sdk/spring/spring-cloud-azure-starter-active-directory-b2c/pom.xml +++ b/sdk/spring/spring-cloud-azure-starter-active-directory-b2c/pom.xml @@ -7,7 +7,7 @@ com.azure.spring spring-cloud-azure-starter-active-directory-b2c - 4.11.0-beta.1 + 4.11.0 Spring Cloud Azure Starter Active Directory B2C Spring Cloud Azure Starter Active Directory B2C @@ -87,7 +87,7 @@ com.azure.spring spring-cloud-azure-starter - 4.11.0-beta.1 + 4.11.0 org.springframework.security diff --git a/sdk/spring/spring-cloud-azure-starter-active-directory/pom.xml b/sdk/spring/spring-cloud-azure-starter-active-directory/pom.xml index 6169efa69f60..88966e1aa3a4 100644 --- a/sdk/spring/spring-cloud-azure-starter-active-directory/pom.xml +++ b/sdk/spring/spring-cloud-azure-starter-active-directory/pom.xml @@ -7,7 +7,7 @@ com.azure.spring spring-cloud-azure-starter-active-directory - 4.11.0-beta.1 + 4.11.0 Spring Cloud Azure Starter Active Directory Spring Cloud Azure Starter Active Directory @@ -86,7 +86,7 @@ com.azure.spring spring-cloud-azure-starter - 4.11.0-beta.1 + 4.11.0 org.springframework.security diff --git a/sdk/spring/spring-cloud-azure-starter-actuator/pom.xml b/sdk/spring/spring-cloud-azure-starter-actuator/pom.xml index 8a0efd1705fd..2132034d0293 100644 --- a/sdk/spring/spring-cloud-azure-starter-actuator/pom.xml +++ b/sdk/spring/spring-cloud-azure-starter-actuator/pom.xml @@ -6,7 +6,7 @@ com.azure.spring spring-cloud-azure-starter-actuator - 4.11.0-beta.1 + 4.11.0 Spring Cloud Azure Starter Actuator Spring Cloud Azure Starter Actuator @@ -88,12 +88,12 @@ com.azure.spring spring-cloud-azure-starter - 4.11.0-beta.1 + 4.11.0 com.azure.spring spring-cloud-azure-actuator-autoconfigure - 4.11.0-beta.1 + 4.11.0 org.springframework.boot diff --git a/sdk/spring/spring-cloud-azure-starter-appconfiguration-config/pom.xml b/sdk/spring/spring-cloud-azure-starter-appconfiguration-config/pom.xml index 273e9161d14d..cac72a421562 100644 --- a/sdk/spring/spring-cloud-azure-starter-appconfiguration-config/pom.xml +++ b/sdk/spring/spring-cloud-azure-starter-appconfiguration-config/pom.xml @@ -12,7 +12,7 @@ com.azure.spring spring-cloud-azure-starter-appconfiguration-config - 4.11.0-beta.1 + 4.11.0 Spring Cloud Azure Starter App Configuration Config Spring Cloud Azure Starter App Configuration Config diff --git a/sdk/spring/spring-cloud-azure-starter-appconfiguration/pom.xml b/sdk/spring/spring-cloud-azure-starter-appconfiguration/pom.xml index 4ae186151550..d3a10e4e613e 100644 --- a/sdk/spring/spring-cloud-azure-starter-appconfiguration/pom.xml +++ b/sdk/spring/spring-cloud-azure-starter-appconfiguration/pom.xml @@ -6,7 +6,7 @@ com.azure.spring spring-cloud-azure-starter-appconfiguration - 4.11.0-beta.1 + 4.11.0 Spring Cloud Azure Starter App Configuration Spring Cloud Azure Starter App Configuration @@ -88,7 +88,7 @@ com.azure.spring spring-cloud-azure-starter - 4.11.0-beta.1 + 4.11.0 com.azure diff --git a/sdk/spring/spring-cloud-azure-starter-cosmos/pom.xml b/sdk/spring/spring-cloud-azure-starter-cosmos/pom.xml index f541bf1ca079..1d076d08d8f5 100644 --- a/sdk/spring/spring-cloud-azure-starter-cosmos/pom.xml +++ b/sdk/spring/spring-cloud-azure-starter-cosmos/pom.xml @@ -6,7 +6,7 @@ com.azure.spring spring-cloud-azure-starter-cosmos - 4.11.0-beta.1 + 4.11.0 Spring Cloud Azure Starter Cosmos DB Spring Cloud Azure Starter Cosmos DB @@ -88,7 +88,7 @@ com.azure.spring spring-cloud-azure-starter - 4.11.0-beta.1 + 4.11.0 com.azure diff --git a/sdk/spring/spring-cloud-azure-starter-data-cosmos/pom.xml b/sdk/spring/spring-cloud-azure-starter-data-cosmos/pom.xml index 99f8bd693a5c..5daf1f608751 100644 --- a/sdk/spring/spring-cloud-azure-starter-data-cosmos/pom.xml +++ b/sdk/spring/spring-cloud-azure-starter-data-cosmos/pom.xml @@ -6,7 +6,7 @@ com.azure.spring spring-cloud-azure-starter-data-cosmos - 4.11.0-beta.1 + 4.11.0 Spring Cloud Azure Starter Data Cosmos DB Spring Cloud Azure Starter Data Cosmos DB @@ -88,7 +88,7 @@ com.azure.spring spring-cloud-azure-starter - 4.11.0-beta.1 + 4.11.0 com.azure diff --git a/sdk/spring/spring-cloud-azure-starter-eventgrid/pom.xml b/sdk/spring/spring-cloud-azure-starter-eventgrid/pom.xml index a50a353ba9ba..c3c064fefd4a 100644 --- a/sdk/spring/spring-cloud-azure-starter-eventgrid/pom.xml +++ b/sdk/spring/spring-cloud-azure-starter-eventgrid/pom.xml @@ -7,7 +7,7 @@ com.azure.spring spring-cloud-azure-starter-eventgrid - 4.11.0-beta.1 + 4.11.0 Spring Cloud Azure Starter Event Grid Spring Cloud Azure Starter Event Grid @@ -87,7 +87,7 @@ com.azure.spring spring-cloud-azure-starter - 4.11.0-beta.1 + 4.11.0 diff --git a/sdk/spring/spring-cloud-azure-starter-eventhubs/pom.xml b/sdk/spring/spring-cloud-azure-starter-eventhubs/pom.xml index a779481c505f..77211280c3d3 100644 --- a/sdk/spring/spring-cloud-azure-starter-eventhubs/pom.xml +++ b/sdk/spring/spring-cloud-azure-starter-eventhubs/pom.xml @@ -7,7 +7,7 @@ com.azure.spring spring-cloud-azure-starter-eventhubs - 4.11.0-beta.1 + 4.11.0 Spring Cloud Azure Starter Event Hubs Spring Cloud Azure Starter Event Hubs @@ -87,7 +87,7 @@ com.azure.spring spring-cloud-azure-starter - 4.11.0-beta.1 + 4.11.0 diff --git a/sdk/spring/spring-cloud-azure-starter-integration-eventhubs/pom.xml b/sdk/spring/spring-cloud-azure-starter-integration-eventhubs/pom.xml index 230831faf6e6..e4b8773fc69d 100644 --- a/sdk/spring/spring-cloud-azure-starter-integration-eventhubs/pom.xml +++ b/sdk/spring/spring-cloud-azure-starter-integration-eventhubs/pom.xml @@ -7,7 +7,7 @@ com.azure.spring spring-cloud-azure-starter-integration-eventhubs - 4.11.0-beta.1 + 4.11.0 Spring Cloud Azure Starter Integration Event Hubs Spring Cloud Azure Starter Integration Event Hubs @@ -87,7 +87,7 @@ com.azure.spring spring-cloud-azure-starter - 4.11.0-beta.1 + 4.11.0 org.springframework.boot @@ -97,7 +97,7 @@ com.azure.spring spring-integration-azure-eventhubs - 4.11.0-beta.1 + 4.11.0 diff --git a/sdk/spring/spring-cloud-azure-starter-integration-servicebus/pom.xml b/sdk/spring/spring-cloud-azure-starter-integration-servicebus/pom.xml index 01c0bc062d31..4b0726335a97 100644 --- a/sdk/spring/spring-cloud-azure-starter-integration-servicebus/pom.xml +++ b/sdk/spring/spring-cloud-azure-starter-integration-servicebus/pom.xml @@ -7,7 +7,7 @@ com.azure.spring spring-cloud-azure-starter-integration-servicebus - 4.11.0-beta.1 + 4.11.0 Spring Cloud Azure Starter Integration Service Bus Spring Cloud Azure Starter Integration Service Bus @@ -89,7 +89,7 @@ com.azure.spring spring-cloud-azure-starter - 4.11.0-beta.1 + 4.11.0 org.springframework.boot @@ -99,7 +99,7 @@ com.azure.spring spring-integration-azure-servicebus - 4.11.0-beta.1 + 4.11.0 diff --git a/sdk/spring/spring-cloud-azure-starter-integration-storage-queue/pom.xml b/sdk/spring/spring-cloud-azure-starter-integration-storage-queue/pom.xml index 6b294f1218ef..77b10fae9b3a 100644 --- a/sdk/spring/spring-cloud-azure-starter-integration-storage-queue/pom.xml +++ b/sdk/spring/spring-cloud-azure-starter-integration-storage-queue/pom.xml @@ -10,7 +10,7 @@ com.azure.spring spring-cloud-azure-starter-integration-storage-queue - 4.11.0-beta.1 + 4.11.0 Spring Cloud Azure Starter Integration Storage Queue Spring Cloud Azure Starter Integration Storage Queue @@ -92,7 +92,7 @@ com.azure.spring spring-cloud-azure-starter - 4.11.0-beta.1 + 4.11.0 org.springframework.boot @@ -102,7 +102,7 @@ com.azure.spring spring-integration-azure-storage-queue - 4.11.0-beta.1 + 4.11.0 diff --git a/sdk/spring/spring-cloud-azure-starter-jdbc-mysql/pom.xml b/sdk/spring/spring-cloud-azure-starter-jdbc-mysql/pom.xml index 64c24673ceaa..97cfba5ad311 100644 --- a/sdk/spring/spring-cloud-azure-starter-jdbc-mysql/pom.xml +++ b/sdk/spring/spring-cloud-azure-starter-jdbc-mysql/pom.xml @@ -6,7 +6,7 @@ com.azure.spring spring-cloud-azure-starter-jdbc-mysql - 4.11.0-beta.1 + 4.11.0 Spring Cloud Azure Starter JDBC MySQL Spring Cloud Azure Starter for building applications with JDBC and Azure MySQL Services. Support authenticating with Azure AD. @@ -88,7 +88,7 @@ com.azure.spring spring-cloud-azure-starter - 4.11.0-beta.1 + 4.11.0 diff --git a/sdk/spring/spring-cloud-azure-starter-jdbc-postgresql/pom.xml b/sdk/spring/spring-cloud-azure-starter-jdbc-postgresql/pom.xml index 645f0a169a0f..8a87b2eddc5e 100644 --- a/sdk/spring/spring-cloud-azure-starter-jdbc-postgresql/pom.xml +++ b/sdk/spring/spring-cloud-azure-starter-jdbc-postgresql/pom.xml @@ -6,7 +6,7 @@ com.azure.spring spring-cloud-azure-starter-jdbc-postgresql - 4.11.0-beta.1 + 4.11.0 Spring Cloud Azure Starter JDBC PostgreSQL Spring Cloud Azure Starter for building applications with JDBC and Azure PostgreSQL Services. Support authenticating with Azure AD. @@ -88,7 +88,7 @@ com.azure.spring spring-cloud-azure-starter - 4.11.0-beta.1 + 4.11.0 diff --git a/sdk/spring/spring-cloud-azure-starter-keyvault-certificates/pom.xml b/sdk/spring/spring-cloud-azure-starter-keyvault-certificates/pom.xml index f67090498e75..c8b2735e0701 100644 --- a/sdk/spring/spring-cloud-azure-starter-keyvault-certificates/pom.xml +++ b/sdk/spring/spring-cloud-azure-starter-keyvault-certificates/pom.xml @@ -6,7 +6,7 @@ com.azure.spring spring-cloud-azure-starter-keyvault-certificates - 4.11.0-beta.1 + 4.11.0 Spring Cloud Azure Starter Key Vault Certificates Spring Cloud Azure Starter Key Vault Certificates @@ -88,7 +88,7 @@ com.azure.spring spring-cloud-azure-starter - 4.11.0-beta.1 + 4.11.0 com.azure diff --git a/sdk/spring/spring-cloud-azure-starter-keyvault-secrets/pom.xml b/sdk/spring/spring-cloud-azure-starter-keyvault-secrets/pom.xml index ca5e2aaaa8e3..f2df41b4b9c1 100644 --- a/sdk/spring/spring-cloud-azure-starter-keyvault-secrets/pom.xml +++ b/sdk/spring/spring-cloud-azure-starter-keyvault-secrets/pom.xml @@ -6,7 +6,7 @@ com.azure.spring spring-cloud-azure-starter-keyvault-secrets - 4.11.0-beta.1 + 4.11.0 Spring Cloud Azure Starter Key Vault Secrets Spring Cloud Azure Starter Key Vault Secrets @@ -88,7 +88,7 @@ com.azure.spring spring-cloud-azure-starter - 4.11.0-beta.1 + 4.11.0 com.azure diff --git a/sdk/spring/spring-cloud-azure-starter-keyvault/pom.xml b/sdk/spring/spring-cloud-azure-starter-keyvault/pom.xml index afd5862a3451..1897c5453163 100644 --- a/sdk/spring/spring-cloud-azure-starter-keyvault/pom.xml +++ b/sdk/spring/spring-cloud-azure-starter-keyvault/pom.xml @@ -6,7 +6,7 @@ com.azure.spring spring-cloud-azure-starter-keyvault - 4.11.0-beta.1 + 4.11.0 Spring Cloud Azure Starter Key Vault Spring Cloud Azure Starter Key Vault @@ -88,12 +88,12 @@ com.azure.spring spring-cloud-azure-starter-keyvault-secrets - 4.11.0-beta.1 + 4.11.0 com.azure.spring spring-cloud-azure-starter-keyvault-certificates - 4.11.0-beta.1 + 4.11.0 diff --git a/sdk/spring/spring-cloud-azure-starter-redis/pom.xml b/sdk/spring/spring-cloud-azure-starter-redis/pom.xml index f42c3edfe165..604af47d86df 100644 --- a/sdk/spring/spring-cloud-azure-starter-redis/pom.xml +++ b/sdk/spring/spring-cloud-azure-starter-redis/pom.xml @@ -6,7 +6,7 @@ com.azure.spring spring-cloud-azure-starter-redis - 4.11.0-beta.1 + 4.11.0 Spring Cloud Azure Starter Redis Spring Cloud Azure Starter for building applications with Azure Cache for Redis. Support authenticating with Azure AD. @@ -88,7 +88,7 @@ com.azure.spring spring-cloud-azure-starter - 4.11.0-beta.1 + 4.11.0 diff --git a/sdk/spring/spring-cloud-azure-starter-servicebus-jms/pom.xml b/sdk/spring/spring-cloud-azure-starter-servicebus-jms/pom.xml index bc59042dd414..087d3d6af23c 100644 --- a/sdk/spring/spring-cloud-azure-starter-servicebus-jms/pom.xml +++ b/sdk/spring/spring-cloud-azure-starter-servicebus-jms/pom.xml @@ -6,7 +6,7 @@ com.azure.spring spring-cloud-azure-starter-servicebus-jms - 4.11.0-beta.1 + 4.11.0 Spring Cloud Azure Starter Service Bus JMS Spring Cloud Azure Starter Service Bus JMS @@ -88,7 +88,7 @@ com.azure.spring spring-cloud-azure-starter - 4.11.0-beta.1 + 4.11.0 diff --git a/sdk/spring/spring-cloud-azure-starter-servicebus/pom.xml b/sdk/spring/spring-cloud-azure-starter-servicebus/pom.xml index c8d235545cea..8dc6c65fef4a 100644 --- a/sdk/spring/spring-cloud-azure-starter-servicebus/pom.xml +++ b/sdk/spring/spring-cloud-azure-starter-servicebus/pom.xml @@ -7,7 +7,7 @@ com.azure.spring spring-cloud-azure-starter-servicebus - 4.11.0-beta.1 + 4.11.0 Spring Cloud Azure Starter Service Bus Spring Cloud Azure Starter Service Bus @@ -89,7 +89,7 @@ com.azure.spring spring-cloud-azure-starter - 4.11.0-beta.1 + 4.11.0 com.azure diff --git a/sdk/spring/spring-cloud-azure-starter-storage-blob/pom.xml b/sdk/spring/spring-cloud-azure-starter-storage-blob/pom.xml index a96e13bc4149..cde3df4b74c5 100644 --- a/sdk/spring/spring-cloud-azure-starter-storage-blob/pom.xml +++ b/sdk/spring/spring-cloud-azure-starter-storage-blob/pom.xml @@ -6,7 +6,7 @@ com.azure.spring spring-cloud-azure-starter-storage-blob - 4.11.0-beta.1 + 4.11.0 Spring Cloud Azure Starter Storage Blob Spring Cloud Azure Starter Storage Blob @@ -88,7 +88,7 @@ com.azure.spring spring-cloud-azure-starter - 4.11.0-beta.1 + 4.11.0 diff --git a/sdk/spring/spring-cloud-azure-starter-storage-file-share/pom.xml b/sdk/spring/spring-cloud-azure-starter-storage-file-share/pom.xml index f566d2f8085a..a17839ba6947 100644 --- a/sdk/spring/spring-cloud-azure-starter-storage-file-share/pom.xml +++ b/sdk/spring/spring-cloud-azure-starter-storage-file-share/pom.xml @@ -6,7 +6,7 @@ com.azure.spring spring-cloud-azure-starter-storage-file-share - 4.11.0-beta.1 + 4.11.0 Spring Cloud Azure Starter Storage File Share Spring Cloud Azure Starter Storage File Share @@ -88,7 +88,7 @@ com.azure.spring spring-cloud-azure-starter - 4.11.0-beta.1 + 4.11.0 diff --git a/sdk/spring/spring-cloud-azure-starter-storage-queue/pom.xml b/sdk/spring/spring-cloud-azure-starter-storage-queue/pom.xml index 5bc01085d6a4..ca580cf33b66 100644 --- a/sdk/spring/spring-cloud-azure-starter-storage-queue/pom.xml +++ b/sdk/spring/spring-cloud-azure-starter-storage-queue/pom.xml @@ -10,7 +10,7 @@ com.azure.spring spring-cloud-azure-starter-storage-queue - 4.11.0-beta.1 + 4.11.0 Spring Cloud Azure Starter Storage Queue Spring Cloud Azure Starter Storage Queue @@ -92,7 +92,7 @@ com.azure.spring spring-cloud-azure-starter - 4.11.0-beta.1 + 4.11.0 com.azure diff --git a/sdk/spring/spring-cloud-azure-starter-storage/pom.xml b/sdk/spring/spring-cloud-azure-starter-storage/pom.xml index 0b2ce7edc85b..95fff89d205e 100644 --- a/sdk/spring/spring-cloud-azure-starter-storage/pom.xml +++ b/sdk/spring/spring-cloud-azure-starter-storage/pom.xml @@ -6,7 +6,7 @@ com.azure.spring spring-cloud-azure-starter-storage - 4.11.0-beta.1 + 4.11.0 Spring Cloud Azure Starter Storage Spring Cloud Azure Starter Storage @@ -88,19 +88,19 @@ com.azure.spring spring-cloud-azure-starter-storage-blob - 4.11.0-beta.1 + 4.11.0 com.azure.spring spring-cloud-azure-starter-storage-file-share - 4.11.0-beta.1 + 4.11.0 com.azure.spring spring-cloud-azure-starter-storage-queue - 4.11.0-beta.1 + 4.11.0 diff --git a/sdk/spring/spring-cloud-azure-starter-stream-eventhubs/pom.xml b/sdk/spring/spring-cloud-azure-starter-stream-eventhubs/pom.xml index 1db23859c686..cff299b6064b 100644 --- a/sdk/spring/spring-cloud-azure-starter-stream-eventhubs/pom.xml +++ b/sdk/spring/spring-cloud-azure-starter-stream-eventhubs/pom.xml @@ -7,7 +7,7 @@ com.azure.spring spring-cloud-azure-starter-stream-eventhubs - 4.11.0-beta.1 + 4.11.0 Spring Cloud Azure Starter Stream Event Hubs Spring Cloud Azure Starter Stream Event Hubs @@ -87,7 +87,7 @@ com.azure.spring spring-cloud-azure-stream-binder-eventhubs - 4.11.0-beta.1 + 4.11.0 diff --git a/sdk/spring/spring-cloud-azure-starter-stream-servicebus/pom.xml b/sdk/spring/spring-cloud-azure-starter-stream-servicebus/pom.xml index 5a6ad9a48bb9..0ffac1ee2512 100644 --- a/sdk/spring/spring-cloud-azure-starter-stream-servicebus/pom.xml +++ b/sdk/spring/spring-cloud-azure-starter-stream-servicebus/pom.xml @@ -7,7 +7,7 @@ com.azure.spring spring-cloud-azure-starter-stream-servicebus - 4.11.0-beta.1 + 4.11.0 Spring Cloud Azure Starter Stream Service Bus Spring Cloud Azure Starter Stream Service Bus @@ -87,7 +87,7 @@ com.azure.spring spring-cloud-azure-stream-binder-servicebus - 4.11.0-beta.1 + 4.11.0 diff --git a/sdk/spring/spring-cloud-azure-starter/pom.xml b/sdk/spring/spring-cloud-azure-starter/pom.xml index 137563f5bf67..0ea08ba83a42 100644 --- a/sdk/spring/spring-cloud-azure-starter/pom.xml +++ b/sdk/spring/spring-cloud-azure-starter/pom.xml @@ -6,7 +6,7 @@ com.azure.spring spring-cloud-azure-starter - 4.11.0-beta.1 + 4.11.0 Spring Cloud Azure Starter Core starter, including auto-configuration support @@ -93,7 +93,7 @@ com.azure.spring spring-cloud-azure-autoconfigure - 4.11.0-beta.1 + 4.11.0 diff --git a/sdk/spring/spring-cloud-azure-stream-binder-eventhubs-core/pom.xml b/sdk/spring/spring-cloud-azure-stream-binder-eventhubs-core/pom.xml index 9498e7a89148..b8a831575bf3 100644 --- a/sdk/spring/spring-cloud-azure-stream-binder-eventhubs-core/pom.xml +++ b/sdk/spring/spring-cloud-azure-stream-binder-eventhubs-core/pom.xml @@ -12,7 +12,7 @@ com.azure.spring spring-cloud-azure-stream-binder-eventhubs-core - 4.11.0-beta.1 + 4.11.0 Spring Cloud Azure Stream Binder Event Hubs Core Spring Cloud Azure Stream Binder Event Hubs Core @@ -49,7 +49,7 @@ com.azure.spring spring-integration-azure-eventhubs - 4.11.0-beta.1 + 4.11.0 diff --git a/sdk/spring/spring-cloud-azure-stream-binder-eventhubs/pom.xml b/sdk/spring/spring-cloud-azure-stream-binder-eventhubs/pom.xml index 6dd4e6d37a65..4ef6f3adbc92 100644 --- a/sdk/spring/spring-cloud-azure-stream-binder-eventhubs/pom.xml +++ b/sdk/spring/spring-cloud-azure-stream-binder-eventhubs/pom.xml @@ -12,7 +12,7 @@ com.azure.spring spring-cloud-azure-stream-binder-eventhubs - 4.11.0-beta.1 + 4.11.0 Spring Cloud Azure Stream Binder Event Hubs Spring Cloud Azure Stream Binder Event Hubs @@ -37,12 +37,12 @@ com.azure.spring spring-cloud-azure-autoconfigure - 4.11.0-beta.1 + 4.11.0 com.azure.spring spring-cloud-azure-stream-binder-eventhubs-core - 4.11.0-beta.1 + 4.11.0 @@ -60,7 +60,7 @@ com.azure.spring spring-cloud-azure-resourcemanager - 4.11.0-beta.1 + 4.11.0 diff --git a/sdk/spring/spring-cloud-azure-stream-binder-servicebus-core/pom.xml b/sdk/spring/spring-cloud-azure-stream-binder-servicebus-core/pom.xml index c24d5cfc26d1..924400dcfe46 100644 --- a/sdk/spring/spring-cloud-azure-stream-binder-servicebus-core/pom.xml +++ b/sdk/spring/spring-cloud-azure-stream-binder-servicebus-core/pom.xml @@ -12,7 +12,7 @@ com.azure.spring spring-cloud-azure-stream-binder-servicebus-core - 4.11.0-beta.1 + 4.11.0 Spring Cloud Azure Stream Binder Service Bus Core Spring Cloud Azure Stream Binder Service Bus Core @@ -43,7 +43,7 @@ com.azure.spring spring-integration-azure-servicebus - 4.11.0-beta.1 + 4.11.0 com.azure diff --git a/sdk/spring/spring-cloud-azure-stream-binder-servicebus/pom.xml b/sdk/spring/spring-cloud-azure-stream-binder-servicebus/pom.xml index 640702f2af2f..d36f6b8fc83b 100644 --- a/sdk/spring/spring-cloud-azure-stream-binder-servicebus/pom.xml +++ b/sdk/spring/spring-cloud-azure-stream-binder-servicebus/pom.xml @@ -12,7 +12,7 @@ com.azure.spring spring-cloud-azure-stream-binder-servicebus - 4.11.0-beta.1 + 4.11.0 Spring Cloud Azure Stream Binder Service Bus Spring Cloud Azure Stream Binder Service Bus @@ -37,17 +37,17 @@ com.azure.spring spring-cloud-azure-stream-binder-servicebus-core - 4.11.0-beta.1 + 4.11.0 com.azure.spring spring-cloud-azure-autoconfigure - 4.11.0-beta.1 + 4.11.0 com.azure.spring spring-cloud-azure-resourcemanager - 4.11.0-beta.1 + 4.11.0 org.springframework.boot diff --git a/sdk/spring/spring-cloud-azure-trace-sleuth/pom.xml b/sdk/spring/spring-cloud-azure-trace-sleuth/pom.xml index 69959b23bc46..c7559bdfc2b1 100644 --- a/sdk/spring/spring-cloud-azure-trace-sleuth/pom.xml +++ b/sdk/spring/spring-cloud-azure-trace-sleuth/pom.xml @@ -12,7 +12,7 @@ com.azure.spring spring-cloud-azure-trace-sleuth - 4.11.0-beta.1 + 4.11.0 Spring Cloud Azure Trace on Sleuth https://microsoft.github.io/spring-cloud-azure @@ -36,7 +36,7 @@ com.azure.spring spring-cloud-azure-core - 4.11.0-beta.1 + 4.11.0 org.springframework.cloud diff --git a/sdk/spring/spring-integration-azure-core/pom.xml b/sdk/spring/spring-integration-azure-core/pom.xml index 7a6f36733111..bd0d79094cc9 100644 --- a/sdk/spring/spring-integration-azure-core/pom.xml +++ b/sdk/spring/spring-integration-azure-core/pom.xml @@ -12,7 +12,7 @@ com.azure.spring spring-integration-azure-core - 4.11.0-beta.1 + 4.11.0 Spring Integration Azure Core Spring Integration Azure Core @@ -37,7 +37,7 @@ com.azure.spring spring-messaging-azure - 4.11.0-beta.1 + 4.11.0 org.springframework.integration diff --git a/sdk/spring/spring-integration-azure-eventhubs/pom.xml b/sdk/spring/spring-integration-azure-eventhubs/pom.xml index b1ef8911dbe8..c90e5cd71609 100644 --- a/sdk/spring/spring-integration-azure-eventhubs/pom.xml +++ b/sdk/spring/spring-integration-azure-eventhubs/pom.xml @@ -12,7 +12,7 @@ com.azure.spring spring-integration-azure-eventhubs - 4.11.0-beta.1 + 4.11.0 Spring Integration Azure Event Hubs Spring Integration Azure Event Hubs @@ -37,19 +37,19 @@ com.azure.spring spring-integration-azure-core - 4.11.0-beta.1 + 4.11.0 com.azure.spring spring-integration-azure-core - 4.11.0-beta.1 + 4.11.0 test-jar test com.azure.spring spring-messaging-azure-eventhubs - 4.11.0-beta.1 + 4.11.0 diff --git a/sdk/spring/spring-integration-azure-servicebus/pom.xml b/sdk/spring/spring-integration-azure-servicebus/pom.xml index 8ac333b2a665..f14decacf60a 100644 --- a/sdk/spring/spring-integration-azure-servicebus/pom.xml +++ b/sdk/spring/spring-integration-azure-servicebus/pom.xml @@ -12,7 +12,7 @@ com.azure.spring spring-integration-azure-servicebus - 4.11.0-beta.1 + 4.11.0 Spring Integration Azure Service Bus Spring Integration Azure Service Bus @@ -37,24 +37,24 @@ com.azure.spring spring-integration-azure-core - 4.11.0-beta.1 + 4.11.0 com.azure.spring spring-integration-azure-core - 4.11.0-beta.1 + 4.11.0 test-jar test com.azure.spring spring-messaging-azure-servicebus - 4.11.0-beta.1 + 4.11.0 com.azure.spring spring-messaging-azure-servicebus - 4.11.0-beta.1 + 4.11.0 test-jar test diff --git a/sdk/spring/spring-integration-azure-storage-queue/pom.xml b/sdk/spring/spring-integration-azure-storage-queue/pom.xml index ba8eccb0100b..a06dc15fbcdf 100644 --- a/sdk/spring/spring-integration-azure-storage-queue/pom.xml +++ b/sdk/spring/spring-integration-azure-storage-queue/pom.xml @@ -13,7 +13,7 @@ com.azure.spring spring-integration-azure-storage-queue - 4.11.0-beta.1 + 4.11.0 Spring Integration Azure Storage Queue Spring Integration Azure Storage Queue @@ -38,12 +38,12 @@ com.azure.spring spring-integration-azure-core - 4.11.0-beta.1 + 4.11.0 com.azure.spring spring-messaging-azure-storage-queue - 4.11.0-beta.1 + 4.11.0 + 4.11.0 Spring Messaging Azure Event Hubs Spring Messaging Azure Event Hubs @@ -37,12 +37,12 @@ com.azure.spring spring-messaging-azure - 4.11.0-beta.1 + 4.11.0 com.azure.spring spring-messaging-azure - 4.11.0-beta.1 + 4.11.0 test-jar test diff --git a/sdk/spring/spring-messaging-azure-servicebus/pom.xml b/sdk/spring/spring-messaging-azure-servicebus/pom.xml index 4d4f10955919..e41d576e1808 100644 --- a/sdk/spring/spring-messaging-azure-servicebus/pom.xml +++ b/sdk/spring/spring-messaging-azure-servicebus/pom.xml @@ -13,7 +13,7 @@ com.azure.spring spring-messaging-azure-servicebus - 4.11.0-beta.1 + 4.11.0 Spring Messaging Azure Service Bus Spring Messaging Azure Service Bus @@ -38,12 +38,12 @@ com.azure.spring spring-messaging-azure - 4.11.0-beta.1 + 4.11.0 com.azure.spring spring-messaging-azure - 4.11.0-beta.1 + 4.11.0 test-jar test diff --git a/sdk/spring/spring-messaging-azure-storage-queue/pom.xml b/sdk/spring/spring-messaging-azure-storage-queue/pom.xml index e6cbb72824f6..1600afb47987 100644 --- a/sdk/spring/spring-messaging-azure-storage-queue/pom.xml +++ b/sdk/spring/spring-messaging-azure-storage-queue/pom.xml @@ -12,7 +12,7 @@ com.azure.spring spring-messaging-azure-storage-queue - 4.11.0-beta.1 + 4.11.0 Spring Messaging Azure Storage Queue Spring Messaging Azure Storage Queue @@ -37,12 +37,12 @@ com.azure.spring spring-messaging-azure - 4.11.0-beta.1 + 4.11.0 com.azure.spring spring-messaging-azure - 4.11.0-beta.1 + 4.11.0 test-jar test diff --git a/sdk/spring/spring-messaging-azure/pom.xml b/sdk/spring/spring-messaging-azure/pom.xml index ad35106a5fa5..7b68fa511b2f 100644 --- a/sdk/spring/spring-messaging-azure/pom.xml +++ b/sdk/spring/spring-messaging-azure/pom.xml @@ -12,7 +12,7 @@ com.azure.spring spring-messaging-azure - 4.11.0-beta.1 + 4.11.0 Spring Messaging Azure Spring Messaging Azure @@ -37,7 +37,7 @@ com.azure.spring spring-cloud-azure-service - 4.11.0-beta.1 + 4.11.0 org.springframework From 5980513cc44b72c918a9d7bd6b50c29c94241f26 Mon Sep 17 00:00:00 2001 From: Moary Chen Date: Fri, 23 Feb 2024 12:34:25 +0800 Subject: [PATCH 2/5] add logs --- .../provider/DefaultTokenCredentialProvider.java | 3 +++ .../template/AzureAuthenticationTemplate.java | 12 +++++++++--- .../token/AccessTokenResolverImpl.java | 2 +- .../jdbc/JdbcPropertiesBeanPostProcessor.java | 7 ++++--- .../provider/SpringTokenCredentialProvider.java | 6 +++++- 5 files changed, 22 insertions(+), 8 deletions(-) diff --git a/sdk/identity/azure-identity-extensions/src/main/java/com/azure/identity/extensions/implementation/credential/provider/DefaultTokenCredentialProvider.java b/sdk/identity/azure-identity-extensions/src/main/java/com/azure/identity/extensions/implementation/credential/provider/DefaultTokenCredentialProvider.java index bdfe478b2975..2756748faacb 100644 --- a/sdk/identity/azure-identity-extensions/src/main/java/com/azure/identity/extensions/implementation/credential/provider/DefaultTokenCredentialProvider.java +++ b/sdk/identity/azure-identity-extensions/src/main/java/com/azure/identity/extensions/implementation/credential/provider/DefaultTokenCredentialProvider.java @@ -27,11 +27,13 @@ public class DefaultTokenCredentialProvider implements TokenCredentialProvider { DefaultTokenCredentialProvider() { this.options = new TokenCredentialProviderOptions(); this.tokenCredential = get(this.options); + LOGGER.verbose("DefaultTokenCredentialProvider 1 create token credential. - {}, {}", this.tokenCredential, this.tokenCredential.getClass()); } DefaultTokenCredentialProvider(TokenCredentialProviderOptions options) { this.options = options; this.tokenCredential = get(this.options); + LOGGER.verbose("DefaultTokenCredentialProvider 2 create token credential. - {}, {}", this.tokenCredential, this.tokenCredential.getClass()); } @Override @@ -43,6 +45,7 @@ public TokenCredential get() { @Override public TokenCredential get(TokenCredentialProviderOptions options) { if (options == null) { + LOGGER.verbose("options is null, create dac builder to build token credential."); return new DefaultAzureCredentialBuilder().build(); } return resolveTokenCredential(options); diff --git a/sdk/identity/azure-identity-extensions/src/main/java/com/azure/identity/extensions/implementation/template/AzureAuthenticationTemplate.java b/sdk/identity/azure-identity-extensions/src/main/java/com/azure/identity/extensions/implementation/template/AzureAuthenticationTemplate.java index 6084ea6729ca..ec6a4a1c993e 100644 --- a/sdk/identity/azure-identity-extensions/src/main/java/com/azure/identity/extensions/implementation/template/AzureAuthenticationTemplate.java +++ b/sdk/identity/azure-identity-extensions/src/main/java/com/azure/identity/extensions/implementation/template/AzureAuthenticationTemplate.java @@ -11,6 +11,7 @@ import com.azure.identity.extensions.implementation.token.AccessTokenResolverOptions; import reactor.core.publisher.Mono; import java.time.Duration; +import java.util.Enumeration; import java.util.Properties; import java.util.concurrent.atomic.AtomicBoolean; @@ -58,17 +59,22 @@ public void init(Properties properties) { LOGGER.verbose("Initializing AzureAuthenticationTemplate."); if (getTokenCredentialProvider() == null) { - LOGGER.verbose("getTokenCredentialProvider is null, create default credential provider."); + LOGGER.verbose("getTokenCredentialProvider is null, create default credential provider. Will create a default one"); + Enumeration enumeration = properties.propertyNames(); + while(enumeration.hasMoreElements()) { + Object key = enumeration.nextElement(); + LOGGER.verbose("Create TokenCredentialProvider props - {}, {}", key, properties.get(key)); + } this.tokenCredentialProvider = TokenCredentialProvider.createDefault( new TokenCredentialProviderOptions(properties)); - LOGGER.verbose("getTokenCredentialProvider class - {}", this.tokenCredentialProvider.getClass()); + LOGGER.verbose("Default TokenCredentialProvider created - {}, {}", this.tokenCredentialProvider, this.tokenCredentialProvider.getClass()); } if (getAccessTokenResolver() == null) { LOGGER.verbose("getAccessTokenResolver is null, create default token resolver."); this.accessTokenResolver = AccessTokenResolver.createDefault( new AccessTokenResolverOptions(properties)); - LOGGER.verbose("getAccessTokenResolver class - {}", this.accessTokenResolver.getClass()); + LOGGER.verbose("getAccessTokenResolver class - {}, {}", this.accessTokenResolver, this.accessTokenResolver.getClass()); } LOGGER.verbose("Initialized AzureAuthenticationTemplate."); diff --git a/sdk/identity/azure-identity-extensions/src/main/java/com/azure/identity/extensions/implementation/token/AccessTokenResolverImpl.java b/sdk/identity/azure-identity-extensions/src/main/java/com/azure/identity/extensions/implementation/token/AccessTokenResolverImpl.java index 89ad50604397..9f767f3a8562 100644 --- a/sdk/identity/azure-identity-extensions/src/main/java/com/azure/identity/extensions/implementation/token/AccessTokenResolverImpl.java +++ b/sdk/identity/azure-identity-extensions/src/main/java/com/azure/identity/extensions/implementation/token/AccessTokenResolverImpl.java @@ -41,7 +41,7 @@ public Mono apply(TokenCredential tokenCredential) { request.setTenantId(this.options.getTenantId()); request.setClaims(this.options.getClaims()); request.addScopes(this.options.getScopes()); - LOGGER.verbose("Start to get token from credential class - (), {}.", tokenCredential, tokenCredential.getClass()); + LOGGER.verbose("Start to get token from credential class - {}, {}.", tokenCredential, tokenCredential.getClass()); return tokenCredential.getToken(request); } } diff --git a/sdk/spring/spring-cloud-azure-autoconfigure/src/main/java/com/azure/spring/cloud/autoconfigure/jdbc/JdbcPropertiesBeanPostProcessor.java b/sdk/spring/spring-cloud-azure-autoconfigure/src/main/java/com/azure/spring/cloud/autoconfigure/jdbc/JdbcPropertiesBeanPostProcessor.java index e2c921302d62..464066350475 100644 --- a/sdk/spring/spring-cloud-azure-autoconfigure/src/main/java/com/azure/spring/cloud/autoconfigure/jdbc/JdbcPropertiesBeanPostProcessor.java +++ b/sdk/spring/spring-cloud-azure-autoconfigure/src/main/java/com/azure/spring/cloud/autoconfigure/jdbc/JdbcPropertiesBeanPostProcessor.java @@ -136,14 +136,15 @@ private Map buildEnhancedProperties(DatabaseType databaseType, A LOGGER.debug("PropertiesMapping - {}", m.name() + " -> " + m.getGetter().apply(properties)); } - TokenCredentialProviderOptions providerOptions = new TokenCredentialProviderOptions(properties.toPasswordlessProperties()); + TokenCredentialProviderOptions providerOptions = new TokenCredentialProviderOptions(properties.toPasswordlessProperties()); - LOGGER.debug("TokenCredentialProviderOptions - {}", providerOptions.getClientId() + "," + providerOptions.getTenantId() + ", " + providerOptions.isManagedIdentityEnabled() + ", " + providerOptions.getTokenCredentialProviderClassName()); + LOGGER.debug("TokenCredentialProviderOptions - {}", providerOptions.getClientId() + "," + + providerOptions.getTenantId() + ", " + providerOptions.isManagedIdentityEnabled() + ", " + providerOptions.getTokenCredentialProviderClassName()); TokenCredentialProvider tokenCredentialProvider = TokenCredentialProvider.createDefault(providerOptions); TokenCredential tokenCredential = tokenCredentialProvider.get(); - LOGGER.debug("token credential class {}, {}", tokenCredential, tokenCredential.getClass().getSimpleName()); + LOGGER.debug("processor token credential class {}, {}", tokenCredential, tokenCredential.getClass().getSimpleName()); AuthProperty.TOKEN_CREDENTIAL_BEAN_NAME.setProperty(result, PASSWORDLESS_TOKEN_CREDENTIAL_BEAN_NAME); applicationContext.registerBean(PASSWORDLESS_TOKEN_CREDENTIAL_BEAN_NAME, TokenCredential.class, () -> tokenCredential); diff --git a/sdk/spring/spring-cloud-azure-service/src/main/java/com/azure/spring/cloud/service/implementation/identity/credential/provider/SpringTokenCredentialProvider.java b/sdk/spring/spring-cloud-azure-service/src/main/java/com/azure/spring/cloud/service/implementation/identity/credential/provider/SpringTokenCredentialProvider.java index f6a8508c3889..5f02283790f4 100644 --- a/sdk/spring/spring-cloud-azure-service/src/main/java/com/azure/spring/cloud/service/implementation/identity/credential/provider/SpringTokenCredentialProvider.java +++ b/sdk/spring/spring-cloud-azure-service/src/main/java/com/azure/spring/cloud/service/implementation/identity/credential/provider/SpringTokenCredentialProvider.java @@ -33,13 +33,16 @@ public SpringTokenCredentialProvider(TokenCredentialProviderOptions options) { LOGGER.debug("Token credential bean name: {}", beanName); this.tokenCredentialBeanName = beanName; } + LOGGER.debug("SpringTokenCredentialProvider initialized. - {}", this.tokenCredentialBeanName); } public TokenCredential get() { ApplicationContext context = getApplicationContext(); Objects.requireNonNull(context); LOGGER.debug("Get bean credential bean: {}", tokenCredentialBeanName); - return context.getBean(this.tokenCredentialBeanName, TokenCredential.class); + TokenCredential tokenCredential = context.getBean(this.tokenCredentialBeanName, TokenCredential.class); + LOGGER.debug("SpringTokenCredentialProvider get token credential. - {}, {}", tokenCredential, tokenCredential.getClass()); + return tokenCredential; } @Override @@ -49,6 +52,7 @@ public void setApplicationContext(ApplicationContext applicationContext) throws public static void setGlobalApplicationContext(ApplicationContext applicationContext) { globalApplicationContext = applicationContext; + LOGGER.debug("Set global application context."); } private ApplicationContext getApplicationContext() { From 7a09314797dc024fbfa3fee02c753e802b52e232 Mon Sep 17 00:00:00 2001 From: Moary Chen Date: Mon, 26 Feb 2024 10:19:38 +0800 Subject: [PATCH 3/5] add logs --- .../jdbc/JdbcPropertiesBeanPostProcessor.java | 12 ++++++++++++ .../provider/SpringTokenCredentialProvider.java | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/sdk/spring/spring-cloud-azure-autoconfigure/src/main/java/com/azure/spring/cloud/autoconfigure/jdbc/JdbcPropertiesBeanPostProcessor.java b/sdk/spring/spring-cloud-azure-autoconfigure/src/main/java/com/azure/spring/cloud/autoconfigure/jdbc/JdbcPropertiesBeanPostProcessor.java index 464066350475..76e2fbf6e946 100644 --- a/sdk/spring/spring-cloud-azure-autoconfigure/src/main/java/com/azure/spring/cloud/autoconfigure/jdbc/JdbcPropertiesBeanPostProcessor.java +++ b/sdk/spring/spring-cloud-azure-autoconfigure/src/main/java/com/azure/spring/cloud/autoconfigure/jdbc/JdbcPropertiesBeanPostProcessor.java @@ -2,7 +2,9 @@ // Licensed under the MIT License. package com.azure.spring.cloud.autoconfigure.jdbc; +import com.azure.core.credential.AccessToken; import com.azure.core.credential.TokenCredential; +import com.azure.core.credential.TokenRequestContext; import com.azure.identity.extensions.implementation.credential.TokenCredentialProviderOptions; import com.azure.identity.extensions.implementation.credential.provider.TokenCredentialProvider; import com.azure.identity.extensions.implementation.enums.AuthProperty; @@ -27,7 +29,9 @@ import org.springframework.context.support.GenericApplicationContext; import org.springframework.core.env.Environment; import org.springframework.util.StringUtils; +import reactor.core.publisher.Mono; +import java.time.Duration; import java.util.HashMap; import java.util.Map; @@ -146,6 +150,14 @@ private Map buildEnhancedProperties(DatabaseType databaseType, A LOGGER.debug("processor token credential class {}, {}", tokenCredential, tokenCredential.getClass().getSimpleName()); + try { + TokenRequestContext request = new TokenRequestContext().addScopes("https://management.azure.com"); + AccessToken accessToken = tokenCredential.getToken(request).block(Duration.ofMinutes(3)); + LOGGER.debug("Got first token: {}", accessToken != null && StringUtils.hasText(accessToken.getToken())); + } catch (Exception e) { + LOGGER.error("First getting token", e); + } + AuthProperty.TOKEN_CREDENTIAL_BEAN_NAME.setProperty(result, PASSWORDLESS_TOKEN_CREDENTIAL_BEAN_NAME); applicationContext.registerBean(PASSWORDLESS_TOKEN_CREDENTIAL_BEAN_NAME, TokenCredential.class, () -> tokenCredential); diff --git a/sdk/spring/spring-cloud-azure-service/src/main/java/com/azure/spring/cloud/service/implementation/identity/credential/provider/SpringTokenCredentialProvider.java b/sdk/spring/spring-cloud-azure-service/src/main/java/com/azure/spring/cloud/service/implementation/identity/credential/provider/SpringTokenCredentialProvider.java index 5f02283790f4..07e0ffeb8edc 100644 --- a/sdk/spring/spring-cloud-azure-service/src/main/java/com/azure/spring/cloud/service/implementation/identity/credential/provider/SpringTokenCredentialProvider.java +++ b/sdk/spring/spring-cloud-azure-service/src/main/java/com/azure/spring/cloud/service/implementation/identity/credential/provider/SpringTokenCredentialProvider.java @@ -29,11 +29,11 @@ public class SpringTokenCredentialProvider implements TokenCredentialProvider, A public SpringTokenCredentialProvider(TokenCredentialProviderOptions options) { String beanName = options == null ? null : options.getTokenCredentialBeanName(); + LOGGER.debug("SpringTokenCredentialProvider initialized. - {}, {}", beanName, this.tokenCredentialBeanName); if (beanName != null && !beanName.isEmpty()) { LOGGER.debug("Token credential bean name: {}", beanName); this.tokenCredentialBeanName = beanName; } - LOGGER.debug("SpringTokenCredentialProvider initialized. - {}", this.tokenCredentialBeanName); } public TokenCredential get() { From 79e0db996e5bfafcfe45ca2476d8777e536e6528 Mon Sep 17 00:00:00 2001 From: Moary Chen Date: Mon, 26 Feb 2024 13:29:33 +0800 Subject: [PATCH 4/5] test get token --- .../DefaultTokenCredentialProvider.java | 15 +++++++++++++++ .../jdbc/JdbcPropertiesBeanPostProcessor.java | 19 +++++++++++++++++-- 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/sdk/identity/azure-identity-extensions/src/main/java/com/azure/identity/extensions/implementation/credential/provider/DefaultTokenCredentialProvider.java b/sdk/identity/azure-identity-extensions/src/main/java/com/azure/identity/extensions/implementation/credential/provider/DefaultTokenCredentialProvider.java index 2756748faacb..34831e5f5c2e 100644 --- a/sdk/identity/azure-identity-extensions/src/main/java/com/azure/identity/extensions/implementation/credential/provider/DefaultTokenCredentialProvider.java +++ b/sdk/identity/azure-identity-extensions/src/main/java/com/azure/identity/extensions/implementation/credential/provider/DefaultTokenCredentialProvider.java @@ -13,6 +13,10 @@ import com.azure.identity.extensions.implementation.credential.TokenCredentialProviderOptions; import reactor.util.annotation.Nullable; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.ThreadFactory; + /** * Default tokenCredentialProvider implementation that provides tokenCredential instance. */ @@ -102,10 +106,21 @@ && hasText(options.getPassword())) { } LOGGER.verbose("Use the dac builder."); + ExecutorService executorService = Executors.newFixedThreadPool(1, new ThreadFactory() { + + private int count = 0; + + @Override + public Thread newThread(Runnable runnable) { + return new Thread(runnable, "az-id-test-" + count++); + } + }); + return new DefaultAzureCredentialBuilder() .authorityHost(authorityHost) .tenantId(tenantId) .managedIdentityClientId(clientId) + .executorService(executorService) .build(); } diff --git a/sdk/spring/spring-cloud-azure-autoconfigure/src/main/java/com/azure/spring/cloud/autoconfigure/jdbc/JdbcPropertiesBeanPostProcessor.java b/sdk/spring/spring-cloud-azure-autoconfigure/src/main/java/com/azure/spring/cloud/autoconfigure/jdbc/JdbcPropertiesBeanPostProcessor.java index 76e2fbf6e946..1ee6164196ca 100644 --- a/sdk/spring/spring-cloud-azure-autoconfigure/src/main/java/com/azure/spring/cloud/autoconfigure/jdbc/JdbcPropertiesBeanPostProcessor.java +++ b/sdk/spring/spring-cloud-azure-autoconfigure/src/main/java/com/azure/spring/cloud/autoconfigure/jdbc/JdbcPropertiesBeanPostProcessor.java @@ -34,6 +34,7 @@ import java.time.Duration; import java.util.HashMap; import java.util.Map; +import java.util.concurrent.TimeUnit; import static com.azure.spring.cloud.autoconfigure.implementation.jdbc.JdbcPropertyConstants.MYSQL_PROPERTY_CONNECTION_ATTRIBUTES_ATTRIBUTE_EXTENSION_VERSION; import static com.azure.spring.cloud.autoconfigure.implementation.jdbc.JdbcPropertyConstants.MYSQL_PROPERTY_CONNECTION_ATTRIBUTES_DELIMITER; @@ -140,7 +141,7 @@ private Map buildEnhancedProperties(DatabaseType databaseType, A LOGGER.debug("PropertiesMapping - {}", m.name() + " -> " + m.getGetter().apply(properties)); } - TokenCredentialProviderOptions providerOptions = new TokenCredentialProviderOptions(properties.toPasswordlessProperties()); + TokenCredentialProviderOptions providerOptions = new TokenCredentialProviderOptions(properties.toPasswordlessProperties()); LOGGER.debug("TokenCredentialProviderOptions - {}", providerOptions.getClientId() + "," + providerOptions.getTenantId() + ", " + providerOptions.isManagedIdentityEnabled() + ", " + providerOptions.getTokenCredentialProviderClassName()); @@ -150,12 +151,26 @@ private Map buildEnhancedProperties(DatabaseType databaseType, A LOGGER.debug("processor token credential class {}, {}", tokenCredential, tokenCredential.getClass().getSimpleName()); + int count = 20; + while (count > 0) { + count--; + LOGGER.debug("Sleeping 3 seconds."); + try { + TimeUnit.SECONDS.sleep(3); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + } + try { TokenRequestContext request = new TokenRequestContext().addScopes("https://management.azure.com"); + LOGGER.debug("First token"); AccessToken accessToken = tokenCredential.getToken(request).block(Duration.ofMinutes(3)); LOGGER.debug("Got first token: {}", accessToken != null && StringUtils.hasText(accessToken.getToken())); } catch (Exception e) { - LOGGER.error("First getting token", e); + LOGGER.error("First getting token error", e); + } finally { + LOGGER.error("End the first getting token"); } AuthProperty.TOKEN_CREDENTIAL_BEAN_NAME.setProperty(result, PASSWORDLESS_TOKEN_CREDENTIAL_BEAN_NAME); From 9b47ce5c423fa5bde5eb9604621daa3e94a0c109 Mon Sep 17 00:00:00 2001 From: Moary Chen Date: Tue, 21 May 2024 16:34:18 +0800 Subject: [PATCH 5/5] Save reference --- .../DefaultTokenCredentialProvider.java | 6 +- .../provider/HttpDebugLoggingPolicy.java | 264 ++++++++++++++++++ .../template/AzureAuthenticationTemplate.java | 2 +- sdk/identity/azure-identity/pom.xml | 2 +- .../implementation/IdentityClient.java | 12 +- .../implementation/IdentityClientBase.java | 14 +- .../jdbc/JdbcPropertiesBeanPostProcessor.java | 81 ++++-- 7 files changed, 345 insertions(+), 36 deletions(-) create mode 100644 sdk/identity/azure-identity-extensions/src/main/java/com/azure/identity/extensions/implementation/credential/provider/HttpDebugLoggingPolicy.java diff --git a/sdk/identity/azure-identity-extensions/src/main/java/com/azure/identity/extensions/implementation/credential/provider/DefaultTokenCredentialProvider.java b/sdk/identity/azure-identity-extensions/src/main/java/com/azure/identity/extensions/implementation/credential/provider/DefaultTokenCredentialProvider.java index 34831e5f5c2e..4378c8ab8a94 100644 --- a/sdk/identity/azure-identity-extensions/src/main/java/com/azure/identity/extensions/implementation/credential/provider/DefaultTokenCredentialProvider.java +++ b/sdk/identity/azure-identity-extensions/src/main/java/com/azure/identity/extensions/implementation/credential/provider/DefaultTokenCredentialProvider.java @@ -4,6 +4,8 @@ package com.azure.identity.extensions.implementation.credential.provider; import com.azure.core.credential.TokenCredential; +import com.azure.core.http.policy.HttpLogOptions; +import com.azure.core.util.HttpClientOptions; import com.azure.core.util.logging.ClientLogger; import com.azure.identity.ClientCertificateCredentialBuilder; import com.azure.identity.ClientSecretCredentialBuilder; @@ -107,9 +109,7 @@ && hasText(options.getPassword())) { LOGGER.verbose("Use the dac builder."); ExecutorService executorService = Executors.newFixedThreadPool(1, new ThreadFactory() { - private int count = 0; - @Override public Thread newThread(Runnable runnable) { return new Thread(runnable, "az-id-test-" + count++); @@ -120,7 +120,7 @@ public Thread newThread(Runnable runnable) { .authorityHost(authorityHost) .tenantId(tenantId) .managedIdentityClientId(clientId) - .executorService(executorService) + .executorService(executorService).enableAccountIdentifierLogging().addPolicy(new HttpDebugLoggingPolicy()) .build(); } diff --git a/sdk/identity/azure-identity-extensions/src/main/java/com/azure/identity/extensions/implementation/credential/provider/HttpDebugLoggingPolicy.java b/sdk/identity/azure-identity-extensions/src/main/java/com/azure/identity/extensions/implementation/credential/provider/HttpDebugLoggingPolicy.java new file mode 100644 index 000000000000..76ebf78fbfac --- /dev/null +++ b/sdk/identity/azure-identity-extensions/src/main/java/com/azure/identity/extensions/implementation/credential/provider/HttpDebugLoggingPolicy.java @@ -0,0 +1,264 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package com.azure.identity.extensions.implementation.credential.provider; + +import com.azure.core.http.ContentType; +import com.azure.core.http.HttpHeader; +import com.azure.core.http.HttpHeaders; +import com.azure.core.http.HttpPipelineCallContext; +import com.azure.core.http.HttpPipelineNextPolicy; +import com.azure.core.http.HttpRequest; +import com.azure.core.http.HttpResponse; +import com.azure.core.http.policy.HttpLoggingPolicy; +import com.azure.core.http.policy.HttpPipelinePolicy; +import com.azure.core.util.CoreUtils; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import reactor.core.publisher.Mono; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.nio.ByteBuffer; +import java.nio.channels.Channels; +import java.nio.channels.WritableByteChannel; +import java.nio.charset.StandardCharsets; +import java.util.HashSet; +import java.util.Locale; +import java.util.Optional; +import java.util.Set; +import java.util.concurrent.TimeUnit; + +/** + * The pipeline policy that handles logging of HTTP requests and responses. + */ +public class HttpDebugLoggingPolicy implements HttpPipelinePolicy { + + private static final ObjectMapper PRETTY_PRINTER = new ObjectMapper().enable(SerializationFeature.INDENT_OUTPUT); + private static final String REDACTED_PLACEHOLDER = "REDACTED"; + private static final Set DISALLOWED_HEADER_NAMES = new HashSet<>(); + private static final boolean PRETTY_PRINT_BODY = true; + + /** + * Creates an HttpDebugLoggingPolicy with the given log configurations. + */ + public HttpDebugLoggingPolicy() { + DISALLOWED_HEADER_NAMES.add("authorization"); + } + + @Override + public Mono process(HttpPipelineCallContext context, HttpPipelineNextPolicy next) { + final Logger logger = LoggerFactory.getLogger((String) context.getData("caller-method").orElse("")); + final long startNs = System.nanoTime(); + + return logRequest(logger, context.getHttpRequest(), context.getData(HttpLoggingPolicy.RETRY_COUNT_CONTEXT)) + .then(next.process()) + .flatMap(response -> logResponse(logger, response, startNs)) + .doOnError(throwable -> logger.warn("<-- HTTP FAILED: ", throwable)); + } + + private Mono logRequest(final Logger logger, final HttpRequest request, + final Optional optionalRetryCount) { + if (!logger.isInfoEnabled()) { + return Mono.empty(); + } + + StringBuilder requestLogMessage = new StringBuilder(); + requestLogMessage.append("--> ") + .append(request.getHttpMethod()) + .append(" ") + .append(request.getUrl()) + .append(System.lineSeparator()); + + optionalRetryCount.ifPresent(o -> requestLogMessage.append("Try count: ") + .append(o) + .append(System.lineSeparator())); + + addHeadersToLogMessage(logger, request.getHeaders(), requestLogMessage); + + if (request.getBody() == null) { + requestLogMessage.append("(empty body)") + .append(System.lineSeparator()) + .append("--> END ") + .append(request.getHttpMethod()) + .append(System.lineSeparator()); + + return logAndReturn(logger, requestLogMessage, null); + } + + String contentType = request.getHeaders().getValue("Content-Type"); + long contentLength = getContentLength(logger, request.getHeaders()); + + if (shouldBodyBeLogged(contentType, contentLength)) { + ByteArrayOutputStream outputStream = new ByteArrayOutputStream((int) contentLength); + WritableByteChannel bodyContentChannel = Channels.newChannel(outputStream); + + // Add non-mutating operators to the data stream. + request.setBody( + request.getBody() + .flatMap(byteBuffer -> writeBufferToBodyStream(bodyContentChannel, byteBuffer)) + .doFinally(ignored -> { + requestLogMessage.append(contentLength) + .append("-byte body:") + .append(System.lineSeparator()) + .append(prettyPrintIfNeeded(logger, contentType, + convertStreamToString(outputStream, logger))) + .append(System.lineSeparator()) + .append("--> END ") + .append(request.getHttpMethod()) + .append(System.lineSeparator()); + + logger.info(requestLogMessage.toString()); + })); + + return Mono.empty(); + } else { + requestLogMessage.append(contentLength) + .append("-byte body: (content not logged)") + .append(System.lineSeparator()) + .append("--> END ") + .append(request.getHttpMethod()) + .append(System.lineSeparator()); + + return logAndReturn(logger, requestLogMessage, null); + } + } + + /* + * Logs thr HTTP response. + * + * @param logger Logger used to log the response. + * @param response HTTP response returned from Azure. + * @param startNs Nanosecond representation of when the request was sent. + * @return A Mono containing the HTTP response. + */ + private Mono logResponse(final Logger logger, final HttpResponse response, long startNs) { + if (!logger.isInfoEnabled()) { + return Mono.just(response); + } + + long tookMs = TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - startNs); + + String contentLengthString = response.getHeaderValue("Content-Length"); + String bodySize = (CoreUtils.isNullOrEmpty(contentLengthString)) + ? "unknown-length body" + : contentLengthString + "-byte body"; + + StringBuilder responseLogMessage = new StringBuilder(); + responseLogMessage.append("<-- ") + .append(response.getStatusCode()) + .append(" ") + .append(response.getRequest().getUrl()) + .append(" (") + .append(tookMs) + .append(" ms, ") + .append(bodySize) + .append(")") + .append(System.lineSeparator()); + + addHeadersToLogMessage(logger, response.getHeaders(), responseLogMessage); + + String contentTypeHeader = response.getHeaderValue("Content-Type"); + long contentLength = getContentLength(logger, response.getHeaders()); + + if (shouldBodyBeLogged(contentTypeHeader, contentLength)) { + HttpResponse bufferedResponse = response.buffer(); + ByteArrayOutputStream outputStream = new ByteArrayOutputStream((int) contentLength); + WritableByteChannel bodyContentChannel = Channels.newChannel(outputStream); + return bufferedResponse.getBody() + .flatMap(byteBuffer -> writeBufferToBodyStream(bodyContentChannel, byteBuffer)) + .doFinally(ignored -> { + responseLogMessage.append("Response body:") + .append(System.lineSeparator()) + .append(prettyPrintIfNeeded(logger, contentTypeHeader, + convertStreamToString(outputStream, logger))) + .append(System.lineSeparator()) + .append("<-- END HTTP"); + + logger.info(responseLogMessage.toString()); + }).then(Mono.just(bufferedResponse)); + } else { + responseLogMessage.append("(body content not logged)") + .append(System.lineSeparator()) + .append("<-- END HTTP"); + + return logAndReturn(logger, responseLogMessage, response); + } + } + + private Mono logAndReturn(Logger logger, StringBuilder logMessageBuilder, T data) { + logger.info(logMessageBuilder.toString()); + return Mono.justOrEmpty(data); + } + + private void addHeadersToLogMessage(Logger logger, HttpHeaders headers, StringBuilder sb) { + for (HttpHeader header : headers) { + String headerName = header.getName(); + sb.append(headerName).append(":"); + if (!DISALLOWED_HEADER_NAMES.contains(headerName.toLowerCase(Locale.ROOT))) { + sb.append(header.getValue()); + } else { + sb.append(REDACTED_PLACEHOLDER); + } + sb.append(System.lineSeparator()); + } + } + + private String prettyPrintIfNeeded(Logger logger, String contentType, String body) { + String result = body; + if (PRETTY_PRINT_BODY && contentType != null + && (contentType.startsWith(ContentType.APPLICATION_JSON) || contentType.startsWith("text/json"))) { + try { + final Object deserialized = PRETTY_PRINTER.readTree(body); + result = PRETTY_PRINTER.writeValueAsString(deserialized); + } catch (Exception e) { + logger.warn("Failed to pretty print JSON: {}", e.getMessage()); + } + } + return result; + } + + private long getContentLength(Logger logger, HttpHeaders headers) { + long contentLength = 0; + + String contentLengthString = headers.getValue("Content-Length"); + if (CoreUtils.isNullOrEmpty(contentLengthString)) { + return contentLength; + } + + try { + contentLength = Long.parseLong(contentLengthString); + } catch (NumberFormatException | NullPointerException e) { + logger.warn("Could not parse the HTTP header content-length: '{}'.", + headers.getValue("content-length"), e); + } + + return contentLength; + } + + private boolean shouldBodyBeLogged(String contentTypeHeader, long contentLength) { + return !ContentType.APPLICATION_OCTET_STREAM.equalsIgnoreCase(contentTypeHeader) + && contentLength != 0; + } + + private static String convertStreamToString(ByteArrayOutputStream stream, Logger logger) { + try { + return stream.toString(StandardCharsets.UTF_8.name()); + } catch (UnsupportedEncodingException ex) { + logger.error(ex.toString()); + throw new RuntimeException(ex); + } + } + + private static Mono writeBufferToBodyStream(WritableByteChannel channel, ByteBuffer byteBuffer) { + try { + channel.write(byteBuffer.duplicate()); + return Mono.just(byteBuffer); + } catch (IOException ex) { + return Mono.error(ex); + } + } +} diff --git a/sdk/identity/azure-identity-extensions/src/main/java/com/azure/identity/extensions/implementation/template/AzureAuthenticationTemplate.java b/sdk/identity/azure-identity-extensions/src/main/java/com/azure/identity/extensions/implementation/template/AzureAuthenticationTemplate.java index ec6a4a1c993e..489f6f5b7f00 100644 --- a/sdk/identity/azure-identity-extensions/src/main/java/com/azure/identity/extensions/implementation/template/AzureAuthenticationTemplate.java +++ b/sdk/identity/azure-identity-extensions/src/main/java/com/azure/identity/extensions/implementation/template/AzureAuthenticationTemplate.java @@ -126,7 +126,7 @@ TokenCredentialProvider getTokenCredentialProvider() { } Duration getBlockTimeout() { - return Duration.ofSeconds(30 * 4); + return Duration.ofSeconds(30 * 3); } AtomicBoolean getIsInitialized() { diff --git a/sdk/identity/azure-identity/pom.xml b/sdk/identity/azure-identity/pom.xml index 6d01a90111e5..30e72ac80467 100644 --- a/sdk/identity/azure-identity/pom.xml +++ b/sdk/identity/azure-identity/pom.xml @@ -6,7 +6,7 @@ com.azure azure-identity - 1.11.0-beta.1 + 1.10.0 Microsoft Azure client library for Identity This module contains client library for Microsoft Azure Identity. 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 4a16b2a93293..2dc14f4eb2f3 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 @@ -953,9 +953,12 @@ private Mono authenticateToArcManagedIdentityEndpoint(String identi * @return a Publisher that emits an AccessToken */ public Mono authenticateWithExchangeToken(TokenRequestContext request) { - + LOGGER.verbose("wi check exec authenticateWithExchangeToken"); return clientAssertionAccessor.getValue() - .flatMap(assertionToken -> Mono.fromCallable(() -> authenticateWithExchangeTokenHelper(request, assertionToken))); + .flatMap(assertionToken -> Mono.fromCallable(() -> { + LOGGER.verbose("wi check exec from callable, assertionToken: " + assertionToken); + return authenticateWithExchangeTokenHelper(request, assertionToken); + })); } /** @@ -1289,14 +1292,17 @@ private boolean isADFSTenant() { Function> getWorkloadIdentityTokenProvider() { return appTokenProviderParameters -> { + LOGGER.verbose("wi check exec appTokenProvider"); TokenRequestContext trc = new TokenRequestContext() .setScopes(new ArrayList<>(appTokenProviderParameters.scopes)) .setClaims(appTokenProviderParameters.claims) .setTenantId(appTokenProviderParameters.tenantId); + LOGGER.verbose("wi check authenticateWithExchangeTokenSync"); Mono accessTokenAsync = authenticateWithExchangeToken(trc); - + LOGGER.verbose("wi check return mono token"); return accessTokenAsync.map(accessToken -> { + LOGGER.verbose("wi check access token returned: " + accessToken.getToken()); TokenProviderResult result = new TokenProviderResult(); result.setAccessToken(accessToken.getToken()); result.setTenantId(trc.getTenantId()); 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 12f3430ddb4f..40c1ac3c2c26 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 @@ -421,6 +421,7 @@ ConfidentialClientApplication getWorkloadIdentityConfidentialClient() { throw LOGGER.logExceptionAsWarning(new IllegalStateException(e)); } + LOGGER.log(LogLevel.VERBOSE, () -> "wi-check set appTokenProvider 1"); applicationBuilder.appTokenProvider(getWorkloadIdentityTokenProvider()); @@ -585,7 +586,7 @@ AccessToken getTokenFromAzureCLIAuthentication(StringBuilder azCommand) { } } - LOGGER.verbose("Azure CLI Authentication => A token response was received from Azure CLI, deserializing the" + log("Azure CLI Authentication => A token response was received from Azure CLI, deserializing the" + " response into an Access Token."); Map objectMap = SERIALIZER_ADAPTER.deserialize(processOutput, Map.class, SerializerEncoding.JSON); @@ -709,6 +710,9 @@ AccessToken getTokenFromAzureDeveloperCLIAuthentication(StringBuilder azdCommand } AccessToken authenticateWithExchangeTokenHelper(TokenRequestContext request, String assertionToken) throws IOException { + log("wi check start authenticateWithExchangeTokenHelper"); + log("wi check start authenticateWithExchangeTokenHelper params: " + tenantId); + String authorityUrl = TRAILING_FORWARD_SLASHES.matcher(options.getAuthorityHost()).replaceAll("") + "/" + tenantId + "/oauth2/v2.0/token"; @@ -719,6 +723,8 @@ AccessToken authenticateWithExchangeTokenHelper(TokenRequestContext request, Str byte[] postData = urlParams.getBytes(StandardCharsets.UTF_8); int postDataLength = postData.length; + log("wi check token url " + authorityUrl + "," + urlParams); + HttpURLConnection connection = null; URL url = getUrl(authorityUrl); @@ -730,6 +736,7 @@ AccessToken authenticateWithExchangeTokenHelper(TokenRequestContext request, Str connection.setRequestProperty("Content-Length", Integer.toString(postDataLength)); connection.setRequestProperty("User-Agent", userAgent); connection.setDoOutput(true); + log("wi check acquire token"); try (DataOutputStream outputStream = new DataOutputStream(connection.getOutputStream())) { outputStream.write(postData); } @@ -744,6 +751,11 @@ AccessToken authenticateWithExchangeTokenHelper(TokenRequestContext request, Str } } + private void log(String msg) { + LOGGER.verbose(msg); + System.out.println(msg); + } + String getSafeWorkingDirectory() { if (isWindowsPlatform()) { String windowsSystemRoot = System.getenv("SystemRoot"); diff --git a/sdk/spring/spring-cloud-azure-autoconfigure/src/main/java/com/azure/spring/cloud/autoconfigure/jdbc/JdbcPropertiesBeanPostProcessor.java b/sdk/spring/spring-cloud-azure-autoconfigure/src/main/java/com/azure/spring/cloud/autoconfigure/jdbc/JdbcPropertiesBeanPostProcessor.java index 1ee6164196ca..b8730a85854d 100644 --- a/sdk/spring/spring-cloud-azure-autoconfigure/src/main/java/com/azure/spring/cloud/autoconfigure/jdbc/JdbcPropertiesBeanPostProcessor.java +++ b/sdk/spring/spring-cloud-azure-autoconfigure/src/main/java/com/azure/spring/cloud/autoconfigure/jdbc/JdbcPropertiesBeanPostProcessor.java @@ -36,6 +36,7 @@ import java.util.Map; import java.util.concurrent.TimeUnit; +import static com.azure.spring.cloud.autoconfigure.context.AzureContextUtils.DEFAULT_TOKEN_CREDENTIAL_BEAN_NAME; import static com.azure.spring.cloud.autoconfigure.implementation.jdbc.JdbcPropertyConstants.MYSQL_PROPERTY_CONNECTION_ATTRIBUTES_ATTRIBUTE_EXTENSION_VERSION; import static com.azure.spring.cloud.autoconfigure.implementation.jdbc.JdbcPropertyConstants.MYSQL_PROPERTY_CONNECTION_ATTRIBUTES_DELIMITER; import static com.azure.spring.cloud.autoconfigure.implementation.jdbc.JdbcPropertyConstants.MYSQL_PROPERTY_CONNECTION_ATTRIBUTES_KV_DELIMITER; @@ -145,36 +146,15 @@ private Map buildEnhancedProperties(DatabaseType databaseType, A LOGGER.debug("TokenCredentialProviderOptions - {}", providerOptions.getClientId() + "," + providerOptions.getTenantId() + ", " + providerOptions.isManagedIdentityEnabled() + ", " + providerOptions.getTokenCredentialProviderClassName()); - TokenCredentialProvider tokenCredentialProvider = TokenCredentialProvider.createDefault(providerOptions); +// TokenCredentialProvider tokenCredentialProvider = TokenCredentialProvider.createDefault(providerOptions); - TokenCredential tokenCredential = tokenCredentialProvider.get(); +// TokenCredential tokenCredential = tokenCredentialProvider.get(); - LOGGER.debug("processor token credential class {}, {}", tokenCredential, tokenCredential.getClass().getSimpleName()); +// LOGGER.debug("processor token credential class {}, {}", tokenCredential, tokenCredential.getClass().getSimpleName()); - int count = 20; - while (count > 0) { - count--; - LOGGER.debug("Sleeping 3 seconds."); - try { - TimeUnit.SECONDS.sleep(3); - } catch (InterruptedException e) { - throw new RuntimeException(e); - } - } - - try { - TokenRequestContext request = new TokenRequestContext().addScopes("https://management.azure.com"); - LOGGER.debug("First token"); - AccessToken accessToken = tokenCredential.getToken(request).block(Duration.ofMinutes(3)); - LOGGER.debug("Got first token: {}", accessToken != null && StringUtils.hasText(accessToken.getToken())); - } catch (Exception e) { - LOGGER.error("First getting token error", e); - } finally { - LOGGER.error("End the first getting token"); - } - - AuthProperty.TOKEN_CREDENTIAL_BEAN_NAME.setProperty(result, PASSWORDLESS_TOKEN_CREDENTIAL_BEAN_NAME); - applicationContext.registerBean(PASSWORDLESS_TOKEN_CREDENTIAL_BEAN_NAME, TokenCredential.class, () -> tokenCredential); +// AuthProperty.TOKEN_CREDENTIAL_BEAN_NAME.setProperty(result, PASSWORDLESS_TOKEN_CREDENTIAL_BEAN_NAME); + AuthProperty.TOKEN_CREDENTIAL_BEAN_NAME.setProperty(result, DEFAULT_TOKEN_CREDENTIAL_BEAN_NAME); +// applicationContext.registerBean(PASSWORDLESS_TOKEN_CREDENTIAL_BEAN_NAME, TokenCredential.class, () -> tokenCredential); LOGGER.debug("Add SpringTokenCredentialProvider as the default token credential provider."); AuthProperty.TOKEN_CREDENTIAL_PROVIDER_CLASS_NAME.setProperty(result, SPRING_TOKEN_CREDENTIAL_PROVIDER_CLASS_NAME); @@ -185,6 +165,53 @@ private Map buildEnhancedProperties(DatabaseType databaseType, A return result; } + @Override + public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { + if (bean instanceof TokenCredential && beanName.equalsIgnoreCase(PASSWORDLESS_TOKEN_CREDENTIAL_BEAN_NAME)) { + TokenCredential tokenCredential = (TokenCredential) bean; + sleep(5); + try { + TokenRequestContext request = new TokenRequestContext().addScopes("https://management.azure.com/.default"); + LOGGER.debug("First token"); + Mono accessTokenMono = tokenCredential.getToken(request); + LOGGER.debug("First token mono token returned"); + AccessToken accessToken = null; + try { + accessToken = accessTokenMono.block(Duration.ofSeconds(10)); + LOGGER.debug("Got first token: {}", accessToken != null && StringUtils.hasText(accessToken.getToken())); + } finally { + /*if (accessToken == null) { + LOGGER.debug("Mono token timeout"); + accessTokenMono.subscribe(token -> { + LOGGER.debug("First token: {}", token.getToken()); + }); + }*/ + } + /*accessTokenMono.subscribe(token -> { + LOGGER.debug("First token: {}", token.getToken()); + });*/ + } catch (Exception e) { + LOGGER.error("First getting token error", e); + } finally { + LOGGER.debug("End the first getting token"); + } + sleep(5); + } + return bean; + } + + private static void sleep(int count) { + while (count > 0) { + count--; + LOGGER.debug("Sleeping 3 seconds."); + try { + TimeUnit.SECONDS.sleep(1); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + } + } + @Override public void setEnvironment(Environment environment) { this.environment = environment;