預設情況訪問 http://localhost:8080/jmx-console 就可以瀏覽jboss的部署管理的一些資訊,不需要輸入使用者名稱和密碼,使用起來有點安全隱患。下面我們針對此問題對jboss進行配置,使得訪問jmx- console也必須要知道使用者名稱和密碼才可進去訪問。步驟如下: 

i) 找到JBoss安裝目錄/server/default/deploy/jmx-console.war/WEB-INF/jboss-web.xml文 件,去掉<security-domain>java:/jaas/jmx-console</security- domain>的註釋。修改後的該檔案內容為: 

<jboss-web><!-- Uncomment the security-domain to enable security. You will
      need to edit the htmladaptor login configuration to setup the
      login modules used to authentication users.
--><security-domain>java:/jaas/jmx-console</security-domain></jboss-web>


ii)修改與i)中的jboss-web.xml同級目錄下的web.xml檔案,查詢到<security-constraint/>節點,去掉它的註釋,修改後該部分內容為: 

<!-- A security constraint that restricts access to the HTML JMX console
   to users with the role JBossAdmin. Edit the roles to what you want and
   uncomment the WEB-INF/jboss-web.xml/security-domain element to enable
   secured access to the HTML JMX console.
--><security-constraint><web-resource-collection><web-resource-name>HtmlAdaptor</web-resource-name><description>An example security config that only allows users with the
         role JBossAdmin to access the HTML JMX console web application
       
</description><url-pattern>/*</url-pattern><http-method>GET</http-method><http-method>POST</http-method></web-resource-collection><auth-constraint><role-name>JBossAdmin</role-name></auth-constraint></security-constraint>

   在此處可以看出,為登入配置了角色JBossAdmin。 

iii) 在第一步中的jmx-console安全域和第二步中的執行角色JBossAdmin都是在login-config.xml中配置,我們在JBoss安 裝目錄/server/default/conf下找到它。查詢名字為:jmx-console的application-policy: 

<application-policy name = "jmx-console"><authentication><login-module code="org.jboss.security.auth.spi.UsersRolesLoginModule"
             flag 
= "required"><module-option name="usersProperties">props/jmx-console-users.properties</module-option><module-option name="rolesProperties">props/jmx-console-roles.properties</module-option></login-module></authentication></application-policy>


在此處可以看出,登入的角色、使用者等的資訊分別在props目錄下的jmx-console-roles.properties和jmx-console-users.properties檔案中設定,分別開啟這兩個檔案。 
其中jmx-console-users.properties檔案的內容如下: 

# A sample users.properties file for use with the UsersRolesLoginModule
admin
=admin 

該檔案定義的格式為:使用者名稱=密碼,在該檔案中,預設定義了一個使用者名稱為admin,密碼也為admin的使用者,讀者可將其改成所需的使用者名稱和密碼。 
jmx-console-roles.properties的內容如下: 

# A sample roles.properties file for use with the UsersRolesLoginModule
admin
=JBossAdmin, HttpInvoker 

該檔案定義的格式為:使用者名稱=角色,多個角色以“,”隔開,該檔案預設為admin使用者定義了JBossAdmin和HttpInvoker這兩個角色。 
配置完成後讀者可以通過訪問: http://localhost:8088/jmx-console/ ,輸入jmx-console-roles.properties檔案中定義的使用者名稱和密碼,訪問jmx-console的頁面。