BT

Nouveau Early adopter ou innovator ? InfoQ a travaillé sur de nouvelles fonctionnalités pour vous. En savoir plus

Spring Vault GA 1.0 est disponible

| par Andrew Morgan Suivre 0 Abonnés , traduit par Nicolas Frankel Suivre 3 Abonnés le 15 mai 2017. Durée de lecture estimée: 2 minutes |

Pivotal a annoncé la disponibilité générale de Spring Vault 1.0. Il s'agit d'une bibliothèque Java qui offre des abstractions côté client autour de Hashicorp Vault, un outil de gestion de secrets. En appliquant les idiomes classiques de Spring, il permet à Vault d'être plus aisément intégré aux applications Spring ou Java. Ces patterns familiers comprennent des modèles, des sources de propriété et bien d'autres.

Hashicorp Vault est un outil qui fournit aux développeurs un moyen sécurisé d'accéder et de stocker des secrets tels que des jetons API, des certificats SSL et des mots de passe. Il gère également le contrôle d'accès des utilisateurs, avec la possibilité de révocation et de rotation des jetons. De plus, il existe également des fonctionnalités d'audit qui permettent de pister les utilisateurs.

Les développeurs Java qui souhaitent adopter Vault auront le choix entre la ligne de commande ou l'API. Ainsi, lorsque Vault est utilisé depuis la JVM, il est probable que les développeurs choisissent l'API et mettent en œuvre leur propre bibliothèque client. Spring Vault supprime la nécessité pour les développeurs de le faire eux-mêmes, en fournissant un projet open source. L'initiative est également soutenue par une entreprise commerciale, Pivotal.

Bien que n'étant pas dépendant de Spring lui-même, les principes de conception de haut niveau et les abstractions sont classiques, ainsi que l'objectif de réduire le code boilerplate pour le développeur. Cela signifie que l'adoption du framework devrait être particulièrement simple pour les développeurs Spring, ainsi que pour le développeur Java typique.

Pour interagir avec Vault, Spring Vault utilise la classe centrale VaultTemplate. En ce qui concerne la ligne de commande et l'API de Vault, elles offrent des opérations standard telles que "écrire", "lire", "supprimer" et "révoquer" :

Secret toWrite = new Secret("foo");
vaultTemplate.write("mysecret/myapp", toWrite);

VaultResponseSupport<Secret> toRead = vaultTemplate.read("mysecret/myapp", Secret.class);
vaultTemplate.delete("mysecret/myapp");

 

L'usage de l'annotation @VaultPropertySource offre un mécanisme déclaratif qui permet à Spring Vault de faire correspondre implicitement des secrets aux objets Java :

@VaultPropertySource(value = "foo/creds", propertyNamePrefix = "foo")
public class SomeConfig {
  // ...
}

public class MyProperties {
  @Value("${foo.username}")
  private String awsAccessKey;

  @Value("${foo.password}")
  private String awsSecretKey;

  // ...
}

La bibliothèque prend également en charge plusieurs mécanismes d'authentification : AppId, AppRole, AWS EC2, TLS Certificates et Cubbyhole. En les fournissant grâce à des implémentations de la classe ClientAuthentication, cela signifie qu'un développeur Java est doté de code pour une connexion initiale plus facile à établir.

La nécessité de gérer les sessions est également gérée par le framework via la classe SessionManager. Cela signifie que les tâches telles que le renouvellement et la révocation de jetons sont automatisées et ne doivent pas être effectuées explicitement par le code de l'application, évitant par là même à nouveau les coûts de développement inutiles.

La documentation officielle comporte des détails supplémentaires, la bibliothèque est disponible en téléchargement sur Maven Central et le code source est disponible sur GitHub.

Evaluer cet article

Pertinence
Style

Bonjour étranger!

Vous devez créer un compte InfoQ ou cliquez sur pour déposer des commentaires. Mais il y a bien d'autres avantages à s'enregistrer.

Tirez le meilleur d'InfoQ

Donnez-nous votre avis

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet
Commentaires de la Communauté

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet

Discuter

Se connecter à InfoQ pour interagir sur ce qui vous importe le plus.


Récupérer votre mot de passe

Follow

Suivre vos sujets et éditeurs favoris

Bref aperçu des points saillants de l'industrie et sur le site.

Like

More signal, less noise

Créez votre propre flux en choisissant les sujets que vous souhaitez lire et les éditeurs dont vous désirez suivre les nouvelles.

Notifications

Restez à jour

Paramétrez vos notifications et ne ratez pas le contenu qui vous importe

BT