activemq 用户无权创建:topic://ActiveMQ.Advisory.Connection
activemq User is not authorized to create: topic://ActiveMQ.Advisory.Connection
我正在尝试在 activemq 中使用授权,但现在卡住了一段时间。
这是我的 java 代码,删除授权插件后一切正常。我正在尝试创建一个名为 "room2".
的主题
Context jndiContext = new InitialContext();
ConnectionFactory connectionFactory;
connectionFactory = (ConnectionFactory) jndiContext
.lookup("ConnectionFactory");
connection = connectionFactory.createConnection("system", "manager");
session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
Topic t = session.createTopic("room2");
这是我的activemq.xml:
<plugins>
<simpleAuthenticationPlugin>
<users>
<authenticationUser username="system" password="manager"
groups="admins,publishers,consumers"/>
<authenticationUser username="user" password="password"
groups="admins,users,publishers"/>
<authenticationUser username="guest" password="password" groups="guests"/>
</users>
</simpleAuthenticationPlugin>
<authorizationPlugin>
<map>
<authorizationMap>
<authorizationEntries>
<authorizationEntry topic="room2" read="consumers" write="publishers" admin="admins" />
</authorizationEntries>
</authorizationMap>
</map>
</authorizationPlugin>
</plugins>
这是我得到的错误:
User system is not authorized to create: topic://ActiveMQ.Advisory.Connection
如果我使用<authorizationEntry topic=">" read="consumers" write="publishers" admin="admins" />
,那么它工作正常,那么>
到底是什么意思?
您需要分配角色以允许创建咨询主题,除非您只是禁用它们。下面是该网站的示例。
<authorizationEntry topic="ActiveMQ.Advisory.>" read="guests,users" write="guests,users" admin="guests,users"/>
参考文档here。
我正在尝试在 activemq 中使用授权,但现在卡住了一段时间。
这是我的 java 代码,删除授权插件后一切正常。我正在尝试创建一个名为 "room2".
的主题 Context jndiContext = new InitialContext();
ConnectionFactory connectionFactory;
connectionFactory = (ConnectionFactory) jndiContext
.lookup("ConnectionFactory");
connection = connectionFactory.createConnection("system", "manager");
session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
Topic t = session.createTopic("room2");
这是我的activemq.xml:
<plugins>
<simpleAuthenticationPlugin>
<users>
<authenticationUser username="system" password="manager"
groups="admins,publishers,consumers"/>
<authenticationUser username="user" password="password"
groups="admins,users,publishers"/>
<authenticationUser username="guest" password="password" groups="guests"/>
</users>
</simpleAuthenticationPlugin>
<authorizationPlugin>
<map>
<authorizationMap>
<authorizationEntries>
<authorizationEntry topic="room2" read="consumers" write="publishers" admin="admins" />
</authorizationEntries>
</authorizationMap>
</map>
</authorizationPlugin>
</plugins>
这是我得到的错误:
User system is not authorized to create: topic://ActiveMQ.Advisory.Connection
如果我使用<authorizationEntry topic=">" read="consumers" write="publishers" admin="admins" />
,那么它工作正常,那么>
到底是什么意思?
您需要分配角色以允许创建咨询主题,除非您只是禁用它们。下面是该网站的示例。
<authorizationEntry topic="ActiveMQ.Advisory.>" read="guests,users" write="guests,users" admin="guests,users"/>
参考文档here。