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)
Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐