ActiveMQ 配置 broker 认证

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ActiveMQ 配置 broker 认证相关的知识,希望对你有一定的参考价值。

参考技术A

ActiveMQ (apache.org)

两种常用认证方式:

在activemq.xml配置文件的 <broker></broker> 内,添加如下 <plugins>

修改login.config配置文件,增加如下:

修改 users.properties 如下:

修改 conf/credentials.properties 如下:
(该属性配置连接到broker的用户)

在web console 的 queue 选项卡下,新建一个queue。
如果权限不对,会提示如下

权限正确,会成功创建新queue,并可以进行管理

在activemq.xml配置文件的 <broker></broker>内,添加如下<plugins>:

这里已经配置了用户、密码,其他连接broker的配置都引用这里的用户信息。比如credentials.properties内的配置。

5.4.0 后, 可以配置 simple authentication plugin 来允许匿名访问。
配置如下:

ActiveMQ配置用户认证信息

以 apache-activemq-5.15.12-bin.tar.gz 为例,修改activemq.xml

在 <broker> 节点内的 <systemUsage> 节点前面新增如下xml片段:

<plugins>
    <simpleAuthenticationPlugin>
        <users>
            <authenticationUser username="gfstack" password="gfstack" groups="users, admins" />
        </users>
    </simpleAuthenticationPlugin>
</plugins>

重启activemq生效

代码修改:

在定义activemq连接池的时候添加用户密码信息即可,示例如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">

<beans>
    <!-- 配置生产者连接池 -->
    <bean id="producerConnectionFactory" class="org.apache.activemq.pool.PooledConnectionFactory"
        destroy-method="stop">
        <property name="connectionFactory">
            <bean class="org.apache.activemq.ActiveMQConnectionFactory">
                <property name="brokerURL">
                    <value>${activemq.url}</value>
                </property>
                <property name="userName">
                    <value>gfstack</value>
                </property>
                <property name="password">
                    <value>gfstack</value>
                </property>
            </bean>
        </property>
        <property name="maxConnections" value="${producer.maxConnections}"></property>
        <property name="maximumActiveSessionPerConnection" value="${producer.maximumActiveSessionPerConnection}"></property>
        <property name="idleTimeout" value="${producer.idleTimeout}"></property>
    </bean>
    
    <!-- 配置消费者连接池 -->
    <bean id="consumerConnectionFactory" class="org.apache.activemq.pool.PooledConnectionFactory"
        destroy-method="stop">
        <property name="connectionFactory">
            <bean class="org.apache.activemq.ActiveMQConnectionFactory">
                <property name="brokerURL">
                    <value>${activemq.url}</value>
                </property>
                <property name="userName">
                    <value>gfstack</value>
                </property>
                <property name="password">
                    <value>gfstack</value>
                </property>
            </bean>
        </property>
        <property name="maxConnections" value="${consumer.maxConnections}"></property>
        <property name="maximumActiveSessionPerConnection" value="${consumer.maximumActiveSessionPerConnection}"></property>
        <property name="idleTimeout" value="${consumer.idleTimeout}"></property>
    </bean>
</beans>

 

以上是关于ActiveMQ 配置 broker 认证的主要内容,如果未能解决你的问题,请参考以下文章

ActiveMQ配置用户认证信息

activeMq构建应用 - 5

ActiveMQ开启用户认证及消息持久化到数据库功能

ActiveMQ主题队列设置密码

ActiveMQ(08):ActiveMQ支持的传输协议与配置

ActiveMQ——ActiveMQ的Transport