Tomcat 对 ps -ef 保密环境变量
Tomcat Keep Environment Variables Secret from ps -ef
当我在 Tomcat setenv.sh 中自定义 JAVA_OPTS 和 CATALINA_OPTS 时,这些变量的内容在 linux 中可用 [=21] =] 命令,因为它们在命令行上传递给 tomcat。
有罪摘录自 Tomcat 10 开始脚本 (catalina.sh)
eval exec "\"$_RUNJDB\"" "\"$CATALINA_LOGGING_CONFIG\"" $LOGGING_MANAGER "$JAVA_OPTS" "$CATALINA_OPTS" \
我有一些遗留应用程序可以通过这种方式在其 java 属性中获取密码等机密信息。但是哦,不,这会将密码暴露给机器上的任何人 ps -ef!
是否有某种方法可以将属性文件传递给 Tomcat 类加载器,以便可以将密码作为 java 属性传递给遗留 apps,但不会公开在命令行上,就像它们在 JAVA_OPTS 或 CATALINA_OPTS 中一样?我在Tomcat3中看到这样的配置server.xml,不过那是古董了。
在非常早的启动阶段 Tomcat 读取 $CATALINA_BASE/conf/catalina.properties
文件,因此对于大多数系统属性,无需在命令行上提供它们(JAVA_OPTS
或 CATALINA_OPTS
).对于您的目的,这应该足够好了。
必须在命令行中提供的唯一系统属性是:
catalina.base
和 catalina.home
(显然),
- Tomcat logging、
的配置
- 在用户代码之前启动的 JMX 和其他工具的配置。
当我在 Tomcat setenv.sh 中自定义 JAVA_OPTS 和 CATALINA_OPTS 时,这些变量的内容在 linux 中可用 [=21] =] 命令,因为它们在命令行上传递给 tomcat。
有罪摘录自 Tomcat 10 开始脚本 (catalina.sh)
eval exec "\"$_RUNJDB\"" "\"$CATALINA_LOGGING_CONFIG\"" $LOGGING_MANAGER "$JAVA_OPTS" "$CATALINA_OPTS" \
我有一些遗留应用程序可以通过这种方式在其 java 属性中获取密码等机密信息。但是哦,不,这会将密码暴露给机器上的任何人 ps -ef!
是否有某种方法可以将属性文件传递给 Tomcat 类加载器,以便可以将密码作为 java 属性传递给遗留 apps,但不会公开在命令行上,就像它们在 JAVA_OPTS 或 CATALINA_OPTS 中一样?我在Tomcat3中看到这样的配置server.xml,不过那是古董了。
在非常早的启动阶段 Tomcat 读取 $CATALINA_BASE/conf/catalina.properties
文件,因此对于大多数系统属性,无需在命令行上提供它们(JAVA_OPTS
或 CATALINA_OPTS
).对于您的目的,这应该足够好了。
必须在命令行中提供的唯一系统属性是:
catalina.base
和catalina.home
(显然),- Tomcat logging、 的配置
- 在用户代码之前启动的 JMX 和其他工具的配置。