解决了上述问题。以下是在您的JMX客户端/服务器上引入Kerberos身份验证/授权的步骤
要启用Kerberos @ JMX服务器,
使用以下一组args启动服务器=>
-Dcom.sun.management.jmxremote=true
-Dcom.sun.management.jmxremote.port=
-Dcom.sun.management.jmxremote.authenticate=true
-Dcom.sun.management.jmxremote.ssl=false
-Djava.security.auth.login.config=
-Djava.security.krb5.conf=
-Dcom.sun.management.jmxremote.login.config=
-Djava.net.preferIPv4Stack=true在$ JAVA_HOME / jre / lib / management / jmxremote.access中添加访问条目。一旦用户通过身份验证,将基于jmxremote.access提供对JMX服务器的读/写访问权限。可以在服务器启动时使用以下jvm arg提供.access文件的位置
-Dcom.sun.management.jmxremote.access.file=<acees_control_file>
启用Kerberos @ JMX客户端(jconsole)
使用调试选项启动jconsole并连接到服务器
jconsole -J-Djava.security.debug=all
如果请求的加密是AES256,则下载无限强度的加密策略jar文件,提取策略文件并将其放在$ JAVA_HOME / jre / lib / security /中。[感谢Mark指出了政策的包容性。]
上面的内容应该使Kerberos在JMX客户端和JMX服务器端均可工作
如果仍然遇到连接问题,则可以使用logging.properties文件=>为jconsole启用详细调试
handlers = java.util.logging.ConsoleHandler.level = INFOjava.util.logging.ConsoleHandler.level = FINESTjava.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter// Use FINER or FINEST for javax.management.remote.level - FINEST is very verbose...javax.management.level = FINESTjavax.management.remote.level = FINER
并使用以下命令启动jconsole
jconsole -J-Djava.util.logging.config.file=<location_of_logging.properties>



