示例#1
0
        public void test_that_we_can_parse_key_vault_references()
        {
            var refString   = "@AzureKeyVault(secretName, vaultUrl)";
            var keyVaultRef = AzureKeyVaultReference.CreateFromString(refString);

            Assert.Equal("secretName", keyVaultRef.KeyVaultSecretName);
            Assert.Equal("vaultUrl", keyVaultRef.KeyVaultUrl);
            Assert.Equal(refString, keyVaultRef.ToString());

            // assert trimming of value and url
            refString   = "@AzureKeyVault(   secretName  , vaultUrl  )";
            keyVaultRef = AzureKeyVaultReference.CreateFromString(refString);
            Assert.Equal("secretName", keyVaultRef.KeyVaultSecretName);
            Assert.Equal("vaultUrl", keyVaultRef.KeyVaultUrl);
            Assert.Equal("@AzureKeyVault(secretName, vaultUrl)", keyVaultRef.ToString());

            // assert that we can ommitt url
            refString   = "@AzureKeyVault(secretName)";
            keyVaultRef = AzureKeyVaultReference.CreateFromString(refString);
            Assert.Equal("secretName", keyVaultRef.KeyVaultSecretName);
            Assert.Null(keyVaultRef.KeyVaultUrl);
            Assert.Equal(refString, keyVaultRef.ToString());

            // assert that we can handle sloppy config managers
            refString   = "@AzureKeyVault(secretName, )";
            keyVaultRef = AzureKeyVaultReference.CreateFromString(refString);
            Assert.Equal("secretName", keyVaultRef.KeyVaultSecretName);
            Assert.Null(keyVaultRef.KeyVaultUrl);
            Assert.Equal("@AzureKeyVault(secretName)", keyVaultRef.ToString());
        }
示例#2
0
        public void test_that_we_get_expected_exception_when_having_invalid_format()
        {
            Assert.Throws <ParsKeyVaultReferenceException>(() => {
                AzureKeyVaultReference.CreateFromString("@AzureKeyVault()");
            });

            Assert.Throws <ParsKeyVaultReferenceException>(() => {
                AzureKeyVaultReference.CreateFromString("@AzureKeyVault(a,b,c)");
            });
        }
 private IDictionary <string, AzureKeyVaultReference> FilterOutSettingsWithKeyVaultRefRecursive(IConfiguration configSection, IDictionary <string, AzureKeyVaultReference> refs)
 {
     foreach (var childSection in configSection.GetChildren())
     {
         FilterOutSettingsWithKeyVaultRefRecursive(childSection, refs);
         var value = childSection.Value;
         if (value != null && value.StartsWith(AzureKeyVaultReference.CONFIG_VALUE_PREFIX))
         {
             try
             {
                 refs.Add(childSection.Path, AzureKeyVaultReference.CreateFromString(value));
             } catch (ParsKeyVaultReferenceException parseException)
             {
                 throw new InvalidConfigException(
                           "Unable to parse key vault reference in setting " + childSection.Path +
                           " got error: " + parseException.Message
                           );
             }
         }
     }
     return(refs);
 }