我正在尝试使用 JaasAuthenticationPlugin 对尝试访问特定队列的用户进行身份验证。(我的大部分代码都基于 ActiveMQ in Action 中给出的示例)
最终,我想针对 Active Directory 服务器进行身份验证,该服务器的名称中可能包含带有空格的组,但是当我尝试使用名称中带有空格的组时,我遇到了问题。到目前为止我所拥有的:
登录配置:
activemq-domain {
org.apache.activemq.jaas.PropertiesLoginModule required
debug=true
org.apache.activemq.jaas.properties.user="users.properties"
org.apache.activemq.jaas.properties.group="groups.properties";
};
用户属性:
user=password
组属性:
users=user
Users Group=user
activemq.xml:
<plugins>
<jaasAuthenticationPlugin configuration="activemq-domain" />
<authorizationPlugin>
<map>
<authorizationMap>
<authorizationEntries>
<authorizationEntry queue=">"
read="users"
write="users"
admin="users" />
<authorizationEntry topic=">"
read="users"
write="users"
admin="users" />
</authorizationEntries>
</authorizationMap>
</map>
</authorizationPlugin>
</plugins>
这很好用,但是一旦我尝试使用“用户组”而不是“用户”,我就会得到:
javax.jms.JMSException: User user is not authorized to create: topic://ActiveMQ.Advisory.Connection
ActiveMQ 或 JAAS 是否不支持带有空格的组名?我需要以某种方式逃离这些空间吗?