ActiveMQ Web控制檯的安全性

安裝好ActiveMQ後,其默認沒有任何安全控制,任何人都可以通過8161端口登錄Web控制檯,任何人都可以通過61616端口發送和接收JMS消息。在實際應用中,需要由我們自己對ActiveMQ進行安全性配置。

首先講Web控制檯的安全性。

ActiveMQ默認使用Jetty作爲內嵌的Web服務器。當然,你也可以把ActiveMQ的部署到Tomcat、JBoss等其他服務器中。在這裏,我們採用默認內嵌的Jetty,並使用JAAS來實現安全控制。

1、把 jetty-plus-6.1.9.jar 放到 ${activemq.base}/lib/web/中。如果你手上沒有jetty-plus-6.1.9.jar文件,可以從Jetty的官方網站下載,下載Jetty6.1.9版本,解壓後,在lib裏可以找到該文件。

2、在${activemq.base}/conf/jetty.xml裏,加上這麼一段:

<userRealms>
<jaasUserRealm name="adminRealm" loginModuleName="adminLoginModule" />
</userRealms>

3、在${activemq.base}/conf/目錄下新建一個login.config文件,內容如下:

adminLoginModule {
org.mortbay.jetty.plus.jaas.spi.PropertyFileLoginModule required
debug="true"
file="${activemq.base}/conf/login.properties";
};

4、在${activemq.base}/conf/目錄下新建一個login.properties文件,內容如下:

myusername:mypassword,admins

該文件的格式是:用戶名:密碼,角色

5、在${activemq.base}/webapps/admin/WEB-INF/web.xml裏,添加如下內容:
<security-constraint>
<web-resource-collection>
<web-resource-name>adminRealm</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>admins</role-name>
</auth-constraint>
</security-constraint>

<login-config>
<auth-method>BASIC</auth-method>
<realm-name>adminRealm</realm-name>
</login-config>

6、最後,修改${activemq.base}/bin/activemq文件,把配置文件添加到環境變量。把ACTIVEMQ_OPTS修改爲:
ACTIVEMQ_OPTS="$ACTIVEMQ_OPTS $SUNJMX $SSL_OPTS -Djava.security.auth.login.config=${ACTIVEMQ_BASE}/conf/login.config"
配置完畢。重啓ActiveMQ,在瀏覽器裏打開http://localhost:8161/admin,就會彈出一個對話框,要求輸入用戶名和密碼。
發佈了58 篇原創文章 · 獲贊 0 · 訪問量 3362
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章