Jeśli chcesz dynamicznie załadować poświadczenia DB. Możliwe jest tylko na czas, gdy Tomcat ładuje context.xml
raz (ponieważ Tomcat odczytuje zmienną środowiskową tylko raz podczas uruchamiania).
Zwróć uwagę, że w czasie wykonywania zawsze, gdy contxt.xml
zmienić odpowiednie przeładowania aplikacji internetowych. Tomcat nie jest restartowany.
Sztuczka polega więc na tym, aby dostarczyć poświadczenia bazy danych jako parametr/argument JVM, jak powyższy ${catalina.base}
Istnieją 3 etapy:
-
Zadeklaruj i ustaw wartość zmiennej środowiskowej:
export DB_CREDENTIALS='*****'
Dobrym miejscem jest skrypt logowania użytkownika Tomcat
.bash_profile
lub środowiska Tomcatsetenv.sh
-
Utwórz parametr JVM (zmienna systemowa) dla zmiennej środowiskowej:dodaj następujący wiersz do
setenv.sh
przed ostatnią linią.-Denvironment.db.credentials=${DB_CREDENTIALS} \
-
Użyj/wywołaj zadeklarowany parametr JVM w context.xml. Na przykład:
url="jdbc:postgresql://**********:****/${environment.db.credentials}"