ActiveMQ的安全配置

来源:互联网 发布:seo sem 新媒体 电商 编辑:程序博客网 时间:2024/06/05 06:42

前些天,我们系统需要使用ActiveMQ传递一些非常重要的消息,但是考虑到如果只是有个broker地址就能接收到消息感觉太不安全了,就给ActiveMQ加上了一些安全配置,如下:


1、控制台安全配置(也就是用户在网页浏览器打开192.168.10.40:8161/admin这个地址的时候,需要用户输入用户名/密码),打开conf/jetty.xml文件,找到

    <bean id="securityConstraint" class="org.eclipse.jetty.http.security.Constraint">

        <property name="name" value="BASIC" />

        <property name="roles" value="admin" />

        <property name="authenticate" value="false" />

    </bean>

   将“false”改为“true”即可。用户名和密码存放在conf/jetty-realm.properties文件中。


2、生产者和消费者连接ActiveMQ需要用户名、密码

 (1)在工程的xml配置文件中配置连接工厂的用户名和密码:

       <bean id="connectionFactory" class="org.apache.activemq.pool.PooledConnectionFactory" destroy-method="stop">
         <property name="connectionFactory">
             <bean class="org.apache.activemq.ActiveMQConnectionFactory">
                 <property name="brokerURL">
                     <value>${jms.brokerURL}</value>
                 </property>
                 <property name="useAsyncSend">
                     <value>true</value>
                 </property>
                 <property name="userName">
                     <value>${activemq.name}</value>
                 </property>
                 <property name="password">
                     <value>${activemq.pass}</value>
                 </property>
             </bean>
         </property>
     </bean>

 (2)  打开conf/activemq.xml文件,在<broker>标签里的<systemUsage>标签前加入:

   <plugins>  

<simpleAuthenticationPlugin>  

<users>  

<authenticationUser username="${activemq.username}" password="${activemq.password}" groups="users,admins"/>  

</users>  

</simpleAuthenticationPlugin>  

   </plugins>

 注意必须在<systemUsage>标签前,否则启动ActiveMQ会报错。

<plugins>  
                  <simpleAuthenticationPlugin>  
                    <users>  
                       <authenticationUser username="${activemq.username}" password="${activemq.password}" groups="users,admins"/>  
                    </users>   
                  </simpleAuthenticationPlugin>  
               </plugins>

          <systemUsage>
            <systemUsage>
                <memoryUsage>
                    <memoryUsage percentOfJvmHeap="70" />
                </memoryUsage>
                <storeUsage>
                    <storeUsage limit="100 gb"/>
                </storeUsage>
                <tempUsage>
                    <tempUsage limit="50 gb"/>
                </tempUsage>
            </systemUsage>
        </systemUsage>

用户名和密码存放在conf/credentials.properties文件中


0 0
原创粉丝点击