sql >> Base de Datos >  >> RDS >> PostgreSQL

¿Cómo pasar el secreto DB AWS a tomcat context.xml?

Si desea cargar la credencial DB dinámicamente. Es posible solo durante el tiempo que Tomcat está cargando context.xml una vez (porque Tomcat lee la variable de entorno solo una vez al inicio).

Tenga en cuenta que en tiempo de ejecución, siempre que contxt.xml cambiar las recargas de aplicaciones web relevantes. Tomcat no se reinicia.

Entonces, el truco es entregar las credenciales de la base de datos como parámetro/argumento de JVM, como el ${catalina.base} anterior.

Hay 3 etapas:

  1. Declarar y establecer valor a la variable de entorno:

    export DB_CREDENTIALS='*****'
    

    Un buen lugar es el script de inicio de sesión de usuario de Tomcat .bash_profile , o entornos Tomcat setenv.sh

  2. Cree un parámetro JVM (variable del sistema) para la variable de entorno:agregue la siguiente línea a setenv.sh antes de la última línea.

    -Denvironment.db.credentials=${DB_CREDENTIALS} \
    
  3. Use/llame al parámetro JVM declarado en context.xml. Por ejemplo:

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