我们正在使用JBoss 7和HornetQ实现请求/回复机制。我们使用javax.jms.Session.createTemporaryQueue()创建一个临时队列,并使用Message.setJMSReplyTo()将其设置为请求消息。我们的客户端选择replyTo目的地并尝试发送回复,但是对于我们正在使用的hornetq用户,它失败并显示“SEND-permission denied”。
我们希望为hornetq用户提供正确的权限,但这需要权限适用的地址。但由于我们正在使用临时队列,因此地址不清楚!所以,问题是:临时队列的地址是什么?
答案 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>