ActiveMQ安全认证
·
1、开启认证插件
在activemq.xml配置文件的 broker标签中增加如下内容:
<plugins>
<!-- 添加 jaas 认证插件 -->
<jaasAuthenticationPlugin configuration="activemq" />
<authorizationPlugin>
<map>
<authorizationMap>
<authorizationEntries>
<authorizationEntry topic=">" read="admins" write="admins" admin="admins" />
<authorizationEntry queue=">" read="admins" write="admins" admin="admins" />
<authorizationEntry topic="ActiveMQ.Advisory.>" read="admins" write="admins" admin="admins"/>
<authorizationEntry queue="ActiveMQ.Advisory.>" read="admins" write="admins" admin="admins"/>
</authorizationEntries>
</authorizationMap>
</map>
</authorizationPlugin>
</plugins>
jaasAuthenticationPlugin:指定了使用 JAAS 插件管理权限,至 configuration="activemq"是在 login.conf文件里定义的
authorizationEntry:指定了具体的 Topic/Queue 与用户组的授权关系
2、用户配置信息
1)在login.config文件中,user 代表用户信息配置文件,group 代表用户组信息配置文件;
activemq { org.apache.activemq.jaas.PropertiesLoginModule required org.apache.activemq.jaas.properties.user="users.properties" org.apache.activemq.jaas.properties.group="groups.properties"; };
2)用户配置方式:users.properties
#用户名=密码
admin=admin
testuser01=testpass01
3)用户组配置方式:groups.properties
#用户组名=用户名,用户名
admins=admin,testuser01
3、重启MQ后生效
如果访问用户名/密码不正确,则会抛出类似如下异常:
java.lang.SecurityException: User name [test] or password is invalid.
Caused by: java.lang.SecurityException: User name [test] or password is invalid.
at org.apache.activemq.security.JaasAuthenticationBroker.authenticate(JaasAuthenticationBroker.java:97)
at org.apache.activemq.security.JaasAuthenticationBroker.addConnection(JaasAuthenticationBroker.java:68)
at org.apache.activemq.broker.BrokerFilter.addConnection(BrokerFilter.java:99)
at org.apache.activemq.broker.BrokerFilter.addConnection(BrokerFilter.java:99)
更多推荐
所有评论(0)