PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment passer le secret DB AWS dans tomcat context.xml ?

Si vous souhaitez charger dynamiquement les informations d'identification de la base de données. Il est possible de ne charger que le temps que Tomcat charge context.xml une fois (parce que Tomcat ne lit la variable d'environnement qu'une seule fois au démarrage).

Notez qu'au moment de l'exécution, chaque fois que contxt.xml modifier les recharges d'application Web pertinentes. Tomcat n'est pas redémarré.

L'astuce consiste donc à fournir les informations d'identification de la base de données en tant que paramètre/argument JVM, comme ci-dessus ${catalina.base}

Il y a 3 étapes :

  1. Déclarez et définissez la valeur de la variable d'environnement :

    export DB_CREDENTIALS='*****'
    

    Le bon endroit est le script de connexion utilisateur de Tomcat.bash_profile , ou environnements Tomcat setenv.sh

  2. Créez un paramètre JVM (variable système) pour la variable d'environnement :ajoutez la ligne suivante à setenv.sh avant la dernière ligne.

    -Denvironment.db.credentials=${DB_CREDENTIALS} \
    
  3. Utilisez/appelez le paramètre JVM déclaré dans context.xml. Par exemple :

    url="jdbc:postgresql://**********:****/${environment.db.credentials}"