如何设置临时队列的权限?

时间:2014-10-21 14:10:02

标签: jms jboss7.x wildfly hornetq

我们正在使用JBoss 7和HornetQ实现请求/回复机制。我们使用javax.jms.Session.createTemporaryQueue()创建一个临时队列,并使用Message.setJMSReplyTo()将其设置为请求消息。我们的客户端选择replyTo目的地并尝试发送回复,但是对于我们正在使用的hornetq用户,它失败并显示“SEND-permission denied”。

我们希望为hornetq用户提供正确的权限,但这需要权限适用的地址。但由于我们正在使用临时队列,因此地址不清楚!所以,问题是:临时队列的地址是什么?

1 个答案:

答案 0 :(得分:0)

经过一番挖掘后,我们发现HornetQ实现Java Messaging Service所产生的临时队列地址为:jms.tempqueue

因此,您可以通过将其添加到'temps'角色来为hornetq用户授予权限,并将以下xml添加到JBoss的standalone.xml中:

<security-settings>
  <security-setting match="jms.tempqueue.#">
    <permission type="send" roles="temps"/>
  </security-setting>
</security-settings>