javascript RabbitMQ队列发布访问被拒绝

m3eecexj  于 2023-10-14  发布在  Java
关注(0)|答案(2)|浏览(136)

将用户的权限设置为仅向特定队列授予发布权限Q1
许可
配置:“”
写:^(Q1)|(amqp.default)$
阅读:“”
所用方案:停止
RMQ版本:3.6.X
使用以上权限发布到Q1时,拒绝访问。
如果配置设置为**^(Q1)$,则可以正常工作。但设置configure权限也将允许用户对Q1**执行queue.delete和queue.declare操作。
案例:从后端/RMQ管理创建一个队列,以便stomp客户端可以通过直接amqp.default交换和路由键作为队列名称发布到它。以便客户端对队列只有写权限,而没有配置或读权限
如果只要求用户发布到队列,而不要求用户读取或配置队列,那么最佳解决方案是什么?

lsmepo6l

lsmepo6l1#

首先,请记住,您发布到RabbitMQ中的exchanges,而不是队列。然后,阅读此表以确定配置、写入和读取权限如何应用于您要执行的操作。
最后,由于使用了STOMP插件,用户必须具有configure权限才能创建回复队列。这是由于STOMP是如何在RabbitMQ(代码)中实现的。

7y4bm7vi

7y4bm7vi2#

STOMP协议需要配置权限,所以不得不另想办法。(RabbitMQ代码)

已创建交换E1,并授予用户权限
将队列Q1绑定到E1,以便将发布到E1的每条消息路由到Q1
在这种方法中,STOMP客户端只需要写入权限就可以发布到exchangeE1,而不需要读取或配置权限

相关问题