PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Come passare il segreto DB AWS in tomcat context.xml?

Se vuoi caricare la credenziale DB in modo dinamico. È possibile solo per il tempo in cui Tomcat sta caricando context.xml una volta (perché Tomcat ha letto la variabile di ambiente solo una volta all'avvio).

Si noti che in fase di esecuzione, ogni volta che contxt.xml modificare le ricariche delle applicazioni Web pertinenti. Tomcat non viene riavviato.

Quindi il trucco è fornire le credenziali DB come parametro/argomento JVM, come il ${catalina.base} sopra

Ci sono 3 fasi:

  1. Dichiara e imposta il valore della variabile di ambiente:

    export DB_CREDENTIALS='*****'
    

    Un buon posto è nello script di accesso utente di Tomcat.bash_profile o ambienti Tomcat setenv.sh

  2. Crea un parametro JVM (variabile di sistema) per la variabile di ambiente:aggiungi la seguente riga a setenv.sh prima dell'ultima riga.

    -Denvironment.db.credentials=${DB_CREDENTIALS} \
    
  3. Utilizzare/chiamare il parametro JVM dichiarato in context.xml. Ad esempio:

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