Azure-sdk-for-java: Mengakses Azure Key Vault - DefaultAzureCredentialBuilder() menimbulkan kesalahan

Dibuat pada 6 Agu 2020  ·  3Komentar  ·  Sumber: Azure/azure-sdk-for-java

Hai,
Saya mengikuti tutorial di sini: https://docs.microsoft.com/en-us/azure/key-vault/secrets/quick-create-java
mencoba mengambil rahasia dari Key Vault di aplikasi Java saya.

Saat mencoba menginisialisasi variabel SecretClient, saya mendapatkan kesalahan dalam bit kredensial. Saya menempelkan kode berikut langsung dari tutorial ke dalam kode saya (telah membuat variabel string kvUri yang menunjuk ke brankas kunci saya):
SecretClient secretClient = new SecretClientBuilder().vaultUrl(kvUri).credential(new DefaultAzureCredentialBuilder().build()) .buildClient();

Saya mendapatkan garis kesalahan merah di bawah 'new DefaultAzureCredentialBuilder().build()'. Ketika saya mengarahkan kursor, saya melihat pesan ini:
"Jenis yang diperlukan: TokenCredential
Disediakan: DefaultAzureCredential"

Saya telah menginstal dan mengimpor toples berikut:
Azure-security-keyvault-secrets-4.1.1.jar
identitas-biru-1.1.0-beta.7.jar

Pernyataan impor:
import com.azure.security.keyvault.secrets.SecretClient; import com.azure.security.keyvault.secrets.SecretClientBuilder; import com.azure.identity.DefaultAzureCredentialBuilder;

  • OS: Windows 10
  • IDE: IntelliJ

Adakah yang tahu apa yang bisa saya lakukan untuk memperbaiki ini?

Terima kasih!

Client Docs KeyVault customer-reported question

Semua 3 komentar

Terima kasih telah mengajukan masalah ini, @ronny-sphera. @vcolin7 , @g2vinay bisa tolong ditindaklanjuti?

Hai @ronny-sphera, sepertinya saya tidak dapat mereproduksi masalah yang Anda sebutkan. Berikut kode yang saya gunakan:

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

Saya juga menggunakan dependensi berikut:

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

Mungkin Anda dapat mencoba membangun kembali proyek Anda atau menjalankan mvn clean install di direktori tempat file POM Anda berada.

Menambahkan dependensi ke pom dan memuat ulang proyek pakar tampaknya telah menyelesaikannya - terima kasih!

Apakah halaman ini membantu?
0 / 5 - 0 peringkat