您的位置:首页 > 数据库

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

2017-04-14 16:05 537 查看

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>


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";
};


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

3. 修改users.properties

admin=admin


前面是用户名后面是密码

4. 修改groups.properties

admins=admin


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

将消息持久化到数据库中

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

修改activemq.xml

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


在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>


然后创建数据库activemq。

修改mysql配置

[mysqld]
binlog_format=mixed
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: