Artemis AMQ119213:用户:“没有权限='CONSUME'

时间:2018-07-02 13:18:19

标签: permissions activemq-artemis amq

我需要创建一个仅用于从CI / CD工具创建队列的用户。

<permission type="createDurableQueue" roles="amq, opadmin"/>
        <permission type="deleteDurableQueue" roles="amq"/>
        <permission type="createAddress" roles="amq, opadmin"/>
        <permission type="deleteAddress" roles="amq, opadmin"/>
        <permission type="consume" roles="amq, developer"/>

我遇到了错误

  

[amq-broker @ x01sipscnaq1a bin] $ ./artemis队列创建   --auto-create-address --durable --user opadmin --password xxxxxxxx --anycast --preserve-on-no-Consumers --url tcp://10.91.xxx.xxx:61716线程“ main”中的异常   ActiveMQSecurityException [errorType = SECURITY_EXCEPTION   message = AMQ119213:用户:opadmin没有权限='CONSUME'   对于队列activemq.management.383ccac9-0084-4c44-8f23-7f5c44f7b0dc在   地址   activemq.management.383ccac9-0084-4c44-8f23-7f5c44f7b0dc.activemq.management.383ccac9-0084-4c44-8f23-7f5c44f7b0dc]

已更改为

<permission type="createDurableQueue" roles="amq, opadmin"/>
        <permission type="deleteDurableQueue" roles="amq"/>
        <permission type="createAddress" roles="amq, opadmin"/>
        <permission type="deleteAddress" roles="amq, opadmin"/>
        <permission type="consume" roles="amq, developer, opadmin"/>

它可以正常运行,但可以挂起(等待30分钟以上)

  

[amq-broker @ x01sipscnaq1a bin] $ ./artemis队列创建--silent   --auto-create-address --durable --user opadmin --password xxxxxx --anycast --name TestTorture --preserve-on-no-consumers --url tcp://10.91.xxx.xxx:61716-详细执行   org.apache.activemq.artemis.cli.commands.queue.CreateQueue队列   创建-静默-自动创建地址-持久-用户opadmin   --password xxxxxx --anycast --name TestTorture --preserve-on-no-consumers --url tcp://10.91.xxx.xxx:61716 --verbose Home :: / opt / redhat / amq-broker-7.1 .0-hf8,   实例:: / opt / redhat / amq-config / cn_soi / broker2b   ^ C [amq-broker @ x01sipscnaq1a bin] $

1 个答案:

答案 0 :(得分:2)

任何通过核心消息(例如Artemis CLI)执行远程管理操作的用户都需要对AppC具有以下权限:

  • LibA(在管理地址上创建“订阅”队列以接收管理回复)
  • AppC(以接收管理人员的回复)
  • LibB(发送管理消息)
  • activemq.management.#(执行管理操作)

您缺少createNonDurableQueueconsume操作。尽管客户端可能会因为发送非持久消息(即发即弃)而没有收到有关此方面的异常信息,但代理上的日志应包含相关错误。