Ce site met a disposition le build journalier de la traduction francaise du Maven: The Definitive Guide
Consultez :
  • Les documents de reference sur le projet original
  • Les sources de la traduction fr sur GitHub
  • maven


    5.5.2. Protéger les mots de passe

    Cette bonne pratique est la conséquence de la section précédente. Dans la partie Profil d'un projet activé quand environment.type vaut 'dev', le profil de production ne contient pas la propriété database.password. J'ai fait cela délibérément pour illustrer le fait de stocker les mots de passe dans votre fichier settings.xml. Si vous développez une application dans une grande organisation qui accorde de l'importance à la sécurité, il est probable que la majorité des développeurs ne connaissent pas le mot de passe de production de la base de données. C'est la norme dans une organisation qui trace des lignes infranchissables entre équipe de développement et équipe de production. Les développeurs ont accès aux environnements de développement et de pré-production, mais ils pourraient ne pas avoir (ou ne pas vouloir) accès à la base de données de production. Il y a un certain nombre de raisons pour lesquelles cela aurait un sens, particulièrement, si une organisation gère des données sensibles financières, médicales ou autres. Dans ce scénario, l'environnement de production ne pourrait être utilisé que par le responsable technique ou par un membre de l'équipe de production. Quand ils exécutent le build avec la valeur prod pour la propriété environment.type, ils vont devoir définir cette variable dans leur fichier settings.xml comme suit :

    Exemple 5.7. Enregistrement de mots de passe dans un profil du fichier settings.xml propre à l'utilisateur

    <settings>
      <profiles>
        <profile>
          <activeByDefault>true</activeByDefault>
          <properties>
            <environment.type>prod</environment.type>
            <database.password>m1ss10nimp0ss1bl3</database.password>
          </properties>
        </profile>
      </profiles>
    </settings>
    

    Cet utilisateur a défini un profil par défaut qui donne à environment.type la valeur prod et qui spécifie le mot de passe de production. Quand le build du projet est exécuté, le profil de production est activé par la propriété environment.type et la propriété database.password est remplie. Ainsi, vous pouvez mettre toute la configuration spécifique à la production dans le fichier pom.xml du projet et retirer seulement le mot de passe nécessaire pour accéder à la base de données de production.

    Note

    Ces informations privées sont en général contraires à la portabilité, mais ce que nous venons de faire a du sens. Vous ne voudriez pas partager vos secrets avec n'importe qui.