Azure-sdk-for-java: Acceder a Azure Key Vault: DefaultAzureCredentialBuilder () arroja un error

Creado en 6 ago. 2020  ·  3Comentarios  ·  Fuente: Azure/azure-sdk-for-java

Hola,
Estoy siguiendo el tutorial aquí: https://docs.microsoft.com/en-us/azure/key-vault/secrets/quick-create-java
tratando de recuperar un secreto de un Key Vault en mi aplicación Java.

Cuando intento inicializar una variable SecretClient, obtengo un error en el bit de credencial. Pegué el siguiente código directamente del tutorial en mi código (he creado una variable de cadena kvUri que apunta a mi bóveda de claves):
SecretClient secretClient = new SecretClientBuilder().vaultUrl(kvUri).credential(new DefaultAzureCredentialBuilder().build()) .buildClient();

Recibo una línea de error roja debajo de 'new DefaultAzureCredentialBuilder (). Build ()'. Cuando coloco el cursor sobre él, veo este mensaje:
"Tipo obligatorio: TokenCredential
Proporcionado: DefaultAzureCredential "

Instalé e importé los siguientes frascos:
azure-security-keyvault-secrets-4.1.1.jar
azure-identity-1.1.0-beta.7.jar

Importar declaraciones:
import com.azure.security.keyvault.secrets.SecretClient; import com.azure.security.keyvault.secrets.SecretClientBuilder; import com.azure.identity.DefaultAzureCredentialBuilder;

  • SO: Windows 10
  • IDE: IntelliJ

¿Alguna idea de lo que puedo hacer para solucionar este problema?

¡Gracias!

Client Docs KeyVault customer-reported question

Todos 3 comentarios

Gracias por presentar este problema, @ ronny-sphera. @ vcolin7 , @ g2vinay, ¿ pueden hacer un seguimiento?

Hola @ ronny-sphera, parece que no puedo reproducir el problema que mencionas. Aquí está el código que usé:

import com.azure.identity.DefaultAzureCredentialBuilder;
import com.azure.security.keyvault.secrets.SecretClient;
import com.azure.security.keyvault.secrets.SecretClientBuilder;
import com.azure.security.keyvault.secrets.models.KeyVaultSecret;
import com.azure.security.keyvault.secrets.models.SecretProperties;

public class ListSecrets {
    public static void main(String[] args) {
        String keyVaultUrl = "https://<your-keyvault-name>.vault.azure.net/";

        SecretClient secretClient = new SecretClientBuilder()
            .vaultUrl(keyVaultUrl)
            .credential(new DefaultAzureCredentialBuilder().build())
            .buildClient();

        System.out.println("Listing secrets");

        for(SecretProperties secretProperties : secretClient.listPropertiesOfSecrets()) {
            if (secretProperties.isEnabled()) {
                KeyVaultSecret secret = secretClient.getSecret(secretProperties.getName());

                System.out.printf("Secret name: %s, secret value: %s\n", secret.getName(), secret.getValue());
            }
        }
    }
}

También estoy usando las siguientes dependencias:

<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-security-keyvault-secrets</artifactId>
    <version>4.1.1</version>
</dependency>
<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-identity</artifactId>
    <version>1.1.0-beta.7</version>
</dependency>

Tal vez podría intentar reconstruir su proyecto o ejecutar mvn clean install en el directorio donde se encuentra su archivo POM.

Agregar las dependencias al pom y volver a cargar el proyecto maven parece haberlo resuelto, ¡gracias!

¿Fue útil esta página
0 / 5 - 0 calificaciones