Web 控制臺(tái)安全
1、管理后臺(tái)不要對(duì)外公開(kāi),不能讓外網(wǎng)訪(fǎng)問(wèn)
例如禁用端口號(hào)等
2、設(shè)置后臺(tái)訪(fǎng)問(wèn)的密碼,密碼要復(fù)雜一點(diǎn),不要公開(kāi)
● /conf/jetty.xml將配置項(xiàng)authenticate值改為 true,現(xiàn)在ActiveMQ新版本默認(rèn)authenticate是設(shè)置的true,所以也不用改
● /conf/jetty-realm.properties 設(shè)置用戶(hù)名和密碼,格式為-->用戶(hù)名:密碼,角色名
● 修改完畢后,重啟ActiveMQ,用新密碼登錄測(cè)試效果
消息服務(wù)器Broker安全
主要是添加訪(fǎng)問(wèn)的用戶(hù)名和密碼:實(shí)現(xiàn)方式有兩種:
<plugins>
<simpleAuthenticationPlugin>
<users>
<!--一般我們就配置第一個(gè)即可,下面兩個(gè)了解-->
<authenticationUser username="system" password="123456" groups="users,admins"/>
<authenticationUser username="user" password="123456" groups="users"/>
<authenticationUser username="guest" password="123456" groups="guests"/>
</users>
</simpleAuthenticationPlugin>
</plugins>
案例演示步驟
(1) 修改conf/activemq.xml文件
(2) 重啟ActiveMQ服務(wù)
(3) 基于JMS開(kāi)發(fā)的消息傳送需要修改的地方
修改11-activemq-java項(xiàng)目中,涉及工廠(chǎng)創(chuàng)建的代碼
public static final String USER_NAME = "system";
public static final String PASSWORD = "123456";
//1 .創(chuàng)建一個(gè)連接工廠(chǎng)
ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(USER_NAME,PASSWORD,BROKER_URL);
(4) 集成Spring框架需要修改的地方
修改12-activemq-spring-*下的applicationContext-jms.xml
<!-- 配置一個(gè)連接工廠(chǎng) -->
<bean id="connectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL" value="tcp://192.168.235.128:61616"/>
<property name="userName" value="system"/>
<property name="password" value="123456"/>
</bean>
(5) 集成SpringBoot框架需要修改的地方
修改13-activemq-boot-*中SpringBoot的核心配置文件
# 用戶(hù)名
spring.activemq.user=system
# 密碼
spring.activemq.password=123456
2、使用JAAS身份驗(yàn)證和授權(quán)
Java Authentication Authorization Service(JAAS,Java驗(yàn)證和授權(quán)服務(wù)),它可以通過(guò)插件的方式集成到你的應(yīng)用程序中,提供驗(yàn)證和授權(quán)服務(wù)。我們?cè)陂_(kāi)發(fā)的時(shí)候基本上不會(huì)用到這種方式,ActiveMQ集成了這種驗(yàn)證方式,所以我們直接配置使用即可。
注意:ActiveMQ配置文件如果有中文,有的時(shí)候會(huì)報(bào)錯(cuò),所以我們?cè)谂渲玫臅r(shí)候?qū)⒅形淖⑨寗h除掉
ActiveMQ加入JAAS身份驗(yàn)證,共需要對(duì)4個(gè)文件進(jìn)行配置:
● activemq.xml
● login.config
● groups.properties
● users.properties
(1) 在conf/activemq.xml文件中加上
如果配置以下內(nèi)容,需要將第一種方式配置的內(nèi)容刪除掉
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.開(kāi)頭的主題,>表示所有主題,read表示讀的權(quán)限,write表示寫(xiě)的權(quán)限,admin表示角色組-->
<authorizationEntry queue=">" read="admins" write="admins" admin="admins" />
<authorizationEntry topic=">" read="admins" write="admins" admin="admins" />
<authorizationEntry queue="ActiveMQ.Advisory.>" read="admins" write="admins" admin="admins" />
<authorizationEntry topic="ActiveMQ.Advisory.>" read="admins" write="admins" admin="admins" />
</authorizationEntries>
</authorizationMap>
</map>
</authorizationPlugin>
</plugins>
(2) 配置conf/login.config(默認(rèn)是正確的,所以不需要修改)
注意:activemq名字和activemq.xml配置的名字要一直
ctivemq {
org.apache.activemq.jaas.PropertiesLoginModule required
org.apache.activemq.jaas.properties.user="users.properties"
org.apache.activemq.jaas.properties.group="groups.properties";
};
(3) 配置conf/groups.properties
#group=userName
admins=system
(4) 配置conf/users.properties
#userName=password
system=123456