أهلا،
أنا أتابع البرنامج التعليمي هنا: 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();
أتلقى خط خطأ أحمر أسفل "DefaultAzureCredentialBuilder (). build () الجديدة". عندما أحوم فوقها أرى هذه الرسالة:
"النوع المطلوب: TokenCredential
تم توفيره: DefaultAzureCredential "
لقد قمت بتثبيت واستيراد البرطمانات التالية:
azure-security-keyvault-secrets-4.1.1.jar
azure-Identity-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;
أي فكرة عما يمكنني فعله لإصلاح هذا؟
شكرا!
شكرًا لتقديم هذه المشكلة ، @ 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 وإعادة تحميل المشروع المخضرم قد حلاها - شكرًا!