Skip to content

Commit efb7742

Browse files
Allow user to set keyvault secret client option (#577)
* add secret client option * update comment * rename to configure * use callback configuration pattern * remove unused package
1 parent 08e5930 commit efb7742

File tree

2 files changed

+18
-1
lines changed

2 files changed

+18
-1
lines changed

src/Microsoft.Extensions.Configuration.AzureAppConfiguration/AzureAppConfigurationKeyVaultOptions.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ namespace Microsoft.Extensions.Configuration.AzureAppConfiguration
1515
public class AzureAppConfigurationKeyVaultOptions
1616
{
1717
internal TokenCredential Credential;
18+
internal SecretClientOptions ClientOptions = new SecretClientOptions();
1819
internal List<SecretClient> SecretClients = new List<SecretClient>();
1920
internal Func<Uri, ValueTask<string>> SecretResolver;
2021
internal Dictionary<string, TimeSpan> SecretRefreshIntervals = new Dictionary<string, TimeSpan>();
@@ -31,6 +32,17 @@ public AzureAppConfigurationKeyVaultOptions SetCredential(TokenCredential creden
3132
return this;
3233
}
3334

35+
/// <summary>
36+
/// Configures the client options used when connecting to key vaults that have no registered <see cref="SecretClient"/>.
37+
/// The client options will not affect <see cref="SecretClient"/> instances registered via <see cref="Register(SecretClient)"/>.
38+
/// </summary>
39+
/// <param name="configure">A callback used to configure secret client options.</param>
40+
public AzureAppConfigurationKeyVaultOptions ConfigureClientOptions(Action<SecretClientOptions> configure)
41+
{
42+
configure?.Invoke(ClientOptions);
43+
return this;
44+
}
45+
3446
/// <summary>
3547
/// Registers the specified <see cref="SecretClient"/> instance to use to resolve key vault references for secrets from associated key vault.
3648
/// </summary>

src/Microsoft.Extensions.Configuration.AzureAppConfiguration/AzureKeyVaultReference/AzureKeyVaultSecretProvider.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,8 +115,13 @@ private SecretClient GetSecretClient(Uri secretUri)
115115
return null;
116116
}
117117

118-
client = new SecretClient(new Uri(secretUri.GetLeftPart(UriPartial.Authority)), _keyVaultOptions.Credential);
118+
client = new SecretClient(
119+
new Uri(secretUri.GetLeftPart(UriPartial.Authority)),
120+
_keyVaultOptions.Credential,
121+
_keyVaultOptions.ClientOptions);
122+
119123
_secretClients.Add(keyVaultId, client);
124+
120125
return client;
121126
}
122127

0 commit comments

Comments
 (0)