分享

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

 WindySky 2018-03-06

1、开启用户认证机制

ActiveMQ默认是不开启用户认证机制的,如果需要开启则需要修改配置。

1. 首先打开activemq.xml,在broker下增加

<plugins>
    <jaasAuthenticationPlugin configuration="activemq" />

    <authorizationPlugin>
        <map>
            <authorizationMap>
                <authorizationEntries>
                    <authorizationEntry queue=">" read="admins" write="admins" admin="admins" />
                    <authorizationEntry topic=">" read="admins" write="admins" admin="admins" />
                </authorizationEntries>
            </authorizationMap>
        </map>
    </authorizationPlugin>
</plugins>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

authorizationEntry中配置队列(queue)或主题(topic)的read、write、admin分别需要什么角色。>表示统配。

2. 修改login.conf

activemq {
    org.apache.activemq.jaas.PropertiesLoginModule required
        org.apache.activemq.jaas.properties.user="users.properties"
        org.apache.activemq.jaas.properties.group="groups.properties";
};
  • 1
  • 2
  • 3
  • 4
  • 5

这里的activemq 要与<jaasAuthenticationPlugin configuration="activemq" /> 中configuration的值保持一致。

3. 修改users.properties

admin=admin
  • 1

前面是用户名后面是密码

4. 修改groups.properties

admins=admin
  • 1

前面是组名,后面是用户列表。多个用户之间用逗号分隔。

将消息持久化到数据库中

首先需要将mysql驱动、commons-dbcp、commons-pool这三个jar包放到activemq的lib目录下。

修改activemq.xml

<persistenceAdapter>
    <jdbcPersistenceAdapter dataDirectory="${activemq.base}/data" dataSource="#mysql-ds" useDatabaseLock="false"/>
</persistenceAdapter>
  • 1
  • 2
  • 3

在broker外配置

<bean id="mysql-ds" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
    <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
    <property name="url" value="jdbc:mysql://192.168.1.202:3306/activemq?relaxAutoCommit=true"/>
    <property name="username" value="root"/>
    <property name="password" value="root"/>
    <property name="maxActive" value="200"/>
    <property name="poolPreparedStatements" value="true"/>
</bean>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

然后创建数据库activemq。

修改mysql配置

[mysqld]
binlog_format=mixed
  • 1
  • 2

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多