JMX身份验证

5
$ cd $JAVA_HOME/jre/lib/management
$ cp jmxremote.password.template jmxremote.password
$ chmod u=rw jmxremote.password
$ vi jmxremote.password

为"monitorRole"和"controlRole"设置密码:

monitorRole 12monitor
controlRole 55control

之后,当我在我的电脑上运行JMX服务器时,我遇到了以下错误。

# java -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.m
agement.jmxremote.authenticate=true  -Dcom.sun.management.jmxremote.ssl=false -D
java.rmi.server.host=47.168.96.31  com.example.Main
Error: Password file read access must be restricted: /root/Downloads/jdk1.6.0_29
/jre/lib/management/jmxremote.password

当我使用以下任一命令更改文件权限后,jmx服务器将运行:

# chmod 400  jmxremote.password

或者

# chmod 600  jmxremote.password

但我无法通过jmxremote.password文件中定义的用户名/密码连接它。


请注意,在密码文件中,确保密码后面没有任何空格... - rogerdpack
1个回答

5
要为JMX授权添加新的用户名/密码,需要通过将用户名添加到jmxremote.access文件来定义身份验证。就像添加用户名“admin”一样。
>monitorRole   readonly
>admin         readonly
>controlRole   readwrite \
          create javax.management.monitor.*,javax.management.timer.* \
          unregister

在 Windows 机器上更改 jmxremote.password 文件权限,请按照以下链接 http://docs.oracle.com/javase/6/docs/technotes/guides/management/security-windows.html。 - Ahmet Karakaya

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接