我不想每次都为 SSL 和密码而烦恼,但仍然不希望 LAN 上的其他人可以访问我的程序的 JMX 功能。
我~/.java.policy
这样填充了我的:
grant principal javax.management.remote.JMXPrincipal "*" {
permission java.net.SocketPermission "127.0.0.1", "accept";
permission java.net.SocketPermission "my.lan.ip.addr", "accept";
permission java.net.SocketPermission "another.lan.ip.addr", "accept";
permission java.net.SocketPermission "*", "resolve";
}
不幸的是,这似乎没有效果——当程序启动时:
-Djava.security.manager
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=1234
它的 JMX 功能仍然可以从任何地方访问,而不仅仅是从列出的几个 IP 中访问。
如何正确执行?谢谢!