2017-10-10 2 views
2

Comment sécuriser les paramètres serveur/proxy dans settings.xml dans maven?Comment sécuriser et crypter le fichier settings.xml paswords dans maven?

Je suppose qu'il s'agit principalement de connexion et de mots de passe stockés là et je suppose que ceux qui ne peuvent pas être placés là explicitement, devraient-ils être stockés dans des variables d'env/etc?

Comment devrait ressembler un exemple de settings.xml sécurisé?

Répondre

1

Vous avez 2 options:

1) Si vous devez utilisez uniquement settings.xml:

Execute:

mvn --encrypt-password <password> 

Vous obtiendrez le mot de passe crypté comme celui-ci:

{COQLCE6DU6GtcS5P=} 

Vous pouvez utiliser ce mot de passe i n vous Settings.xml:

<settings> 
... 
    <servers> 
    ... 
     <server> 
      <id>my.server</id> 
      <username>foo</username> 
      <password>{COQLCE6DU6GtcS5P=}</password> 
     </server> 
    ... 
    </servers> 
... 
</settings> 

2) Si vous devez utiliser dans de multiples usages:

Execute:

mvn --encrypt-master-password <password> 

Yo va obtenir le mot de passe crypté comme ceci:

{jSMOWnoPFgsHVpMvz5VrIt5kRbzGpI8u+9EF1iFQyJQ=} 

Stockez ce mot de passe dans les $ {use r.home}/m2/paramètres-security.xml il devrait ressembler à:.

<settingsSecurity> 
     <master>{jSMOWnoPFgsHVpMvz5VrIt5kRbzGpI8u+9EF1iFQyJQ=}</master> 
</settingsSecurity> 
+0

Merci pour l'exemple, puis-je en quelque sorte sécuriser l'emplacement du mot de passe maître plus que dans le fichier /.m2/settings-security.xml? – koller23

+0

J'ai édité mon post, si vous avez besoin d'utiliser plus que dans settings.xml vous pouvez créer le fichier /.m2/settings-security.xml –

1

Si un settings.xml est partagé (peut-être que c'est un fichier « équipe », peut-être il est assis sur une boîte de construction/CI partagé) alors les détails sensibles - en particulier les mots de passe - peuvent (devrait :) être cryptés.

  1. Créer un mot de passe maître:

    mvn --encrypt-master-password <password> 
    
  2. Ajouter le mot de passe maître settings-security.xml

  3. Chiffrer votre mot de passe

    mvn --encrypt-password <password> 
    
  4. Ajoutez la valeur cryptée à votre settings.xml

Plus de détails in the docs.

+0

Mot de passe maître est en effet nécessaire. Peut-il être encore plus sécurisé que juste un hachage crypté dans settings-security.xml? – koller23

+1

Pas que je sache. Cette approche repose sur garder votre 'settings-security.xml' _safe_. Les docs en font mention: "Pour un niveau de sécurité supplémentaire, vous pouvez encourager vos développeurs à stocker le mot de passe maître crypté sur un périphérique de stockage amovible comme un disque dur USB". – glytching

+0

Si vous utilisez sur un serveur CI, vous devriez laisser gérer que l'outil CI par exemple jenkins en utilisant le fournisseur de fichiers de configuration im combinaison avec le magasin d'informations d'identification ... – khmarbaise