Activemq安全性配置

原文地址:http://blog.csdn.net/ichsonx/article/details/8540004

                 http://log-cd.iteye.com/blog/585616

                 http://blog.csdn.net/scorpio3k/article/details/5860433

----------------------------------------------------------------------------------------------------------------------------------

AMQ的安全配置分为:AMQ Broker(连接服务安全配置)和AMQ Console(控制台安全配置)两部分;

----------------------------------------------------------------------------------------------------------------------------------

1.控制台安全配置

 

ActiveMQ使用的是jetty服务器, 打开conf/jetty.xml文件,找到

  1. <bean id="securityConstraint" class="org.eclipse.jetty.http.security.Constraint">    
  2.         <property name="name" value="BASIC" />    
  3.         <property name="roles" value="admin" />    
  4.         <property name="authenticate" value="false" />    
  5. </bean>    

将property name为authenticate的属性value="false" 改为"true",设置成使用登录密码。
控制台的登录用户名密码保存在conf/jetty-realm.properties文件中。

用户格式定义: 用户名:密码[角色] 用户名为admin,密码为admin,角色为admin的用户

控制台访问地址: http://127.0.0.1:8161/admin/

----------------------------------------------------------------------------------------------------------------------------------

2.JMS服务安全配置 ------分为两种 :简单的证书文件安全认证和 JASS认证

2.1 、简单的安全认证(使用SimpleAuthenticationPlugin) 
(1)设置证书文件,conf/credentials.properties  文件中设置用户名和密码:

  1. activemq.username=logcd  
  2. activemq.password=028cd  

(2)配置simpleAuthenticationPlugin,简单认证插件 

  1. <!--加载属性配置文件-->  
  2.   <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">  
  3.      <property name="locations">  
  4.         <value>file:///${activemq.base}/conf/credentials.properties</value>  
  5.      </property>        
  6.   </bean>  

注意  :plugins标签 加在 broker标签中

  1. <!--在Broker中,配置插件-->  
  2.     <plugins>   
  3.         <simpleAuthenticationPlugin>   
  4.             <users>   
  5.                 <authenticationUser username="${activemq.username}" password="${activemq.password}" groups="users,admins"/>   
  6.             </users>   
  7.         </simpleAuthenticationPlugin>   
  8.     </plugins>   


(3)在connectionFactory中,使用用户名和密码。 

Java代码   收藏代码
  1. ConnectionFactory cf = new ActiveMQConnectionFactory("logcd", "028cd", "tcp://195.2.199.169:61616")   
Xml代码   收藏代码
  1. <bean id="queueConnectionFactory"  
  2.         class="org.apache.activemq.spring.ActiveMQConnectionFactory" >  
  3.         <property name="brokerURL" value="tcp://195.2.199.169:61616" />  
  4.         <property name="userName" value="logcd" />   
  5.         <property name="password" value="028cd" />   
  6.         <property name="useAsyncSend" value="true"/>  
  7. </bean>  

 

 

2.2 JAAS身份验证

 

2.2.1 .在conf/activemq.xml文件 borker 标签中加入 配置使用JAAS策略,并定义配置模块为activemq-domain. 

  1. <plugins>    
  2.     <!--use JAAS to authenticate using the login.config file on the classpath to configure JAAS -->    
  3.     <jaasAuthenticationPlugin configuration="activemq-domain" />    
  4.     <!--  lets configure a destination based authorization mechanism -->    
  5.     <authorizationPlugin>    
  6.         <map>    
  7.             <authorizationMap>    
  8.                 <authorizationEntries>    
  9.     
  10.                 <!-->表示通配符,例如USERS.>表示以USERS.开头的主题,>表示所有主题,read表示读的权限,write表示写的权限,admin表示角色组-->    
  11.                     <authorizationEntry queue=">" read="admins" write="admins" admin="admins" />    
  12.                     <authorizationEntry topic=">" read="admins" write="admins" admin="admins" />    
  13.                     <authorizationEntry queue="ActiveMQ.Advisory.>" read="admins" write="admins" admin="admins" />    
  14.                     <authorizationEntry topic="ActiveMQ.Advisory.>" read="admins" write="admins" admin="admins" />    
  15.                 </authorizationEntries>    
  16.             </authorizationMap>    
  17.         </map>    
  18.     </authorizationPlugin>    
  19. </plugins>    
在配置中 ">" 代表所有的文章或队列. 而 "ActiveMQ.Advisory.>" 则代表.名为 "ActiveMQ.Advisory."下的所有的文章或队列
2.2.2在conf目录下增加login.config,groups.properties,users.properties

         login.config 内容如下:
  1. activemq-domain {  
  2.                 org.apache.activemq.jaas.PropertiesLoginModule required  
  3.                 debug=true  
  4.                 org.apache.activemq.jaas.properties.user="users.properties"  
  5.                 org.apache.activemq.jaas.properties.group="groups.properties";  
  6.             };  
        groups.properties    定义了组下面的用户
  1. #group=userName  
  2. admins=system  
       users.properties   定义了用户名对应的密码
  1. #userName=password  
  2. system=manager  

 

猜你喜欢

转载自lious-xun.iteye.com/blog/2229355