in src/Microsoft.Extensions.Configuration.AzureAppConfiguration/AzureKeyVaultReference/AzureKeyVaultSecretProvider.cs [188:215]
private void UpdateCacheExpirationTimeForSecret(string key, CachedKeyVaultSecret cachedSecret, bool success)
{
if (!_keyVaultOptions.SecretRefreshIntervals.TryGetValue(key, out TimeSpan cacheExpirationTime))
{
if (_keyVaultOptions.DefaultSecretRefreshInterval.HasValue)
{
cacheExpirationTime = _keyVaultOptions.DefaultSecretRefreshInterval.Value;
}
}
if (cacheExpirationTime > TimeSpan.Zero)
{
if (success)
{
cachedSecret.RefreshAttempts = 0;
cachedSecret.RefreshAt = DateTimeOffset.UtcNow.Add(cacheExpirationTime);
}
else
{
if (cachedSecret.RefreshAttempts < int.MaxValue)
{
cachedSecret.RefreshAttempts++;
}
cachedSecret.RefreshAt = DateTimeOffset.UtcNow.Add(cacheExpirationTime.CalculateBackoffTime(RefreshConstants.DefaultMinBackoff, RefreshConstants.DefaultMaxBackoff, cachedSecret.RefreshAttempts));
}
}
}