一、定義用戶組

1.1?simpleAuthenticationPlugin通過在activemq.xml中配置用戶組

<plugins>?<simpleAuthenticationPlugin>?<users>?<authenticationUser?username="admin"?password="password"??groups="admins,publishers,consumers"/><authenticationUser?username="publisher"?password="password"?groups="publishers,consumers"/>?<authenticationUser?username="consumer"?password="password"?groups="consumers"/>?<authenticationUser?username="guest"?password="password"?groups="guests"/>?</users>?</simpleAuthenticationPlugin>?
</plugins>

1.2 通過JAAS來配置用戶組

<plugins>?<jaasAuthenticationPlugin?configuration="activemq-domain"?/>
</plugins>

增加login.config文件

activemq?{org.apache.activemq.jaas.PropertiesLoginModule?requiredorg.apache.activemq.jaas.properties.user="users.properties"org.apache.activemq.jaas.properties.group="groups.properties"reload=true;
};

?注:reload設置為true時,用戶名和密碼在每次請求的時候都會重新加載,即修改之后立即生效。


增加users.properties

system=manager
admin=password
user=password
guest=password
sslclient=CN=localhost,?OU=activemq.org,?O=activemq.org,?L=LA,?ST=CA,?C=US


增加groups.properties

admins=system,sslclient,client,broker1,broker2
tempDestinationAdmins=system,user,sslclient,client,broker1,broker2
users=system,user,sslclient,client,broker1,broker2
guests=guest


二、queue和topic配置不同角色的讀寫權限

<plugins>?<jaasAuthenticationPlugin?configuration="activemq"?/>?<authorizationPlugin>?<map>?<authorizationMap>?<authorizationEntries><authorizationEntry?queue="yyc-test"?read="guests"?write="users"?admin="admins"?/><authorizationEntry?topic="ActiveMQ.Advisory.>"?read="all"?write="all"?admin="all"/></authorizationEntries><tempDestinationAuthorizationEntry><tempDestinationAuthorizationEntry?read="tmpDestinationAdmins"?write="tmpDestinationAdmins"?admin="tmpDestinationAdmins"/></tempDestinationAuthorizationEntry></authorizationMap>?</map>?</authorizationPlugin>
</plugins>

注:

configuration的值要與login.config中的設置名稱相匹配,如:activemq;

ActiveMQ.Advisory.>以表達式的方式配置的topic一定要設置。因為連接的時候就是這種類型的主題,如果不配置此項話,連接會報錯(沒有權限)。


二、broker與broker之間的連接

<networkConnectors><networkConnector?name="brokerAbridge"userName="user"password="password"uri="static://(tcp://brokerA:61616)"/>
</networkConnectors>


參考地址:http://activemq.apache.org/security.html