JBoss 預設 https://localhost:8080/jmx-console 與 /web-console 無需認證即可存取,生產環境嚴重風險。
編輯 server/default/deploy/jmx-console.war/WEB-INF/jboss-web.xml,取消註解:
<jboss-web>
<security-domain>java:/jaas/jmx-console</security-domain>
</jboss-web>
同目錄 web.xml:
<security-constraint>
<web-resource-collection>
<web-resource-name>HtmlAdaptor</web-resource-name>
<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>
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>JBoss JMX Console</realm-name>
</login-config>
<security-role>
<role-name>JBossAdmin</role-name>
</security-role>
server/default/conf/login-config.xml 中的 application-policy name="jmx-console" 指向:
props/jmx-console-users.properties:username=passwordprops/jmx-console-roles.properties:username=role1,role2修改範例:
# jmx-console-users.properties
admin=StrongP@ssw0rd
monitor=MonitorPass
# jmx-console-roles.properties
admin=JBossAdmin,HttpInvoker
monitor=JBossMonitor
重啟 JBoss,訪問 /jmx-console 即彈出 BASIC 認證對話框。
server/default/deploy/management/console-mgr.sar/web-console.war/WEB-INF/jboss-web.xml 啟用 security-domain>java:/jaas/web-console。web.xml 加入相同 security-constraint、login-config(角色同用 JBossAdmin)。login-config.xml 找 application-policy name="web-console",指向 web-console-users.properties / web-console-roles.properties,編輯用戶密碼。login-config 的 auth-method 可改為:
DIGEST:密碼不以明文傳輸,需用戶端支援。FORM:自訂 login.jsp / login-error.jsp,體驗較好。範例(FORM):
<login-config>
<auth-method>FORM</auth-method>
<realm-name>JBoss Admin</realm-name>
<form-login-config>
<form-login-page>/login.html</form-login-page>
<form-error-page>/login-error.html</form-error-page>
</form-login-config>
</login-config>
-b 192.168.x.x),禁止公網直連。jmx-console-users.properties 變更記錄。management-native 介面 (9990/9993) 與 ApplicationRealm,配置方式不同,請參考新版文件。