JBoss服务器可以通过远程的方式关闭服务,因为默认情况JBoss控制台的用户密码都为空,见前一篇文章,看到这个消息后,吃了一惊,因为我们有个东东正在用JBoss做服务器,测试了一下,确实存在这样的问题,赶紧照着材料补了一下
我用的JBoss版本是Version: 4.0.4CR2,操作如下
一、为jms-console加上认证
修改JBoss4\server\default\deploy\jmx-console.war\WEB-INF下的web.xml和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 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>
在JBoss-web.xml中把<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>
然后修改JBoss4\server\default\conf\props下的两个配置文件jmx-console-roles.properties 和jmx-console-users.properties,添加用户和密码,搞定上面的配置之后,访问jms-console就需要认证了,下面继续 web-console的配置
二、为web-console加上认证
在deploy目录下面没有看到web-console,就通过查找,结果找到了两个地方,分别是
jboss4\server\default\deploy\management\console-mgr.sar\web-console.war\
jboss4\server\all\deploy\management\console-mgr.sar\web-console.war\
我也没搞清楚倒底是哪个起作用,我改了其中一个试试,没效果,干脆两个都改了,改的步骤都是相同的,下面就对其中一个的配置进行说明了
找到 WEB-INF\下面的JBoss-web.xml和web.xml,修改的方法同上,去掉两个注释
认证的文件放在了 WEB-INF\classes\下面,分别是web-console-roles.properties和web-console- users.properties,把用户的认证信息添加到里面即可,重新启动JBoss控制台,此时登录JBoss控制台会要求输入密码,我测试后发现有效的密码是 default下面的配置,也搞不懂为什么要两个都改了才会弹出要求身份认证的对话框
以上是JBoss控制台加锁,先暂时就记在这里吧,如果哪位有做深入的研究,希望可以多提意见完善这个文档
【编辑推荐】