ActiveMQ Artemis JMX 访问
ActiveMQ Artemis JMX access
我想知道在 Apache Artemis 中是否有访问 MBean 值的方法。问题是 MBean 访问受 management.xml
中定义的角色访问保护。当您访问 MBean 时,您应该在设置中具有所需的角色,但是在我的 Java 应用程序中,我无法在访问 MBean 时应用角色。当我使用 VisualVM 时发生同样的事情,我可以看到 MBean 列表,但由于访问限制,我看不到 MBean 的值。
一种解决方法是实际从 management.xml
中删除 <authorization>
元素,或者简单地在 <whitelist>
元素中添加 org.apache.activemq.artemis
。
如果我能在运行时通过反射来做就好了。我已经尝试过几次,但没有取得太大的成功。有没有办法在运行时覆盖 Artemis 的任何属性,这样就可以访问?
MBean 访问限制是代理安全的一部分。如果没有适当的身份验证和授权,有一种方法可以绕过该安全性或仅在运行时将其禁用将是一个重大的安全漏洞。如果 MBean 访问不受限制,那么任何具有远程访问权限的人都可以关闭代理,甚至删除您队列中的所有消息。
如果您想不受限制地访问 MBean,您需要按照您的说明更改 management.xml
。
您也可以只提交应用程序中的正确用户名和密码,以便经纪人授予您访问权限。
我想知道在 Apache Artemis 中是否有访问 MBean 值的方法。问题是 MBean 访问受 management.xml
中定义的角色访问保护。当您访问 MBean 时,您应该在设置中具有所需的角色,但是在我的 Java 应用程序中,我无法在访问 MBean 时应用角色。当我使用 VisualVM 时发生同样的事情,我可以看到 MBean 列表,但由于访问限制,我看不到 MBean 的值。
一种解决方法是实际从 management.xml
中删除 <authorization>
元素,或者简单地在 <whitelist>
元素中添加 org.apache.activemq.artemis
。
如果我能在运行时通过反射来做就好了。我已经尝试过几次,但没有取得太大的成功。有没有办法在运行时覆盖 Artemis 的任何属性,这样就可以访问?
MBean 访问限制是代理安全的一部分。如果没有适当的身份验证和授权,有一种方法可以绕过该安全性或仅在运行时将其禁用将是一个重大的安全漏洞。如果 MBean 访问不受限制,那么任何具有远程访问权限的人都可以关闭代理,甚至删除您队列中的所有消息。
如果您想不受限制地访问 MBean,您需要按照您的说明更改 management.xml
。
您也可以只提交应用程序中的正确用户名和密码,以便经纪人授予您访问权限。