Skip to content

Commit b0e5026

Browse files
authored
Don't log the token credential until it's used. (#8995)
1 parent aed9453 commit b0e5026

File tree

2 files changed

+20
-9
lines changed

2 files changed

+20
-9
lines changed

src/Aspire.Hosting.Azure/Provisioning/Provisioners/AzureProvisioner.cs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,7 @@ private async Task ProvisionAzureResources(
219219
var userSecretsLazy = new Lazy<Task<JsonObject>>(() => GetUserSecretsAsync(userSecretsPath, cancellationToken));
220220

221221
// Make resources wait on the same provisioning context
222-
var provisioningContextLazy = new Lazy<Task<ProvisioningContext>>(() => GetProvisioningContextAsync(tokenCredentialHolder.Credential, userSecretsLazy, cancellationToken));
222+
var provisioningContextLazy = new Lazy<Task<ProvisioningContext>>(() => GetProvisioningContextAsync(tokenCredentialHolder, userSecretsLazy, cancellationToken));
223223

224224
var tasks = new List<Task>();
225225

@@ -366,10 +366,14 @@ async Task PublishConnectionStringAvailableEventAsync()
366366
}
367367
}
368368

369-
private async Task<ProvisioningContext> GetProvisioningContextAsync(TokenCredential credential, Lazy<Task<JsonObject>> userSecretsLazy, CancellationToken cancellationToken)
369+
private async Task<ProvisioningContext> GetProvisioningContextAsync(TokenCredentialHolder holder, Lazy<Task<JsonObject>> userSecretsLazy, CancellationToken cancellationToken)
370370
{
371371
var subscriptionId = _options.SubscriptionId ?? throw new MissingConfigurationException("An Azure subscription id is required. Set the Azure:SubscriptionId configuration value.");
372372

373+
var credential = holder.Credential;
374+
375+
holder.LogCredentialType();
376+
373377
var armClient = new ArmClient(credential, subscriptionId);
374378

375379
logger.LogInformation("Getting default subscription...");

src/Aspire.Hosting.Azure/Provisioning/Provisioners/TokenCredentialHolder.cs

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,12 @@ namespace Aspire.Hosting.Azure.Provisioning;
1010

1111
internal class TokenCredentialHolder
1212
{
13+
private readonly ILogger<TokenCredentialHolder> _logger;
14+
1315
public TokenCredentialHolder(ILogger<TokenCredentialHolder> logger, IOptions<AzureProvisionerOptions> options)
1416
{
17+
_logger = logger;
18+
1519
// Optionally configured in AppHost appSettings under "Azure" : { "CredentialSource": "AzureCli" }
1620
var credentialSetting = options.Value.CredentialSource;
1721

@@ -32,19 +36,22 @@ public TokenCredentialHolder(ILogger<TokenCredentialHolder> logger, IOptions<Azu
3236
})
3337
};
3438

35-
if (credential.GetType() == typeof(DefaultAzureCredential))
39+
Credential = credential;
40+
}
41+
42+
public TokenCredential Credential { get; }
43+
44+
internal void LogCredentialType()
45+
{
46+
if (Credential.GetType() == typeof(DefaultAzureCredential))
3647
{
37-
logger.LogInformation(
48+
_logger.LogInformation(
3849
"Using DefaultAzureCredential for provisioning. This may not work in all environments. " +
3950
"See https://aka.ms/azsdk/net/identity/credential-chains#defaultazurecredential-overview for more information.");
4051
}
4152
else
4253
{
43-
logger.LogInformation("Using {credentialType} for provisioning.", credential.GetType().Name);
54+
_logger.LogInformation("Using {credentialType} for provisioning.", Credential.GetType().Name);
4455
}
45-
46-
Credential = credential;
4756
}
48-
49-
public TokenCredential Credential { get; }
5057
}

0 commit comments

Comments
 (0)