sql >> Database >  >> RDS >> PostgreSQL

Hoe het DB AWS-geheim door te geven aan tomcat context.xml?

Als u de DB-referentie dynamisch wilt laden. Het is mogelijk om alleen voor de tijd dat Tomcat context.xml aan het laden is eenmaal (omdat Tomcat de omgevingsvariabele slechts één keer leest bij het opstarten).

Merk op dat tijdens runtime, wanneer contxt.xml de relevante herlaadbeurten van de webapplicatie wijzigen. Tomcat wordt niet opnieuw opgestart.

De truc is dus om DB-referenties te leveren als JVM-parameter/argument, zoals de bovenstaande ${catalina.base}

Er zijn 3 fasen:

  1. Declareer en stel waarde in voor de omgevingsvariabele:

    export DB_CREDENTIALS='*****'
    

    Een goede plaats is bij Tomcat's gebruikersaanmeldingsscript.bash_profile , of Tomcat-omgevingen setenv.sh

  2. Maak een JVM-parameter (systeemvariabele) voor omgevingsvariabele:voeg de volgende regel toe aan setenv.sh voor de laatste regel.

    -Denvironment.db.credentials=${DB_CREDENTIALS} \
    
  3. Gebruik/roep de gedeclareerde JVM-parameter aan in context.xml. Bijvoorbeeld:

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



  1. Oracle ORA-12154:TNS:kan de servicenaamfout niet oplossen?

  2. Hash of Checksum berekenen voor een tabel in SQL Server

  3. gebruik LIKE en IN met subquery in sql

  4. Opgeslagen procedures en functies retourneren in een SQL Server-database:ROUTINES (T-SQL-voorbeelden)