@@ -63,16 +63,15 @@ export class AzureAppConfigurationImpl extends Map<string, unknown> implements A
6363 private async resolveKeyVaultReference ( setting : ConfigurationSetting < string > ) {
6464 // TODO: cache results to save requests.
6565 if ( ! this . options ?. keyVaultOptions ) {
66- throw new Error ( "Need key vault options to resolve reference ." ) ;
66+ throw new Error ( "Configure keyVaultOptions to resolve Key Vault Reference(s) ." ) ;
6767 }
6868
6969 // precedence: secret clients > credential > secret resolver
70- const parsedSecretReference = parseSecretReference ( setting ) ;
7170 const { name : secretName , vaultUrl, sourceId } = parseKeyVaultSecretIdentifier (
72- parsedSecretReference . value . secretId
71+ parseSecretReference ( setting ) . value . secretId
7372 ) ;
7473
75- const client = this . getSecretClient ( vaultUrl ) ;
74+ const client = this . getSecretClient ( new URL ( vaultUrl ) ) ;
7675 if ( client ) {
7776 // TODO: what if error occurs when reading a key vault value? Now it breaks the whole load.
7877 const secret = await client . getSecret ( secretName ) ;
@@ -86,7 +85,7 @@ export class AzureAppConfigurationImpl extends Map<string, unknown> implements A
8685 throw new Error ( "No key vault credential or secret resolver callback configured, and no matching secret client could be found." ) ;
8786 }
8887
89- private getSecretClient ( vaultUrl : string ) : SecretClient | undefined {
88+ private getSecretClient ( vaultUrl : URL ) : SecretClient | undefined {
9089 if ( this . secretClients === undefined ) {
9190 this . secretClients = new Map ( ) ;
9291 for ( const c of this . options ?. keyVaultOptions ?. secretClients ?? [ ] ) {
@@ -95,14 +94,14 @@ export class AzureAppConfigurationImpl extends Map<string, unknown> implements A
9594 }
9695
9796 let client : SecretClient | undefined ;
98- client = this . secretClients . get ( getHost ( vaultUrl ) ) ;
97+ client = this . secretClients . get ( vaultUrl . host ) ;
9998 if ( client !== undefined ) {
10099 return client ;
101100 }
102101
103102 if ( this . options ?. keyVaultOptions ?. credential ) {
104- client = new SecretClient ( vaultUrl , this . options . keyVaultOptions . credential ) ;
105- this . secretClients . set ( vaultUrl , client ) ;
103+ client = new SecretClient ( vaultUrl . toString ( ) , this . options . keyVaultOptions . credential ) ;
104+ this . secretClients . set ( vaultUrl . host , client ) ;
106105 return client ;
107106 }
108107
0 commit comments