Hi,
We have a context.xml under $TOMCAT_HOME/conf that looks like this:
<Resource name="jdbc/theDB"
auth="Container"
type="javax.sql.DataSource"
username="${DB_USERNAME}"
password="${DB_PASSWORD}"
driverClassName="oracle.jdbc.OracleDriver"
validationQuery="select 1 from dual"
testOnBorrow="true"
url="${DB_URL}"
/>
if we do something like this in setenv.sh, the substitution works great
export DB_USERNAME=xyz
export DB_PASSWORD=vvv
export JAVA_OPTS="$JAVA_OPTS -DDB_USERNAME=$DB_USERNAME"
export JAVA_OPTS="$JAVA_OPTS -DDB_PASSWORD=$DB_PASSWORD"
However, if on a linux box, if someone did a "ps -ef | grep java", they
would be able to see the actual values of these parameters.
theuser 127734 1 0 Jan19 ? 00:04:39 /opt/java/bin/java
-Djava.util.logging.config.file=/opt/mis/apps/jaspersoft/tomcat/apache-tomcat/conf/logging.properties
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
-DDB_USERNAME=xyz
-DDB_PASSWORD=vvv
Which our operations team does not want....
Is there any syntax that Tomcat can recognize to substitute true
environment variables (i.e. export DB_USERNAME=xyz) as opposed to Java
properties injected into the JVM by -D (i.e. export
DB_USERNAME=$DB_USERNAME) ? Haven't been able to find any documentation on
it, but thought would ask.
Thanks in advance,
Al