You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否在ActiveMQ Artemis Web控制台按角色过滤地址并通过management.xml配置?

如何在ActiveMQ Artemis Web控制台按角色过滤地址视图

完全可以通过配置management.xml结合权限设置来实现这个需求,具体操作步骤如下:

1. 先给角色分配对应地址的权限

先在broker.xml里为目标角色配置地址级别的权限,重点要加上manage权限——没有这个权限的话,控制台根本看不到对应的地址。比如给sales角色只开放sales.*前缀的地址:

<security-settings>
   <security-setting match="sales.#">
      <permission type="createNonDurableQueue" roles="sales"/>
      <permission type="deleteNonDurableQueue" roles="sales"/>
      <permission type="createDurableQueue" roles="sales"/>
      <permission type="deleteDurableQueue" roles="sales"/>
      <permission type="send" roles="sales"/>
      <permission type="consume" roles="sales"/>
      <permission type="manage" roles="sales"/> <!-- 必须加这个才能在控制台查看地址 -->
   </security-setting>
   <!-- 其他角色的权限配置同理 -->
</security-settings>

2. 通过management.xml限制角色可见的资源

编辑management.xml,配置role-access节点,控制特定角色能调用的管理API。当用户用对应角色登录时,控制台调用的地址查询接口只会返回该角色有权限的地址:

<role-access>
   <match domain="org.apache.activemq.artemis">
      <access method="listAddresses" roles="sales" expose="true"/>
      <access method="getAddress" roles="sales" expose="true"/>
      <!-- 其他涉及地址查询的管理方法也需要配置 -->
   </match>
</role-access>

3. 验证配置效果

  • 重启ActiveMQ Artemis服务
  • 用目标角色的账号登录Web控制台
  • 打开“Addresses”页面,此时应该只能看到该角色有权限访问的地址集合

另外要注意:确保你的用户账号已经正确关联到目标角色,这个可以在login.config或者你用的认证组件(比如LDAP)里配置用户和角色的映射关系。

内容的提问来源于stack exchange,提问作者user7403308

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 02:25:53