Azure-sdk-for-java: Acessando o Azure Key Vault - DefaultAzureCredentialBuilder () gera erro

Criado em 6 ago. 2020  ·  3Comentários  ·  Fonte: Azure/azure-sdk-for-java

Oi,
Estou seguindo o tutorial aqui: https://docs.microsoft.com/en-us/azure/key-vault/secrets/quick-create-java
tentando recuperar um segredo de um Key Vault em meu aplicativo Java.

Ao tentar inicializar uma variável SecretClient, estou obtendo um erro no bit de credencial. Colei o seguinte código direto do tutorial em meu código (criei uma variável de string kvUri apontando para meu cofre de chaves):
SecretClient secretClient = new SecretClientBuilder().vaultUrl(kvUri).credential(new DefaultAzureCredentialBuilder().build()) .buildClient();

Estou recebendo uma linha de erro vermelha em 'new DefaultAzureCredentialBuilder (). Build ()'. Quando passo o mouse sobre ele, vejo esta mensagem:
"Tipo necessário: TokenCredential
Fornecido: DefaultAzureCredential "

Instalei e importei os seguintes jars:
azure-security-keyvault-secrets-4.1.1.jar
azure-identity-1.1.0-beta.7.jar

Declarações de importação:
import com.azure.security.keyvault.secrets.SecretClient; import com.azure.security.keyvault.secrets.SecretClientBuilder; import com.azure.identity.DefaultAzureCredentialBuilder;

  • SO: Windows 10
  • IDE: IntelliJ

Alguma ideia do que posso fazer para consertar isso?

Obrigado!

Client Docs KeyVault customer-reported question

Todos 3 comentários

Obrigado por registrar este problema, @ ronny-sphera. @ vcolin7 , @ g2vinay pode fazer um acompanhamento?

Olá @ ronny-sphera, Não consigo reproduzir o problema que você mencionou. Aqui está o código que usei:

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());
            }
        }
    }
}

Também estou usando as seguintes dependências:

<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>

Talvez você possa tentar reconstruir seu projeto ou executar mvn clean install no diretório onde seu arquivo POM está localizado.

Adicionar as dependências ao pom e recarregar o projeto maven parece ter resolvido - obrigado!

Esta página foi útil?
0 / 5 - 0 avaliações