Jboss下jmx-console與web-console配置

JBoss安裝成功後,一般可以通過http://localhost:port來訪問.Jmx Console和Jboss Web Console 裏面可以修改和刪除應用的參數,如果不加強安全設置,將會帶來嚴重安全後果。
默認登錄jmx-console的賬號信息是:admin/admin,因此我們應該修改這個賬號信息。


一、JMX安全配置
1: 找到%JBOSS_HOME%/server/default/deploy/jmx-console.war/WEB-INF/jboss-web.xml文件,去掉對下面這段xml文本的註釋。

Xml代碼

  1. 1. <jboss-web>       
  2. 2. <security-domain>java:/jaas/jmx-console</security-domain>       
  3. 3. </jboss-web>   
 

   


2: 與jboss-web.xml同級目錄下還有一個文件web.xml,找到下面這段xml文本,取消註釋。



Xml代碼


 
  1.  1. <security-constraint>       
  2.  2. <web-resource-collection>       
  3.  3. <web-resource-name>HtmlAdaptor</web-resource-name>       
  4.  4. <description>An example security config that only allows users with the       
  5.  5. role JBossAdmin to access the HTML JMX console web application       
  6.  6. </description>       
  7.  7. <url-pattern>/*</url-pattern>       
  8.  8. <http-method>GET</http-method>       
  9.  9. <http-method>POST</http-method>       
  10. 10. </web-resource-collection>       
  11. 11. <auth-constraint>       
  12. 12. <role-name>JBossAdmin</role-name>       
  13. 13. </auth-constraint>       
  14. 14. </security-constraint>     

注意:<role-name>JBossAdmin</role-name>


引用了一個已定義的角色名:JBossAdmin(這個角色名稱是在該文件下的<security-role><role- name>JBossAdmin</role-name></security-role>節點中定義的),


jmx-console-roles.properties文件中的角色名稱必須與其一致,


如:duqiang=JBossAdmin,HttpInvoker;定義了一個duqiang用戶,其屬於JBossAdmin角色



3: 在第一步中的jmx-console安全域和第二步中的運行角色JBossAdmin與用戶名和密碼都是在login-config.xml中配置,


我們在%JBOSS_HOME%/server/default/conf/login-config.xml文件可以看到以下配置,



Xml代碼


Java代碼
  1. 1. <!--此處應與jboss-web.xml文件中的<security-domain>java:/jaas/jmx-console</security-domain> 一致 -->   
  2. 2. <application-policy name = "jmx-console">   
  3. 3. <authentication>       
  4. 4. <login-module code="org.jboss.security.auth.spi.UsersRolesLoginModule"       
  5. 5. flag = "required">       
  6. 6. <module-option name="usersProperties">props/jmx-console-users.properties</module-option>       
  7. 7. <module-option name="rolesProperties">props/jmx-console-roles.properties</module-option>       
  8. 8. </login-module>       
  9. 9. </authentication>       
  10. 0. </application-policy>    



文件props/jmx-console-users.properties中定義了用戶名、密碼;文件props/jmx-console-roles.properties中定義了用戶所屬角色
注:
jmx-console-users.properties 格式是:用戶名=密碼明文
jmx-console-roles.properties 格式是:用戶名=角色1,角色2,角色3

可以找到這兩個文件,修改用戶名和密碼。


二、WEB-CONSOLE的安全配置
1:
找到%JBOSS_HOME%/server/default/deploy/ management/console-mgr.sar/web-console.war/WEB-INF/jboss-web.xml文件,去掉對以下xml文本的註釋。

Xml代碼   

  1. <jboss-web> 
  2. <depends>jboss.admin:service=PluginManager</depends> 
  3. </jboss-web>  


2:
與jboss-web.xml同級目錄下還有一個文件web.xml,找到下面這段xml文本,取消註釋。

Xml代碼

 

     

    1. <security-constraint>    
    2. <web-resource-collection>    
    3. <web-resource-name>HtmlAdaptor</web-resource-name>    
    4. <description>An example security config that only allows users with the    
    5. # role JBossAdmin to access the HTML JMX console web application    
    6. </description>    
    7. <url-pattern>/*</url-pattern>    
    8. <http-method>GET</http-method>    
    9. <http-method>POST</http-method>    
    10. </web-resource-collection>    
    11. <auth-constraint>    
    12. <role-name>JBossAdmin</role-name>    
    13. </auth-constraint>    
    14. </security-constraint>  

     



3:在 %JBOSS_HOME%/server/default/deploy/management/console-mgr.sar/web- console.war/WEB-INF/classes目錄下找到web-console-users.properties,web- console-roles.properties文件


分別把他們重命名成users.properties與roles.properties。


4:在% JBOSS_HOME%/server/default/conf/login-config.xml文件可以看到以下配置:


Xml代碼   


Java代碼
    1. <application-policy name = "web-console">    
    2. <authentication>    
    3. <login-module code="org.jboss.security.auth.spi.UsersRolesLoginModule"    
    4. flag = "required">    
    5. <module-option name="usersProperties">web-console-users.properties</module-option>    
    6. <module-option name="rolesProperties">web-console-roles.properties</module-option>    
    7. </login-module>    
    8. </authentication>    
    9. </application-policy>   
  1.  

修改該配置爲:


Java代碼
  1. 1. <application-policy name = "web-console">    
  2. 2. <authentication>    
  3. 3. <login-module code="org.jboss.security.auth.spi.UsersRolesLoginModule"    
  4. 4. flag = "required">    
  5. 5. <module-option name="usersProperties">users.properties</module-option>    
  6. 6. <module-option name="rolesProperties">roles.properties</module-option>    
  7. 7. </login-module>    
  8. 8. </authentication>    
  9. 9. </application-policy>   


你可以修改users.properties其中的用戶名和密碼,格式和上面的兩個properties文件中的一樣。

啓動服務輸入http://localhost:8080/jmx-console 和http://localhost:8080/web-console測試安全機制,安是否和你自己修改後的賬號信息一致。
也可以啓動服務輸入http://localhost:8080/
然後分別點擊JMX Console以及Jboss Web Console測試安全機制。

注意:如果在配置web-console時,不對web-console-users.properties與web-console- roles.properties文件重命名和修改login-config.xml文件中的<module-option name="usersProperties">users.properties</module-option>
<module-option name="rolesProperties">roles.properties</module-option> 節點內容時,控制檯會拋出異常信息。

出自:http://duqiangcise.javaeye.com/blog/780450

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章