Beispiel #1
0
        public async Task <string> ResolveAsync(Secret secret)
        {
            if (secret == null)
            {
                SecretNotDefinedException.Raise();
            }

            if (string.IsNullOrWhiteSpace(secret.Source))
            {
                InvalidSecretDefinitionException.Raise(secret.Source, secret.Identifier);
            }

            if (string.IsNullOrWhiteSpace(secret.Identifier))
            {
                InvalidSecretDefinitionException.Raise(secret.Source, secret.Identifier);
            }

            if (secret.Source.ToUpperInvariant() != Source)
            {
                SecretNotFoundException.Raise(secret.Source, secret.Identifier);
            }

            var result = Environment.GetEnvironmentVariable(secret.Identifier);

            if (result != null)
            {
                return(await Task.FromResult(result.Trim()));
            }

            if (!secret.Optional)
            {
                SecretNotFoundException.Raise(secret.Source, secret.Identifier);
            }

            return(default);
Beispiel #2
0
        public async Task <string> ResolveAsync(Secret secret)
        {
            if (secret == null)
            {
                SecretNotDefinedException.Raise();
            }

            if (string.IsNullOrWhiteSpace(secret.Source))
            {
                InvalidSecretDefinitionException.Raise(secret.Source, secret.Identifier);
            }

            if (string.IsNullOrWhiteSpace(secret.Identifier))
            {
                InvalidSecretDefinitionException.Raise(secret.Source, secret.Identifier);
            }

            if (secret.Source.ToUpperInvariant() != Source)
            {
                SecretNotFoundException.Raise(secret.Source, secret.Identifier);
            }

            if (!File.Exists(secret.Identifier))
            {
                if (!secret.Optional)
                {
                    SecretNotFoundException.Raise(secret.Source, secret.Identifier);
                }

                return(default);
Beispiel #3
0
        public void Exception_CreateWithName_ShouldSucceed()
        {
            // Arrange
            string secretName = Guid.NewGuid().ToString("N");

            // Act & Assert
            var exceptionToAssert = new SecretNotFoundException(secretName, null);

            Assert.Equal(secretName, exceptionToAssert.Name);
            Assert.Null(exceptionToAssert.InnerException);
            Assert.Contains(secretName, exceptionToAssert.Message);
        }
Beispiel #4
0
        public async Task <string> ResolveSecretAsync(Secret secret)
        {
            if (secret == null)
            {
                SecretNotDefinedException.Raise();
            }

            if (string.IsNullOrWhiteSpace(secret.Source))
            {
                InvalidSecretDefinitionException.Raise(secret.Source, secret.Identifier);
            }

            if (string.IsNullOrWhiteSpace(secret.Identifier))
            {
                InvalidSecretDefinitionException.Raise(secret.Source, secret.Identifier);
            }

            if (!sources.ContainsKey(secret.Source.ToUpperInvariant()))
            {
                InvalidSecretSourceException.Raise(secret.Source, secret.Identifier);
            }

            var source = sources[secret.Source.ToUpperInvariant()];
            var result = await source.ResolveAsync(secret);

            if (result != null)
            {
                return(result);
            }

            if (!secret.Optional)
            {
                SecretNotFoundException.Raise(secret.Source, secret.Identifier);
            }

            return(default);