Azure-sdk-for-java: Доступ к хранилищу ключей Azure - DefaultAzureCredentialBuilder () выдает ошибку

Созданный на 6 авг. 2020  ·  3Комментарии  ·  Источник: Azure/azure-sdk-for-java

Привет,
Я следую руководству здесь: https://docs.microsoft.com/en-us/azure/key-vault/secrets/quick-create-java
пытаюсь получить секрет из Key Vault в моем приложении Java.

При попытке инициализировать переменную SecretClient я получаю ошибку в бите учетных данных. Я вставил следующий код прямо из учебника в свой код (создал строковую переменную kvUri, указывающую на мое хранилище ключей):
SecretClient secretClient = new SecretClientBuilder().vaultUrl(kvUri).credential(new DefaultAzureCredentialBuilder().build()) .buildClient();

Я получаю красную строку ошибки в разделе «new DefaultAzureCredentialBuilder (). Build ()». При наведении курсора на него появляется сообщение:
"Обязательный тип: TokenCredential
Предоставлено: DefaultAzureCredential "

Я установил и импортировал следующие банки:
Лазурный-безопасность-keyvault-секреты-4.1.1.jar
лазурная идентичность-1.1.0-beta.7.jar

Операторы импорта:
import com.azure.security.keyvault.secrets.SecretClient; import com.azure.security.keyvault.secrets.SecretClientBuilder; import com.azure.identity.DefaultAzureCredentialBuilder;

  • ОС: Windows 10
  • IDE: IntelliJ

Есть идеи, что я могу сделать, чтобы это исправить?

Спасибо!

Client Docs KeyVault customer-reported question

Все 3 Комментарий

Спасибо за отправку этого вопроса, @ ronny-sphera. @ vcolin7 , @ g2vinay, не могли бы вы продолжить?

Привет, @ ronny-sphera, мне кажется, я не могу воспроизвести проблему, о которой вы упомянули. Вот код, который я использовал:

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

Я также использую следующие зависимости:

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

Возможно, вы могли бы попытаться перестроить свой проект или запустить mvn clean install в каталоге, где находится ваш файл POM.

Добавление зависимостей в pom и перезагрузка проекта maven, похоже, решили эту проблему - спасибо!

Была ли эта страница полезной?
0 / 5 - 0 рейтинги