JMS-ActiveMQ学习-5 ActiveMQ的安全机制
一、控制台安全(8161)
1.修改conf/jetty.xml文件中的authenticate的两个值为true
2.修改conf/jetty-realm.properties文件中的用户名:密码:角色,第二项为密码
admin: admin, admin
user: user, user
二、服务器安全(61616)
两种方式设置:
activemq.xml文件中记录着用户名和密码
1.方式一:conf/activemq.xml添加plugins关于密码的设置:
在<broker>节点里面<systemUsage>节点前面添加如下
<plugins>
<simpleAuthenticationPlugin>
<users>
<authenticationUser username="${activemq.username}" password="${activemq.password}" groups="users,admins"/>
</users>
</simpleAuthenticationPlugin>
</plugins>
添加完用户名和密码之后项目中如何使用呢?
定义new ActiveMQConntectionFactory的时候使用传用户名密码的构造方法
或者
有spring配置文件的在配置连接工厂的时候设置属性property userName和password
或者
springboot项目中在application.properties文件中添加:
spring.activemq.user=userName
spring.activemq.password=123
2.方式二:JAAS身份验证和授权
ActiveMQ加入JAAS身份验证,修改4个文件:
activemq.xml文件中添加:
在conf/activemq.xml文件中加入以下内容,如配置了systemUsage,应该放到systemUsage前
<plugins>
<!--use JAAS to authenticate using the login.config file on the classpath to configure JAAS -->
<jaasAuthenticationPlugin configuration="activemq" />
<!-- lets configure a destination based authorization mechanism -->
<authorizationPlugin>
<map>
<authorizationMap>
<authorizationEntries>
<!-->表示通配符,例如USERS.>表示以USERS.开头的主题,>表示所有主题,read表示读的权限,write表示写的权限,admin表示是否能创建-->
<authorizationEntry queue=">" read="admins" write="admins" admin="admins" />
<authorizationEntry topic=">" read="admins" write="admins" admin="admins" />
<authorizationEntry queue="ActiveMQ.Advisory.>" read="tests" write="tests" admin="tests" />
<authorizationEntry topic="ActiveMQ.Advisory.>" read="tests" write="tests" admin="tests" />
<!-- tests组具有tests.>的queue和topic的所有权限,没有其他的权限 -->
<authorizationEntry queue="test.>" read="tests" write="tests" admin="tests" />
<authorizationEntry topic="test.>" read="tests" write="tests" admin="tests" />
</authorizationEntries>
</authorizationMap>
</map>
</authorizationPlugin>
</plugins>
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";
};
用户名、密码文件users.properties
#用户名=密码
admin=admin
test=123
分组文件groups.properties
#角色=用户1,用户2
admins=admin
tests=test

浙公网安备 33010602011771号