PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Como passar o segredo do DB AWS para o tomcat context.xml?


Se você deseja carregar a credencial de banco de dados dinamicamente. É possível apenas enquanto o Tomcat estiver carregando context.xml uma vez (porque o Tomcat lê a variável de ambiente apenas uma vez na inicialização).

Observe que em tempo de execução, sempre que contxt.xml altere as recargas de aplicativos da Web relevantes. O Tomcat não é reiniciado.

Portanto, o truque é fornecer credenciais de banco de dados como parâmetro/argumento da JVM, como o ${catalina.base} acima

Existem 3 etapas:

  1. Declare e defina o valor para a variável de ambiente:
    export DB_CREDENTIALS='*****'
    

    Um bom lugar é no script de login do usuário do Tomcat.bash_profile , ou ambientes Tomcat setenv.sh

  2. Crie um parâmetro JVM (variável do sistema) para a variável de ambiente:inclua a seguinte linha em setenv.sh antes da última linha.
    -Denvironment.db.credentials=${DB_CREDENTIALS} \
    

  3. Use/chame o parâmetro JVM declarado em context.xml. Por exemplo:
    url="jdbc:postgresql://**********:****/${environment.db.credentials}"