我是ActiveMQ的新手。我正在尝试创建两个队列Q1和Q2,client1和客户端将在相应的Qs上写入。我正在以队列形式从队列中读取它并且它在代理机器上正常运行。
问题在于生产者方面,他们报告了以下错误。
JMSSecurityException:无权创建用户client1:topic://ActiveMQ.Advisory.Producer.Queue.Q1
以下是我在activemq文件中定义简单授权的方法。请查找附件完整的activemq.xml。 任何人都可以帮助解决这个问题....非常感谢
<plugins>
<!-- use JAAS to authenticate using the login.config file on the classpath to configure JAAS -->
<!-- <jaasAuthenticationPlugin configuration="activemq" /> -->
<simpleAuthenticationPlugin>
<users>
<authenticationUser username="admin" password="${admin.password}"
groups="admins"/>
<authenticationUser username="testuser1" password="${testuser1.password}"
groups="testusers1"/>
<authenticationUser username="blbuser" password="${blbuser.password}" groups="client1"/>
<authenticationUser username="bpmuser" password="${bpmuser.password}" groups="client2"/>
</users>
</simpleAuthenticationPlugin>
<!-- lets configure a destination based authorization mechanism -->
<authorizationPlugin>
<map>
<authorizationMap>
<authorizationEntries>
<authorizationEntry queue=">" read="admins" write="admins" admin="admins" />
<authorizationEntry queue="Q1" read="admins" write="client1" admin="admins" />
<authorizationEntry queue="Q2" read="admins" write="client2" admin="admins" />
<authorizationEntry topic="ActiveMQ.Advisory.>" read="admins,client1,client2" write="admins,client1,client2" admin="admins"/>
</authorizationEntries>
</authorizationMap>
</map>
</authorizationPlugin>
</plugins>
答案 0 :(得分:0)
您的配置仅授予管理员组中的管理员权限,但这会阻止客户端连接创建咨询主题,因为创建目标会被视为管理功能。如果您将客户端组放入咨询位的admin角色,那么他们应该能够创建它们,否则您需要在客户端开始与代理交互之前自己手动创建所有需要的咨询主题。