public async Task CanGetJwt() { var sut = await VaultHelper.CreateAsync(Config); var secret = await sut.GetLiveSecretAsync("JWT", SecretGetters.MakeJwtGetter("auth", TimeSpan.FromSeconds(1), "vandelay", "tester")); var firstValue = secret.Value; firstValue.Should().NotBeEmpty(); await Task.Delay(TimeSpan.FromSeconds(1)); var secondValue = secret.Value; secondValue.Should().NotBeEmpty(); secondValue.Should().NotBe(firstValue, "the token should have been refreshed"); secret.Dispose(); await Task.Delay(TimeSpan.FromSeconds(1)); Func <string> lateGet = () => secret.Value; lateGet.Should().Throw <Exception>("the secret value cannot be read after it is disposed"); }
public async Task CanGetMongoCreds() { var sut = await VaultHelper.CreateAsync(Config); var secret = await sut.GetLiveSecretAsync("MongoDB", SecretGetters.MakeSecretTemplateGetter("mongodb://(vault://database/creds/mongodb-admin?template={{.username}}:{{.password}})@mongodb:27017/go-between?readPreference=primary")); var firstValue = secret.Value; firstValue.Should().NotBeEmpty(); firstValue.Should().MatchRegex(@"mongodb:\/\/[^:]+[^@]+@", "the username and password should be mapped in"); }