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

如何为ActiveMQ Artemis控制台的viewer用户限制特定操作权限

为ActiveMQ Artemis的viewer用户配置控制台只读权限(限制消息删除)

问题背景

已经完成这些配置来实现viewer用户的控制台只读访问:

  • 创建view组
  • 创建viewer用户
  • 将用户加入具备控制台访问权限的Artemis配置文件
  • 通过management.xml限制操作,Operations标签页的更新操作已经生效

但还有问题:viewer用户在Queues标签页打开队列后,依然能通过“Delete Messages”按钮删除消息。之前的临时方案是在jolokia-access.xml里全局禁止所有含move的操作,但这会影响所有用户,现在需要只针对viewer用户限制这类操作。

解决方案

直接修改jolokia-access.xml,利用Jolokia的用户/角色匹配规则,仅对viewer用户(或其所属的view组)执行操作限制,配置如下:

<?xml version="1.0" encoding="utf-8"?>
<restrict>
    <cors>
        <allow-origin>*://*</allow-origin>
        <strict-checking/>
    </cors>    
    <deny>
        <!-- 针对view组用户限制操作,单个用户用<user>viewer</user>替换即可 -->
        <role>view</role>
        <mbean>
            <name>org.apache.activemq.artemis:broker="0.0.0.0",component=addresses,address="*",subcomponent=queues,routing-type="*",queue="*"</name>
            <!-- 覆盖Delete Messages涉及的所有核心操作 -->
            <operation>*move*</operation>
            <operation>removeMessages</operation>
            <operation>deleteAllMessages</operation>
        </mbean>
    </deny>
</restrict>

配置细节说明

  • 如果要精准限制单个用户,把<role>view</role>换成<user>viewer</user>即可
  • 额外添加removeMessages和deleteAllMessages是因为“Delete Messages”功能会调用这些MBean操作,确保完全禁用删除权限
  • 这个配置只会限制目标用户/组,不会影响管理员等其他有权限的用户正常执行操作

验证方法

  1. 保存修改后的jolokia-access.xml
  2. 重启ActiveMQ Artemis服务
  3. 用viewer用户登录控制台,尝试删除队列消息,确认操作被禁止;再用管理员账号登录,验证消息删除功能正常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 22:22:40