Я пытался создать группу, включающую всех доступных пользователей, поскольку нам необходимо разрешить всем пользователям доступ к «ActiveMQ.Advisory.>».Однако, с моей конфигурацией, это не работает, мне было интересно, есть ли что-то еще, что мне нужно настроить, чтобы группа «все» работала, как ожидалось, и позволяла всем соединениям создавать очереди «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
логин.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";
};
Спасибо.