代码之家  ›  专栏  ›  技术社区  ›  user2038596

使用嵌入式ActiveMQ Artemis时,如何摆脱InstanceNotFoundException ArtemisJMXSecurity?

  •  0
  • user2038596  · 技术社区  · 1 年前

    我使用ActiveMQ Artemis 2.33.0的嵌入式实例作为Spring Boot项目的一部分。

    我可以从web控制台(Haftio)的外部部署连接到该嵌入式实例,但每次连接时,我的Spring Boot进程都会在进程日志中抛出以下错误:

    ERROR: jolokia-actuator-endpoint: Error 404
    javax.management.InstanceNotFoundException: hawtio:type=security,area=jmx,name=ArtemisJMXSecurity
    

    我如何防止我的进程抛出该异常?

    1 回复  |  直到 1 年前
        1
  •  2
  •   Justin Bertram    1 年前

    ActiveMQ Artemis web控制台查找 hawtio:type=security,area=jmx,name=ArtemisJMXSecurity MBean验证管理授权。如果你想启用它,那么我认为当你启动Java时,你需要设置系统属性 javax.management.builder.initial 或者:

    • org.apache.activemq.artemis.core.server.management.ArtemisMBeanServerGuard
    • org.apache.activemq.artemis.core.server.management.ArtemisRbacMBeanServerBuilder

    例如:

    java ... -Djavax.management.builder.initial=org.apache.activemq.artemis.core.server.management.ArtemisMBeanServerGuard ...
    

    这个 ArtemisMBeanServerGuard 将自动为您授予三个不同角色的权限:

    • amq :具有此角色的用户将拥有查看和;更新MBean属性、执行管理操作等。
    • view :具有此角色的用户将能够查看MBean属性和列表数据,但无法更改任何内容
    • update :就像 看法 角色,但能够更新MBean属性

    您可以通过名为的文件提供自定义配置 management.xml ,但这需要配置一些额外的类,在Spring Boot中很难做到。

    这个 ArtemisRbacMBeanServerBuilder 讨论在 the documentation 。由于它直接从以下位置读取配置,因此更容易配置 security-settings 您可以通过以下方式进行配置 broker.xml 或嵌入式配置API。

    推荐文章