Artemis AMQ119213:用户:“”没有权限='CONSUME'
Artemis AMQ119213: User: '' does not have permission='CONSUME'
我需要创建一个用户,该用户仅用于从 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 queue create
--auto-create-address --durable --user opadmin --password xxxxxxxx --anycast --preserve-on-no-consumers --url tcp://10.91.xxx.xxx:61716 Exception in thread "main"
ActiveMQSecurityException[errorType=SECURITY_EXCEPTION
message=AMQ119213: User: opadmin does not have permission='CONSUME'
for queue activemq.management.383ccac9-0084-4c44-8f23-7f5c44f7b0dc on
address
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 queue create --silent
--auto-create-address --durable --user opadmin --password xxxxxx --anycast --name TestTorture --preserve-on-no-consumers --url tcp://10.91.xxx.xxx:61716 --verbose Executing
org.apache.activemq.artemis.cli.commands.queue.CreateQueue queue
create --silent --auto-create-address --durable --user 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,
Instance::/opt/redhat/amq-config/cn_soi/broker2b
^C[amq-broker@x01sipscnaq1a bin]$
任何通过核心消息(例如 Artemis CLI)执行远程管理操作的用户都需要 activemq.management.#
上的以下权限:
createNonDurableQueue
(在管理地址上创建一个"subscription"队列,以便接收管理回复)
consume
(收到管理回复)
send
(发送管理消息)
manage
(执行管理操作)
您缺少 send
和 manage
操作。虽然客户端可能不会收到有关此的异常,因为它正在发送非持久消息(即发即弃),但代理上的日志应该包含相关错误。
我需要创建一个用户,该用户仅用于从 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 queue create --auto-create-address --durable --user opadmin --password xxxxxxxx --anycast --preserve-on-no-consumers --url tcp://10.91.xxx.xxx:61716 Exception in thread "main" ActiveMQSecurityException[errorType=SECURITY_EXCEPTION message=AMQ119213: User: opadmin does not have permission='CONSUME' for queue activemq.management.383ccac9-0084-4c44-8f23-7f5c44f7b0dc on address 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 queue create --silent --auto-create-address --durable --user opadmin --password xxxxxx --anycast --name TestTorture --preserve-on-no-consumers --url tcp://10.91.xxx.xxx:61716 --verbose Executing org.apache.activemq.artemis.cli.commands.queue.CreateQueue queue create --silent --auto-create-address --durable --user 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, Instance::/opt/redhat/amq-config/cn_soi/broker2b ^C[amq-broker@x01sipscnaq1a bin]$
任何通过核心消息(例如 Artemis CLI)执行远程管理操作的用户都需要 activemq.management.#
上的以下权限:
createNonDurableQueue
(在管理地址上创建一个"subscription"队列,以便接收管理回复)consume
(收到管理回复)send
(发送管理消息)manage
(执行管理操作)
您缺少 send
和 manage
操作。虽然客户端可能不会收到有关此的异常,因为它正在发送非持久消息(即发即弃),但代理上的日志应该包含相关错误。