目前运行提供一些Atlasian工具(Crucible,fisheye,jira)的服务器,我想出于安全原因禁用服务器上的任何Java代理执行。
我的观点不是禁用可通过-javaagent CLI参数与应用程序一起启动的代理程序,而是禁用可以dynamic连接到正在运行的实例的代理程序(请参阅例如byteman)。 也就是说,使Java应用程序不可“附着”。
另一个限制是由于configuration的复杂性,修改这些工具命令行是很难的。 所以,对于所有Java应用程序来说,对于整个服务器来说,更改必须是全局的。
有什么办法可以全局禁用这个“function”? 通过Javaconfiguration,或者其他什么?
引用这个论坛post ,这取决于有问题的JVM:
IBM JVM:
java -Dcom.ibm.tools.attach.enable=false [...]
SUN / Oracle JVM / OpenJDK:
java -XX:+DisableAttachMechanism [...]
有关Java VM参数的更多信息可以在这里find
这表明可以使用环境variablesJAVA_TOOL_OPTIONS来强制系统范围内的这些选项。 这可能不适用于所有的JVM。