我一直试图创建一个包含所有可用用户的组,因为我们需要允许所有用户都可以访问“ ActiveMQ.Advisory。>”。但是,使用我的配置,此方法不起作用,我想知道是否还需要配置其他内容,以使“ all”组按预期工作并允许所有连接创建队列“ ActiveMQ.Advisory。>”?
我正在使用的ActiveMQ版本是5.15.9。
使用下面的配置,我在应用程序中收到此错误消息:
12:31:28,940 ERROR DefaultJmsMessageListenerContainer:931 - Could not refresh JMS Connection for destination 'test.queue' - retrying using FixedBackOff{interval=5000, currentAttempts=296, maxAttempts=unlimited}. Cause: User null is not authorized to create: topic://ActiveMQ.Advisory.Connection
但是,如果我使用“管理员,来宾”而不是“全部”,则应用程序将成功连接。
activemq.xml
...
<plugins>
<jaasAuthenticationPlugin configuration="activemq" />
<authorizationPlugin>
<map>
<authorizationMap>
<authorizationEntries>
<authorizationEntry queue=">" read="all" write="all" admin="admins" />
<authorizationEntry topic=">" read="all" write="all" admin="admins" />
<authorizationEntry topic="ActiveMQ.Advisory.>" read="all" write="all" admin="all" />
</authorizationEntries>
</authorizationMap>
</map>
</authorizationPlugin>
</plugins>
...
group.properties
admins=admin
guests=guest
all=admin,guest
login.config
activemq {
org.apache.activemq.jaas.GuestLoginModule sufficient
debug=true
credentialsInvalidate=true
org.apache.activemq.jaas.guest.user="guest"
org.apache.activemq.jaas.guest.group="guests";
org.apache.activemq.jaas.PropertiesLoginModule requisite
org.apache.activemq.jaas.properties.user="users.properties"
org.apache.activemq.jaas.properties.group="groups.properties";
};
谢谢。