29 lines
908 B
C#
29 lines
908 B
C#
using Microsoft.Extensions.Configuration;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using Vault.Demo.hashicorp.Console.Handler;
|
|
using VaultSharp;
|
|
|
|
namespace Vault.Demo.hashicorp.Console.Helper;
|
|
|
|
internal class ConnectionStringProvider : IConnectionStringProvider
|
|
{
|
|
private readonly IValueClientProvider _vaultClient;
|
|
|
|
public ConnectionStringProvider(IValueClientProvider vaultClient) =>
|
|
this._vaultClient = vaultClient;
|
|
|
|
public async Task<string> GetConnectionString(string key)
|
|
{
|
|
ArgumentException.ThrowIfNullOrWhiteSpace(key, nameof(key));
|
|
var client = _vaultClient.GetValueClient();
|
|
var secrate = await _vaultClient.GetSecret(client);
|
|
|
|
return secrate.Data.Data.TryGetValue(key, out var val)
|
|
? val?.ToString() ?? string.Empty
|
|
: string.Empty;
|
|
}
|
|
} |