首页 > 解决方案 > ActiveMQ Artemis JMX 访问

问题描述

我想知道是否有办法在 Apache Artemis 中访问 MBean 的值。问题是 MBean 访问受management.xml. 当您访问 MBean 时,您应该在设置中具有所需的角色,但是在我的 Java 应用程序中,当我访问 MBean 时我无法应用角色。当我使用 VisualVM 时也会发生同样的事情,我可以看到 MBean 列表,但由于访问限制,我看不到 MBean 的值。

一种解决方法是从元素中实际删除<authorization>元素management.xml或简单地添加元素。org.apache.activemq.artemis<whitelist>

如果我可以通过运行时的反射来做到这一点,那就太好了。我已经尝试了几次,但没有太大的成功。有没有办法在运行时覆盖 Artemis 的任何属性,从而使访问成为可能?

标签: jmxactivemq-artemis

解决方案


MBean 访问限制是代理安全性的一部分。有一种方法可以规避这种安全性,或者在没有适当的身份验证和授权的情况下在运行时禁用它,这将是一个重大的安全漏洞。如果 MBean 访问不受限制,那么任何具有远程访问权限的人都可以关闭代理,甚至删除队列中的所有消息。

如果您想不受限制地访问 MBean,您需要management.xml按照您的说明进行更改。

您也可以从您的应用程序中提交正确的用户名和密码,以便经纪人授予您访问权限。


推荐阅读