我需要创建一个仅用于从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] $
答案 0 :(得分:2)
任何通过核心消息(例如Artemis CLI)执行远程管理操作的用户都需要对AppC
具有以下权限:
LibA
(在管理地址上创建“订阅”队列以接收管理回复)AppC
(以接收管理人员的回复)LibB
(发送管理消息)activemq.management.#
(执行管理操作)您缺少createNonDurableQueue
和consume
操作。尽管客户端可能会因为发送非持久消息(即发即弃)而没有收到有关此方面的异常信息,但代理上的日志应包含相关错误。