ActiveMQ入门教程(三)之安全认证

ActiveMq安全认证

1.控制端安全配置(即网站控制台)

ActiveMQ目录conf下找到jetty.xml:

    
        
        
        
        
    

ActiveMQ入门教程(三)之安全认证_第1张图片

含义:

      true:需要认证; false:不需要认证

ActiveMQ目录conf下找到jetty-realm.properties

ActiveMQ入门教程(三)之安全认证_第2张图片

说明:

第一个admin,为认证用户名。 
第二个admin123,为认证密码。 
第三个admin,为角色。


(3).  重启ActiveMQ验证是否需要认证
重启activemq后,访问:http://127.0.0.1:8161/admin/,弹出http基本认证框,这时候认证生效。

ActiveMQ入门教程(三)之安全认证_第3张图片

ActiveMQ入门教程(三)之安全认证_第4张图片

登录成功,说明配置有效!!!

 

2.客户端安全配置(即程序调用)

上一个小节中,我们连接activemq是使用用户名和密码基本上是没有任何用处的,随便个用户名和密码都可以访问消息队列,这样的坏处是,只要有人知道了我们activemq服务器的ip和端口,就可以连上去消费掉我们的消息,这样非常的不安全,所以我们需要给activemq设置一个username和pasword;

上一节的代码:

//创建连接工厂,连接ActiveMQ服务的连接工厂
			//创建工厂,构造方法有三个参数,分别是用户名,密码,连接地址
			//无参构造,有默认的连接地址。本地连接
			//单参数构造,五无验证模式,没有用户的认证
			//三参数构造,有认证+指定地址。默认端口是61616.从ActiveMQ的conf/activemq.xml配置文件中查看
			factory = new ActiveMQConnectionFactory("admin","admin","tcp://192.168.0.32:61616");

第一种方式:

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


    
	
	  
	
    

 

ActiveMQ入门教程(三)之安全认证_第5张图片

配置完成后,重新启动activemq才能生效,接着我们启动TextConsumer.java(ActiveMq01模块的代码,可以从上一篇博客下载源码)

ActiveMQ入门教程(三)之安全认证_第6张图片

可以看到报了用户和密码非法异常!

我们改下连接方式:

factory = new ActiveMQConnectionFactory("loafer","123456","tcp://192.168.0.32:61616");

再次运行生产者和消费者,运行结果:

发现安全认证已经OK!

第二种方式:

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



    
    
        
              
                  
                       
                       
                          
                          
                          
                          
                       
                   
                
      

conf/login.config文件

ActiveMQ入门教程(三)之安全认证_第7张图片

用户组配置-conf/groups.properties文件,主要配置用户名 

ActiveMQ入门教程(三)之安全认证_第8张图片

用户信息配置可在conf/users.properties文件中配置,主要配置用户名对应的密码

ActiveMQ入门教程(三)之安全认证_第9张图片

我们改下连接方式:

factory = new ActiveMQConnectionFactory("loafer","123456","tcp://192.168.0.32:61616");

再次运行生产者和消费者,运行结果:

发现安全认证也OK!

 

 

 

 

 

你可能感兴趣的:(中间件,ActiveMq,消息队列,安全认证,activemq.xml)