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

问题描述 投票:0回答:1

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

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

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

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

activemq-artemis jolokia
1个回答
0
投票

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
    :类似于
    view
    角色,但具有更新 MBean 属性的能力

您可以通过名为

management.xml
的文件提供自定义配置,但这需要配置一些额外的类,而这在 Spring Boot 中并不容易做到。

ArtemisRbacMBeanServerBuilder
文档中进行了讨论。配置更容易,因为它直接从
security-settings
读取其配置,您可以通过
broker.xml
或嵌入式配置 API 进行配置。

© www.soinside.com 2019 - 2024. All rights reserved.