Tomcat Manager用户配置详解

Linux系统 gongyj 1760℃ 已收录 0评论

Manager 是 Tomcat 自带的、用于对 Tomcat 自身以及部署在 Tomcat 上的应用进行管理的web应用。Tomcat 是 Java 领域使用最广泛的服务器之一,因此 Tomcat Manager 也成为了使用非常普遍的功能应用。

Manager.png

在默认情况下,Tomcat Manager 是处于禁用状态的。准确地说,Tomcat Manager 需要以用户角色进行登录并授权才能使用相应的功能,不过Tomcat 并没有配置任何默认的用户,因此需要我们进行相应的用户配置之后才能使用 Tomcat Manager。Ant 与 Jenkins 自动打war包并发布,也是要开启这个功能的。

Tomcat Manager 的用户配置是在 Tomcat 安装目录 $CATALINA_HOME/conf/tomcat-users.xml 文件中进行管理的。
Tomcat Manager 的用户配置非常简单,下面我们以 Tomcat 7 一个具体的配置为例:

<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
  <role rolename="manager-gui"/>
  <role rolename="manager-script"/>
  <role rolename="manager-jmx"/>
  <role rolename="manager-status"/>
  <user username="tomcat" password="tomcat" roles="manager-gui"/>
  <user username="admin" password="123456" roles="manager-script"/>
  <user username="user1" password="qwerty" roles="manager-jmx"/>
  <user username="user2" password="abc123" roles="manager-status"/>
</tomcat-users>

如上所示,我们只需要在 tomcat-users 节点中配置相应的 role (角色/权限)和 user (用户)即可。一个 user 节点表示单个用户,属性 username 和 password 分别表示登录的用户名和密码,属性 roles 表示该用户所具备的权限。
user 节点的 roles 属性值与 role 节点的 rolename 属性值相对应,表示当前用户具备该 role 节点所表示的角色权限。当然,一个用户可以具备多种权限,因此属性 roles 的值可以是多个 rolename,多个 rolename 之间以英文逗号隔开即可。如下所示:

<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
  <role rolename="manager-gui"/>
  <role rolename="manager-script"/>
  <role rolename="manager-jmx"/>
  <role rolename="manager-status"/>
  <user username="tomcat" password="tomcat" roles="manager-gui,manager-script,manager-jmx"/>
</tomcat-users>

配置文件中 rolename 的属性值并不是随意的内容,否则 Tomcat 怎么能够知道我们随便定义的 rolename 表示什么样的权限呢。实际上,Tomcat 已经为我们定义了4种不同的角色——也就是4个 rolename,我们只需要使用 Tomcat 为我们定义的这几种角色就足够满足我们的工作需要了。在 Tomcat 6 中,还有一个 manager 角色,结合了上述四个角色,访问任何一个上面的角色都是是允许的,不建议使用,在 Tomcat 7 中已经被移除了,更详细的说明请查看官方文档。

以下是Tomcat Manager 4种角色的大致介绍:
     manager-gui
    允许访问 html 图形用户接口与状态页面 (即 URL 路径为 /manager/html/* )
    manager-script
    允许访问纯文本接口与状态页面 (即 URL 路径为 /manager/text/* )
    manager-jmx
    允许访问JMX代理接口与状态页面 (即 URL 路径为 /manager/jmxproxy/* )
    manager-status
    只允许访问 Tomcat 状态页面 (即 URL 路径为 /manager/status/* )
从Tomcat Manager内部配置文件中可以得知,manager-gui、manager-script、manager-jmx 均具备 manager-status 的权限,也就是说,manager-gui、manager-script、manager-jmx 三种角色权限无需再额外添加 manager-status 权限,即可直接访问路径 /manager/status/*。

注意:给用户授权时 manager-gui 角色不可以添加 manager-script 与 manager-jmx 中的任何一个角色权限之后,否则系统会拒绝访问。有如下提示:

The HTML interface is protected against CSRF but the text and JMX interfaces are not. To maintain the CSRF protection:
   ●Users with the manager-gui role should not be granted either the manager-script or manager-jmx roles.
   ●If the text or jmx interfaces are accessed through a browser (e.g. for testing since these interfaces are intended for tools not humans) then the browser must be closed afterwards to terminate the session.

manager-script 角色可用来收集信息,访问路径比 Tomcat 6 多了一个 /text

1、通过serverinfo命令查看服务器基本信息

 http://localhost:8080/manager/text/serverinfo

2、通过list命令查看Web应用列表和会话数信息

http://localhost:8080/manager/text/list

manager-jmx

jmx 可以用于监控 Tomcat,可以显示当前运行的所有信息。

如果这里配置不当,会有安全问题,建议在生产环境下,不要配置管理页面,并清空全部代码和配置文件。

本站文章如未注明,均为原创丨本网站采用BY-NC-SA协议进行授权,转载请注明转自:http://blog.chopmoon.com/favorites/217.html
喜欢 (0)
发表我的评论
取消评论

表情 代码 贴图 加粗 链接 私信 删除线 签到

Hi,请填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
正在加载中……