2015-11-11 3 views
1

Я пишу тестовое приложение, используя ActiveMQ embedded broker на том же компьютере. Я пытался настроить его следующим образом:Настройка авторизации для activemq

activemq.xml:

<amq:broker useJmx="false" persistent="false"> 
    <amq:transportConnectors> 
     <amq:transportConnector uri="tcp://localhost:61616" /> 
    </amq:transportConnectors> 
</amq:broker> 

<amq:simpleAuthenticationPlugin > 
    <amq:users> 
     <amq:authenticationUser username="system" password="manager" 
      groups="users,admins" /> 
    </amq:users> 
</amq:simpleAuthenticationPlugin> 

для Tomcat context.xml: !! Пароля умышленно неправильно !!

<Resource name="jms/ConnectionFactory" auth="Container" userName="userssname" password="passwords" 
    type="org.apache.activemq.ActiveMQConnectionFactory" description="JMS Connection Factory" 
    factory="org.apache.activemq.jndi.JNDIReferenceFactory" brokerURL="tcp://localhost:61616" 
    brokerName="LocalActiveMQBroker" /> 

Но, когда я пытаюсь выполнить инъекцию можно легко создать ConnectionFactory объект и отправлять/получать сообщения даже с неправильным паролем. Как я могу это отрицать?

ответ

1

Я считаю, что вам нужно добавить записи авторизации для очередей и тем.

Пример конфигурации плагина авторизации:

<authorizationPlugin> 
    <map> 
     <authorizationMap> 
      <authorizationEntries> 
       <authorizationEntry queue=">" write="admins,publishers" read="admins,consumers" admin="admins" /> 
       <authorizationEntry topic=">" write="admins,publishers" read="admins,consumers" admin="admins" /> 
       <authorizationEntry topic="ActiveMQ.Advisory.>" read="everyone" write="everyone" admin="everyone"/> 
      </authorizationEntries> 
     </authorizationMap> 
    </map> 
</authorizationPlugin> 
+0

Спасибо так много. Оно работает. –

Смежные вопросы