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

  • 相关阅读:
    ubuntu18+k8s单机版+kuboard+harbor安装笔记
    Apache commons StringSubstitutor 替换占位符
    Kafka消费与心跳机制
    本地机器如何访问服务器上的docker容器内的tensorboard?
    Pytorch cuDNN error: CUDNN_STATUS_NOT_SUPPORTED.解决办法
    Docker常用方法总结
    SpringBoot
    新版chrome中非https无法打开摄像头
    DDIA----笔记(不定时更新)
    Windows 无法验证此设备所需的驱动程序的数字签名。最近的硬件或软件更改安装的文件可能未正确签名或已损坏,或者可能是来自未知来源的恶意软件。 (代码 52)
  • 原文地址:https://www.cnblogs.com/LuisYang/p/6007716.html
Copyright © 2011-2022 走看看