Azure-sdk-for-java: Zugriff auf Azure Key Vault – DefaultAzureCredentialBuilder() löst Fehler aus

Erstellt am 6. Aug. 2020  ·  3Kommentare  ·  Quelle: Azure/azure-sdk-for-java

Hallo,
Ich folge dem Tutorial hier: https://docs.microsoft.com/en-us/azure/key-vault/secrets/quick-create-java
versuchen, ein Geheimnis aus einem Key Vault in meiner Java-Anwendung abzurufen.

Beim Versuch, eine SecretClient-Variable zu initialisieren, erhalte ich einen Fehler im Credential-Bit. Ich habe den folgenden Code direkt aus dem Tutorial in meinen Code eingefügt (habe eine String-Variable kvUri erstellt, die auf meinen Schlüsseltresor zeigt):
SecretClient secretClient = new SecretClientBuilder().vaultUrl(kvUri).credential(new DefaultAzureCredentialBuilder().build()) .buildClient();

Ich erhalte eine rote Fehlerzeile unter 'new DefaultAzureCredentialBuilder().build()'. Wenn ich mit der Maus darüber fahre, sehe ich diese Meldung:
"Erforderlicher Typ: TokenCredential
Bereitgestellt: DefaultAzureCredential"

Ich habe folgende Jars installiert und importiert:
azure-security-keyvault-secrets-4.1.1.jar
azure-identity-1.1.0-beta.7.jar

Anweisungen importieren:
import com.azure.security.keyvault.secrets.SecretClient; import com.azure.security.keyvault.secrets.SecretClientBuilder; import com.azure.identity.DefaultAzureCredentialBuilder;

  • Betriebssystem: Windows 10
  • IDE: IntelliJ

Irgendeine Idee, was ich tun kann, um das zu beheben?

Vielen Dank!

Client Docs KeyVault customer-reported question

Alle 3 Kommentare

Vielen Dank für die Einreichung dieses Problems, @ronny-sphera. @vcolin7 , @g2vinay kannst du bitte nachfassen?

Hallo @ronny-sphera, ich kann das von Ihnen erwähnte Problem nicht reproduzieren. Hier ist der Code, den ich verwendet habe:

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

Ich verwende auch die folgenden Abhängigkeiten:

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

Vielleicht könnten Sie versuchen, Ihr Projekt neu zu erstellen oder mvn clean install in dem Verzeichnis auszuführen, in dem sich Ihre POM-Datei befindet.

Das Hinzufügen der Abhängigkeiten zum Pom und das erneute Laden des Maven-Projekts scheint es gelöst zu haben - danke!

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen