Esempio n. 1
0
        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;
 }