【问题标题】:activemq User is not authorized to create: topic://ActiveMQ.Advisory.Connectionactivemq 用户无权创建:topic://ActiveMQ.Advisory.Connection
【发布时间】:2015-11-12 15:39:43
【问题描述】:

我正在尝试在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

如果我使用&lt;authorizationEntry topic="&gt;" read="consumers" write="publishers" admin="admins" /&gt;,那么它可以正常工作,那么&gt; 到底是什么意思?

【问题讨论】:

  • 嗯,&gt; 就像一个通配符,匹配所有主题。就像*

标签: authorization activemq


【解决方案1】:

您需要分配角色以允许创建咨询主题,除非您只是禁用它们。下面是网站上的一个示例。

<authorizationEntry topic="ActiveMQ.Advisory.>" read="guests,users" write="guests,users" admin="guests,users"/>

请参阅文档here

【讨论】:

  • 谢谢。我认为我在阅读文档时应该更加小心。
  • 有用的提示 - 设置主题或队列 > 以允许访问所有内容 - 对测试非常有用
猜你喜欢
  • 2012-03-17
  • 2013-07-03
  • 2015-02-13
  • 1970-01-01
  • 2017-01-30
  • 1970-01-01
  • 1970-01-01
  • 2023-03-13
  • 1970-01-01
相关资源
最近更新 更多