Salut,
Je suis le tutoriel ici : https://docs.microsoft.com/en-us/azure/key-vault/secrets/quick-create-java
essayer de récupérer un secret à partir d'un coffre de clés dans mon application Java.
Lorsque j'essaie d'initialiser une variable SecretClient, j'obtiens une erreur dans le bit d'identification. J'ai collé le code suivant directement du didacticiel dans mon code (j'ai créé une variable de chaîne kvUri pointant vers mon coffre de clés):
SecretClient secretClient = new SecretClientBuilder().vaultUrl(kvUri).credential(new DefaultAzureCredentialBuilder().build()) .buildClient();
J'obtiens une ligne d'erreur rouge sous 'new DefaultAzureCredentialBuilder().build()'. Quand je survole, je vois ce message :
"Type requis : TokenCredential
Fourni : DefaultAzureCredential"
J'ai installé et importé les jars suivants :
azure-security-keyvault-secrets-4.1.1.jar
azure-identity-1.1.0-beta.7.jar
Importer des déclarations :
import com.azure.security.keyvault.secrets.SecretClient;
import com.azure.security.keyvault.secrets.SecretClientBuilder;
import com.azure.identity.DefaultAzureCredentialBuilder;
Une idée de ce que je peux faire pour régler ça ?
Merci!
Merci d'avoir signalé ce problème, @ronny-sphera. @vcolin7 , @g2vinay pouvez-vous faire un suivi ?
Salut @ronny-sphera, je n'arrive pas à reproduire le problème que vous mentionnez. Voici le code que j'ai utilisé :
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());
}
}
}
}
J'utilise également les dépendances suivantes :
<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>
Vous pourriez peut-être essayer de reconstruire votre projet ou exécuter mvn clean install
dans le répertoire où se trouve votre fichier POM.
L'ajout des dépendances au pom et le rechargement du projet maven semblent l'avoir résolu - merci!