[英]JMX authentication access from JConsole
我已设置一个Java应用程序以启用JMX开头
-Djavax.management.builder.initial= -Dcom.sun.management.jmxremote
我还设置了必要的属性文件
java / jre / lib / management / management.properties
com.sun.management.jmxremote.port=9999
com.sun.management.jmxremote.authenticate=true
com.sun.management.jmxremote.ssl=false
jmxremote.access
monitorRole readonly
controlRole readwrite
jmxremote.password
monitorRole QED
controlRole R&D
启动应用程序并尝试连接后
jconsole localhost:9999
我收到消息:连接失败:连接被拒绝:connect当我再次尝试输入凭据monitorRole:QED时,它给出了相同的消息。
如果我重复上述步骤,但是关闭了身份验证,则可以正常连接。
com.sun.management.jmxremote.authenticate=false
是什么导致身份验证拒绝我的连接?
原因很可能是您的密码文件未受读保护。 它需要使得只有用户才能阅读其内容。 可以使用以下方法实现此目的:
chmod 600 pwd.file.name
还是你的情况
chmod 600 jmxremote.access
如果您尝试使用不受读取保护的文件运行应用程序,则实际上应该可以看到此错误已打印到命令行。
com.sun.management.jmxremote.authenticate=true
但是请注意,在某些情况下,将密码文件发送到远程位置(例如推送到git remote)时,您分配给它的访问权限可能会重置,因此您可能必须进行远程设置。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.