【发布时间】:2013-11-13 19:20:39
【问题描述】:
我已将我的 Java 应用程序配置为需要身份验证但不需要 SSL
JVM 参数:
-Djavax.management.builder.initial= -Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=localIpAddress
management.properties:
com.sun.management.jmxremote.rmi.port=39998
com.sun.management.jmxremote.port=39999
com.sun.management.jmxremote.authenticate=true
com.sun.management.jmxremote.ssl=false
jmxremote.access
monitorRole readonly
dev readwrite
tester readwrite
jmxremote.password
monitorRole guest
dev dev
tester test
但是,我无需输入任何凭据即可访问此应用程序。
jconsole ipOfApplication:39998
我可以直接访问,无需任何密码提示。如何确保系统提示我登录?
注意:即使在启用 SSL 之后,也会发生相同的行为。
【问题讨论】:
-
使用自定义 RMI 代理有什么特殊原因吗? IMO,问题是由代理引起的。开箱即用的配置按预期工作(在 JDK7u45、JDK8b115 上测试)
-
如果没有自定义 RMI 代理,我将无法访问 JMX 应用程序
-
我想您需要通过防火墙路由 JMX 流量,对吧?
-
是的,根据这篇文章的答案,默认情况下,远程连接必须打开广泛的端口才能工作。 stackoverflow.com/questions/151238/…
-
实际上,从 JDK7u4 开始,您可以指定 RMI 注册表端口 - 这就是导致问题的部分 - 请参阅此处 stackoverflow.com/questions/19442719/remote-jmx-technology/…
标签: java authentication jmx jconsole