默認情況訪問 http://localhost:8080/jmx-console 就可以瀏覽jboss的部署管理的一些信息,不需要輸入用戶名和密碼,使用起來有點安全隱患。下面我們針對此問題對jboss進行配置,使得訪問jmx- console也必須要知道用戶名和密碼才可進去訪問。步驟如下:
i)路徑:/server/default/deploy/jmx-console.war/WEB-INF/jboss-web.xml目錄下的web.xml文件,查找到<security-constraint/>節點,
<security-constraint>
<web-resource-collection>
<web-resource-name>HtmlAdaptor</web-resource-name>
<description>An example security config that onlyallows 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。
i)登錄運行角色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>
在此處可以看出,登錄的角色、用戶等的信息分別在/server/default/conf/props目錄下的jmx-console-roles.properties和jmx-console-users.properties文件中設置,分別打開這兩個文件。
其中jmx-console-users.properties文件的內容如下:
# A sample users.properties file foruse with the UsersRolesLoginModule
admin=admin
lanyuan=123
該文件定義的格式為:用戶名=密碼,在該文件中,默認定義了一個用戶名為admin,密碼也為admin的用戶,讀者可將其改成所需的用戶名和密碼。
同時我添加了一個用戶為lanyuan,密碼是:123
jmx-console-roles.properties的內容如下:
# A sample roles.properties file foruse with the UsersRolesLoginModule
admin=JBossAdmin,HttpInvoker
lanyuan=JBossAdmin,HttpInvoker
該文件定義的格式為:用戶名=角色,多個角色以“,”隔開,該文件默認為admin用戶定義了JBossAdmin和HttpInvoker這兩個角色。
配置完成后讀者可以通過訪問: http://localhost:8088/jmx-console/ ,輸入jmx-console-roles.properties文件中定義的用戶名和密碼,訪問jmx-console的頁面。
同時我為lanyuan添加了角色