如何限制ActiveMQ中的用户



我是Activemq.i的新手,我已经下载了最新的ActiveMQ 5.8并运行服务器。我已经创建了队列并使用以下代码发送了示例消息:

// 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();
    }

我已经在代码上方运行,并成功创建了队列。

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

现在,如果我更改了成功发送到队列的代码消息。

<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。现在我只想访问队列。

如何限制ACTVIEMQ中的用户?我需要更改Activemq.xml文件?

请参阅Activemq doc:http://activemq.apache.org/security.html

在Activemq.xml中:

定义要在"目的地"部分中创建的队列。您可以通过定义"用户"部分中的组来控制特权。在"授权范围"部分中,您可以定义允许哪些组读取,编写和管理队列。

activemq.xml的框架:

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

最新更新