RabbitMQ - 安全/身份验证

时间:2012-05-14 19:05:18

标签: java rabbitmq amqp

我正在开发一个应用程序,我只是想知道RabbitMQ是否可以允许所有客户端将消息推送到特定队列,并且只有经过身份验证的用户才能使用该队列中的消息?我似乎无法找到任何关于此的信息:/

基本上我的模型是这样的: 客户端都连接到同一队列并在其上推送消息。此外,每个客户端都应该在自己的队列中注册收到消息(每个客户端都有唯一的队列)。

所以基本上客户端会将消息发送到一个队列,并且只有我的服务器应用程序应该能够从中读取,处理数据并将回复发送到特定用户队列(该用户队列应仅由该用户读取,并且只能由服务器shoud发布在上面)。

我想这可能是对的吗?有人可以引导我朝着正确的方向找到有关这些事情/示例/教程的更多信息

1 个答案:

答案 0 :(得分:1)

所以,AFAIK不可能开箱即用,但你有2个选择:

  1. 如果您熟悉erlang(不需要额外的erlang知识 - 只是基础知识),您可以为rabbitmq编写自己的插件。
  2. 您可以在每个主机上创建2个虚拟主机并进行交换(vhost A用于读取vhost B以进行写入)。在虚拟主机B中创建交换,并使用路由密钥将其绑定到特定队列。在虚拟主机A中创建联合交换[1]。简介:联邦交换允许映射交换到上游交换,这意味着映射交换将接收来自上游交换的所有消息。因此,在虚拟主机A中进行交换E1,并将其映射到虚拟主机B中的交换机E2。对于每个虚拟主机,您可以创建不同的用户。
  3. [1]:http://www.rabbitmq.com/federation.html - 它是关于联邦插件的手册,其中包含随时可用的示例。