ActiveMQ:如何为每个 queue/topic 定义权限?

ActiveMQ: how can one define permissions per queue/topic?

我正在为我们基于 Apache ActiveMQ 的环境设置消息队列服务。为此,我正在尝试查找有关如何定义每个队列或每个主题的访问权限的信息。

使用默认机制,我可以定义新的用户和密码,但显然有了​​这个,所有用户都可以访问所有 queues/topics(这对于其他用例可能没问题,但在这里不行)。

在我使用过的以前的 JMS 设置 (Tibco EMS) 中,能够在每个队列的基础上定义队列访问权限(和相应的凭据)。我还没有找到关于如何使用 ActiveMQ 执行此操作的任何描述或说明。有任何提示或指示吗?

注意:我在这里谈论的是程序化 queue/topic 访问(从 Java 客户端)到 ActiveMQ 服务器,而不是管理员的 Web 控制台。

您需要添加授权。

特点:

  • 每个队列的权限完全匹配(即QUOTE.INPUT)
  • 命名空间 的许可(即 ORDER。> 所有以前缀开头的队列)
  • 权限包括 读取写入admin(能够自动创建目的地发送或阅读)
<broker...> 
  .. 
    <plugins> 
      .. 
      <authorizationPlugin> 
        <map> 
          <authorizationMap> 
            <authorizationEntries> 
              <authorizationEntry queue="QUOTE.INPUT" read="quote-group,admin-role" write="quote-role,admin-role" admin="quote-role,admin-role" /> 
              <authorizationEntry queue="ORDER.>" read="order-group,admin-role" write="order-role,admin-role" admin="order-role,admin-role" /> 
              <authorizationEntry topic="ActiveMQ.Advisory.>" read="*" write="*" admin="*"/> 
            </authorizationEntries> 
            <tempDestinationAuthorizationEntry> 
              <tempDestinationAuthorizationEntry read="admin-role" write="admin-role" admin="admin-role"/> 
            </tempDestinationAuthorizationEntry> 
          </authorizationMap> 
        </map> 
      </authorizationPlugin> 
      .. 
    </plugins> 
  .. 
</broker>