【问题标题】:ActiveMQ Artemis queue send security settingActiveMQ Artemis 队列发送安全设置
【发布时间】:2021-04-29 18:47:25
【问题描述】:

我有具有以下安全设置的远程 ActiveMQ Artemis 节点

<security-setting match="#">
   <permission type="createNonDurableQueue" roles="admin"/>
   <permission type="deleteNonDurableQueue" roles="admin"/>
   <permission type="createDurableQueue" roles="admin"/>
   <permission type="deleteDurableQueue" roles="admin"/>
   <permission type="createAddress" roles="admin"/>
   <permission type="deleteAddress" roles="admin"/>
   <permission type="consume" roles="admin"/>
   <permission type="browse" roles="admin"/>
   <permission type="send" roles="admin"/>
   <!-- we need this otherwise ./artemis data imp wouldn't work -->
   <permission type="manage" roles="admin"/>
</security-setting>

但是当我发送消息时,我收到了这个错误:

org.apache.activemq.artemis.api.core.ActiveMQSecurityException: AMQ229032: User: admin does not have permission='SEND' on address

我错过了什么?

【问题讨论】:

  • 你能粘贴你的login.config 和任何相关的属性文件吗?
  • 这有什么更新吗?

标签: jms activemq-artemis


【解决方案1】:

您的用户admin 似乎不在角色 admin

【讨论】:

    【解决方案2】:

    您的broker.xml 中有这样的内容:

          <security-settings>
             <security-setting match="#">
                <permission type="createNonDurableQueue" roles="admin"/>
                <permission type="deleteNonDurableQueue" roles="admin"/>
                <permission type="createDurableQueue" roles="admin"/>
                <permission type="deleteDurableQueue" roles="admin"/>
                <permission type="createAddress" roles="admin"/>
                <permission type="deleteAddress" roles="admin"/>
                <permission type="consume" roles="admin"/>
                <permission type="browse" roles="admin"/>
                <permission type="send" roles="admin"/>
                <permission type="manage" roles="admin"/>
             </security-setting>
          </security-settings>
    

    当你创建 address::queue 时,默认情况下会应用这样的权限,但是如果在 WebUI 中你执行了addSecuritySettings 操作并做了这样的事情:

    addressMatch: <your_address>
    send: <your_custom_role>
    consume: <your_custom_role>
    createDurableQueueRoles:
    deleteDurableQueueRoles:
    createNonDurableQueueRoles:
    deleteNonDurableQueueRoles:
    manage:
    

    然后broker.xml 中的security-settings 被覆盖 并且它们对您创建的地址::queue 没有任何影响,当尝试向您的地址::queue 生成消息时会导致权限错误使用admin 角色。

    【讨论】:

      猜你喜欢
      • 2023-02-12
      • 2021-08-08
      • 1970-01-01
      • 2019-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多