zoukankan      html  css  js  c++  java
  • Activemq去除认证

    0.背景介绍

      由于项目安全性的约束,不能在配置文件中暴露一些密码信息。

        默认情况下,ActiveMQ在进行接发消息的时候会用户认证。通过ActiveMQ-client初始化ActiveMQConnectionFactory的时候,我们会将用户名和密码暴露在配置文件中。如果对密码进行加密,在程序启动的时候进行解密。有可能存在一点代码量上的改造,【临近上线,这个方案暂时被PASS】。

      想通过ActiveMQ服务端去除认证,解决如上所述问题。

    1.去除认证

        修改ActiveMQ服务端的配置文件。($ActiveMQ_dir/conf/activemq.xml)

        在<plugins>节点中注释下列认证方式:

          <!--  <jaasAuthenticationPlugin configuration="activemq" />  -->

        在<plugins>节点中添加下列认证方式:

          <simpleAuthenticationPlugin anonymousAccessAllowed=“true”> 

                    <users> 

                        <authenticationUser username="admin" password="manager" 

                            groups="users,admins"/> 

                    </users> 

              </simpleAuthenticationPlugin> 

            <!--  Lets configure a destination based authorization mechanism --> 

             <authorizationPlugin> 

                <map> 

                  <authorizationMap> 

                      <authorizationEntries> 

                          <authorizationEntry queue=">" read="admins,anonymous" write="admins,anonymous" admin="admins,anonymous" /> 

                          <authorizationEntry topic=">" read="admins,anonymous" write="admins,anonymous" admin="admins,anonymous" /> 

                          <authorizationEntry topic="ActiveMQ.Advisory.>" read="guests,users,anonymous" write="guests,users,anonymous" admin="guests,users,anonymous"/> 

                      </authorizationEntries> 

                  </authorizationMap> 

                </map> 

            </authorizationPlugin>

     

             上面配置即是通过认证插件,在接发Query/Topic/ ActiveMQ.Advisory的时候支持匿名用户。

     

    2.测试

      带用户名/密码的配置:

      <bean id="amqConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">

              <constructor-arg index="0" value="${jms.broker.username}"/>

              <constructor-arg index="1" value="${jms.broker.password}"/>

              <constructor-arg index="2" value="${jms.broker.url}"/>

              <property name="useAsyncSend" value="true"/>

         </bean>

      不带用户名/密码的配置:

      <bean id="amqConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">

              <constructor-arg index="0" value="${jms.broker.url}"/>

              <property name="useAsyncSend" value="true"/>

        </bean>

      实现结果:修改服务端的配置,客户端去除认证配置。对收发消息无影响。

    3.资料参考

      ActiveMQ Security:

      http://activemq.apache.org/security.html

  • 相关阅读:
    live-server
    vue-插槽
    100%的背影
    Luogu P3243 菜肴制作
    CF512E Fox And Polygon
    BZOJ2523/LOJ2646 聪明的学生
    Luogu P3959 宝藏
    Luogu P2280 激光炸弹
    ACAG 0x02-8 非递归实现组合型枚举
    ACAG 0x02-4 费解的开关
  • 原文地址:https://www.cnblogs.com/LuisYang/p/6007716.html
Copyright © 2011-2022 走看看