设置用户只授予发布到特定队列的权限 Q1
权限
配置:“”
写: ^(Q1)|(amqp.default)$
阅读:“”
使用的协议: STOMP
RMQ版本: 3.6.X
使用上述权限发布到 Q1 时,访问被拒绝。
如果“ Configure”设置为 ^(Q1)$ ,它将正常工作。但是,设置配置权限也将允许用户在 Q1 上进行queue.delete和queue.declare操作。
案例:从后端/ RMQ管理中创建一个队列,以便踏足客户端可以通过直接amqp.default交换和路由键作为队列名称发布到该队列。这样该客户端仅具有对队列的写入权限,而没有配置或读取权限
如果仅要求用户发布到队列而不需要读取或配置队列,那么最好的解决方案是什么?
答案 0 :(得分:1)
First, remember that you publish to exchanges in RabbitMQ, not queues. Then, read this table to determine how configure, write and read permission applies to the operations you'd like to do.
Finally, since the STOMP plugin is used, the user must have configure
permission to be able to create the reply queue. This is due to how STOMP is implemented in RabbitMQ (code).
NOTE: the RabbitMQ team monitors the rabbitmq-users
mailing list and only sometimes answers questions on StackOverflow.
答案 1 :(得分:0)
STOMP 协议需要配置权限,因此必须提出另一种方法。(RabbitMQ code)
创建了交易所 E1 ,并授予了具有写入权限的用户
将队列 Q1 绑定到 E1 ,因此每个发布到 E1 的消息都被路由到 Q1
在这种方法中,只有STOMP客户端需要写权限才能发布以交换 E1 ,而无需读取或配置权限