public static IConfigurationBuilder AddVaultSecrets(this IConfigurationBuilder builder, bool shouldReload, int reloadInterval) { IConfigurationRoot configuration = builder.Build(); var vaultConfiguration = configuration.GetSection("Vault").Get <VaultConnectionConfiguration>(); var options = new VaultConfigurationProviderOptions() { Reload = shouldReload, ReloadInterval = reloadInterval }; builder.Add(new VaultSecretConfigurationSource(vaultConfiguration, options)); return(builder); }
public VaultSecretConfigurationProvider(VaultConnectionConfiguration connectionConfiguration, VaultConfigurationProviderOptions options) { var vaultClient = new VaultClient(new VaultClientSettings(connectionConfiguration.VaultAddress, new TokenAuthMethodInfo(connectionConfiguration.AuthenticationToken))); _vaultService = new BasicVaultService(vaultClient); _connectionConfiguration = connectionConfiguration; if (options.Reload) { _reloadTimer.AutoReset = false; _reloadTimer.Interval = options.ReloadInterval; _reloadTimer.Elapsed += (s, e) => { Load(); }; } }
public VaultSecretConfigurationSource(VaultConnectionConfiguration connectionConfiguration, VaultConfigurationProviderOptions configurationProviderOptions) { _connectionConfiguration = connectionConfiguration; _configurationProviderOptions = configurationProviderOptions; }