2014-02-05 3 views
0

Я новичок в activemq.I загрузил последний ActiveMQ 5.8 и запустить server.I создал очередь и отправку сообщений с использованием выборкой следующего кода:Как ограничить пользователей в activemq?

// URL of the JMS server. DEFAULT_BROKER_URL will just mean 
    // that JMS server is on localhost 
    private static String url = ActiveMQConnection.DEFAULT_BROKER_URL; 

    // Name of the queue we will be sending messages to 
    private static String subject = "TESTQUEUE"; 

    public static void main(String[] args) throws JMSException { 
     // Getting JMS connection from the server and starting it 
     ConnectionFactory connectionFactory = 
      new ActiveMQConnectionFactory(url); 
     Connection connection = connectionFactory.createConnection(); 
     connection.start(); 

     // JMS messages are sent and received using a Session. We will 
     // create here a non-transactional session object. If you want 
     // to use transactions you should set the first parameter to 'true' 
     Session session = connection.createSession(false, 
      Session.AUTO_ACKNOWLEDGE); 

     // Destination represents here our queue 'TESTQUEUE' on the 
     // JMS server. You don't have to do anything special on the 
     // server to create it, it will be created automatically. 
     Destination destination = session.createQueue(subject); 

     // MessageProducer is used for sending messages (as opposed 
     // to MessageConsumer which is used for receiving them) 
     MessageProducer producer = session.createProducer(destination); 

     // We will send a small text message saying 'Hello' in Japanese 
     TextMessage message = session.createTextMessage("こんにちは"); 

     // Here we are sending the message! 
     producer.send(message); 
     System.out.println("Sent message '" + message.getText() + "'"); 

     connection.close(); 
    } 

Я побежал выше коды и очередей созданной successfully.Now я чтобы ограничить доступ пользователей в ActiveMQ server.I изменил метод createConnnection ниже

Connection connection = connectionFactory.createConnection("test","test"); 

Теперь, если я запускаю изменил код отправки сообщений в очередь successfully.but тестового пользователя не существует в ActiveMQ даже подключение established.How ограничить этот пользователь?

<authorizationPlugin> 
    <map> 
     <authorizationMap> 
     <authorizationEntries> 
      <authorizationEntry queue=">" read="admins" write="admins" admin="admins" /> 
      <authorizationEntry queue="USERS.>" read="users" write="users" admin="users" /> 
      <authorizationEntry queue="GUEST.>" read="guests" write="guests,users" admin="guests,users" /> 

      <authorizationEntry queue="TEST.Q" read="guests" write="guests" /> 

      <authorizationEntry topic=">" read="admins" write="admins" admin="admins" /> 
      <authorizationEntry topic="USERS.>" read="users" write="users" admin="users" /> 
      <authorizationEntry topic="GUEST.>" read="guests" write="guests,users" admin="guests,users" /> 

      <authorizationEntry topic="ActiveMQ.Advisory.>" read="guests,users" write="guests,users" admin="guests,users"/> 
     </authorizationEntries> 
     </authorizationMap> 
    </map> 
    </authorizationPlugin> 
</plugins> 

В вышеуказанном файле activemq.xml.Now я хочу получить доступ к очереди только для определенных пользователей.

Как ограничить пользователей в actviemq? что мне нужно изменить над файлом activemq.xml?

ответ

0

См ActiveMQ документ: http://activemq.apache.org/security.html

В activemq.xml:

Определите очереди, которые вы хотите создать в разделе "цели". Вы можете управлять привилегиями, определяя группы в разделе «пользователи». В разделе «authorizationEntries» вы можете определить, какие группы разрешено читать, писать и администрировать очередь.

Framgent из activemq.xml:

<destinations> \t \t \t \t 
 
\t \t \t <queue physicalName="DEMOQUEUE01" /> 
 
\t \t \t <queue physicalName="DEMOQUEUE02" /> 
 
\t \t \t <queue physicalName="DEMOQUEUE03" /> 
 
</destinations> \t 
 

 
<plugins> \t \t 
 
\t \t \t <simpleAuthenticationPlugin anonymousAccessAllowed="false"> 
 
\t \t \t <users> \t 
 
\t \t \t \t <authenticationUser username="admin"  \t password="admin"  \t \t \t groups="usuarios,users,admins"/> 
 
\t \t \t \t <authenticationUser username="system"  \t password="manager"  \t \t \t groups="usuarios,users,admins"/> \t 
 
\t 
 
\t \t \t \t <authenticationUser username="youruser1" password="password123" groups="GROUP01,DEMOGROUP"/> \t 
 
\t \t \t  <authenticationUser username="youruser2" password="password456" groups="GROUP01,OTHERGROUP"/> \t 
 
\t \t \t </users> 
 
\t \t \t </simpleAuthenticationPlugin> 
 
\t \t \t <authorizationPlugin> 
 
\t \t \t <map> 
 
\t \t \t \t <authorizationMap> 
 
\t \t \t \t <authorizationEntries> \t \t \t \t 
 
\t \t \t \t \t <authorizationEntry queue = "DEMOQUEUE01" read="admins,GROUP01" write="admins,GROUP01" admin="admins"/> 
 
\t \t \t \t \t <authorizationEntry queue = "DEMOQUEUE02" read="admins,DEMOGROUP" write="admins" admin="admins"/> 
 
\t \t \t \t \t <authorizationEntry queue = "DEMOQUEUE03" read="admins,OTHERGROUP" write="admins,OTHERGROUP" admin="admins"/> 
 
\t \t \t \t \t 
 
\t \t \t \t \t <authorizationEntry queue=">" read="admins" write="admins" admin="admins" /> 
 
\t \t \t \t \t <authorizationEntry topic=">" read="usuarios,admins,GROUP01" write="usuarios,admins,GROUP01" admin="usuarios" /> 
 
\t \t \t \t </authorizationEntries> 
 
\t \t \t \t </authorizationMap> 
 
\t \t \t </map> 
 
\t \t \t </authorizationPlugin> 
 
</plugins>

+0

Привет. Какая очередь? Какой язык? Какой вопрос? – therealmarv

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