ActiveMQ 之安全认证

简介

默认安装的activemq 使用 ActiveMQConnectionFactory 时没有用户名/密码。只要有人知道了我们activemq服务器的ip和端口,就可以连上去消费掉我们的消息,所以我们需要给activemq设置一个username和pasword;

ActiveMQ也提供了安全认证。就是用户名密码登录规则。ActiveMQ如果需要使用安全认证的话,必须在activemq的核心配置文件中开启安全配置。配置文件就是conf/activemq.xml

配置文件:

conf/login.config
user代表用户信息配置文件,group代表用户组信息配置文件。寻址路径为相对当前配置文件所在位置开始寻址。

conf/users.properties
户信息配置文件,格式:用户名=密码

conf/groups.properties
用户组信息配置文件,格式:组名=用户名,用户名…

二、配置用户名/密码

方式1:

在conf下的activemq.xml的broker节点插入一个子节点如下:


    
        
            
        
    

重启activemq 并执行

	ConnectionFactory factory = new ActiveMQConnectionFactory(null,null,"tcp://localhost:61616");
   	Connection connection = null;
   	Session session = null;
   	try {
		connection = factory.createConnection();
		connection.start();
		session = connection.createSession(false, Session.CLIENT_ACKNOWLEDGE);
		Destination destination = session.createQueue("first_mq");
		MessageProducer producer = session.createProducer(destination);
		
		TextMessage msg = session.createTextMessage("");
		for(int i=0;i<10;i++) {
			msg.setText("你好" + i);
			try {
				Thread.sleep(1000);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
			producer.send(msg);
		}
		
		
	} catch (JMSException e) {
		e.printStackTrace();
	}
   	finally {
   		if(session != null) {
   			try {
				session.close();
			} catch (JMSException e) {
				e.printStackTrace();
			}
   		}
	}

ActiveMQ 之安全认证_第1张图片
使用配置的用户名 / 密码将能连接成功。

方式2
在conf下的activemq.xml的broker节点插入一个子节点如下:


	
    
        
            
                
                    
                    
                        
                        
                        
                        
                    
                
                
    

conf/users.properties
新增一个用户名/密码:vincent2=123456

conf/groups.properties
添加 vincent2 至 admins 用户组:admins=admin,vincent2

重启activemq 并执行没有用户名/密码的连接:

ActiveMQ 之安全认证_第2张图片

使用配置的用户名 / 密码将能连接成功。

三、总结

安全认证 方式1 和 方式2 能共存,方式1 更简单。

你可能感兴趣的:(ActiveMQ)