ActiveMQ 认证与授权
Posted peter2014
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ActiveMQ 认证与授权相关的知识,希望对你有一定的参考价值。
使用ActiveMQ自带simpleAuthenticationPlugin
1.直接将用户名密码写入activemq.xml文件
<plugins>
<simpleAuthenticationPlugin>
<users>
<authenticationUser username="username" password="password" groups="users, admins" />
</users>
</simpleAuthenticationPlugin>
</plugins>
2.可以使用凭证文件credentials.properties来存储
<plugins>
<simpleAuthenticationPlugin>
<users>
<authenticationUser username="$activemq.username" password="$activemq.password" groups="users, admins" />
</users>
</simpleAuthenticationPlugin>
</plugins>
vim credentials.properties
activemq.username=username
activemq.password=password
activemq.xml 顶部导入了file:$activemq.conf/credentials.properties,我们可以使用变量的方式引用该文件内部的属性
groups="users, admins" 表示定义用户所属的用户组, activemq按照用户组分配权限,注意不能删除groups属性,可以置空
使用JAASAuthentication Plugin
JAAS 全称为Java Authentication and Authorization Service JAVA认证授权服务
JAASAuthentication Plugin依赖标准的JAAS机制来实现认证,默认使用login.config文件作为配置
vim login.config
activemq
org.apache.activemq.jaas.PropertiesLoginModule required
org.apache.activemq.jaas.properties.user="users.properties"
org.apache.activemq.jaas.properties.group="groups.properties";
;
login.config配置中引用了users.properties和groups.properties分别进行用户名密码和用户组配置
vim users.properties
username=password
vim groups.properties
groups=username1, username2...
在activemq.xml添加JAASAuthentication Plugin配置
<plugins>
<jaasAuthenticationPlugin configuration="activemq" />
</plugins>
configuration="activemq" 指向login.config中配置的名称
使用authorizationPlugin进行授权
activemq可以对Queue,Topic的读写创建等进行权限控制,权限按照用户组分配
<plugins>
<authorizationPlugin>
<map>
<authorizationMap>
<authorizationEntries>
<authorizationEntry queue="activemq.>" read="users" write="users" admin="users"/>
<authorizationEntry topic="USER.>" read="admins" write="admins" admin="admins"/>
</authorizationEntries>
</authorizationMap>
</map>
</authorizationPlugin>
</plugins>
> 表示通配符 上述配置表明只有users组才能读写创建activemq.开头的队列,只有admins组才能读写创建USER.开头的主题
值的注意的是,"activemq.>"中通配符前的点符号必须存在否则无法生效,也就是说前缀必须以点号结尾
> 也可用 * 替换
以上是关于ActiveMQ 认证与授权的主要内容,如果未能解决你的问题,请参考以下文章