1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
| 在配置好Tomcat7/8后,我们往往需要访问Tomcat7/8的Manager以及Host Manager。就需要在tomcat-users.xml中配置用户角色来实现。 在地址栏输入:localhost:8080访问 Tomcat,在打开的界面中,在右上角有这样三个按钮: 1. Server Status 2. Manager App 3. Host Manager 可是在我们配置好tomcat-users.xml后,这三个按钮往往不能都访问,要么是只能访问其中一个,或者就是两个。 出现这种问题很有可能是你在配置中,角色没有添加全,尤其是在第三个按钮的配置上, 第三个按钮的配置Tomcat7和Tomcat8的配置是不相同的。 为了实现配置让三个按钮都能访问到,我们先看下tomcat-users.xml里面的一段用户配置:
<tomcat-users> <role rolename="manager-gui"/> <role rolename="manager-script"/> <user username="tomcat" password="tomcat" roles="manager-gui"/> <user username="admin" password="admin" roles="manager-script"/> </tomcat-users>
<role rolename="角色名">这个是用来定义角色的,很明显rolename的属性值并不是我们随意写的。实际上, Tomcat已经为我们定义了4种不同的角色,也就是4个rolename, 我们只需要使用Tomcat为我们定义的这几种角色就足够满足我们的工作需要了。
manager-gui #允许访问html接口(即URL路径为/manager/html/*) manager-script #允许访问纯文本接口(即URL路径为/manager/text/*) manager-jmx #允许访问JMX代理接口(即URL路径为/manager/jmxproxy/*) manager-status #允许访问Tomcat只读状态页面(即URL路径为/manager/status/*)
特别需要说明的是:manager-gui、manager-script、manager-jmx均具备manager-status的权限, 也就是说,manager-gui、manager-script、manager-jmx三种角色权限无需再额外添加manager-status权限, 即可直接访问路径”/manager/status/*”。 <user username="用户名" password="密码" roles="角色(可多个)"/>这个很简单,就是用来表示用户的, 其中roles对应的就是上面定义的角色,可以有多个角色,多个角色用“,”隔开即可。也可以配置多个用户。
需要访问前两个按钮,只需配置manager-*(4个按需配置)即可。 需要访问第三个按钮,需要配置 admin-gui(HTML UI接口)或admin-script(纯文本接口)。 如果都要访问,配置在一起即可。 下面根据Tomcat7和Tomcat8分别贴出用户配置: 1、Tomcat7访问Server Status、Manager App、Host Manager的配置。
声明:此配置不注重安全性,只是测试。具体根据需求可删减
<role rolename="admin"/> <role rolename="admin-gui"/> <role rolename="admin-script"/> <role rolename="manager-gui"/> <role rolename="manager-script"/> <role rolename="manager-jmx"/> <role rolename="manager-status"/> <user username="admin" password="admin" roles="admin,admin-gui,admin-script,manager-gui,manager-script,manager-jmx,manager-status"/>
2、Tomcat8访问Server Status、Manager App、Host Manager的配置。
声明:此配置不注重安全性,只是测试。具体根据需求可删减 Tomcat8如果在上面配置的基础上,访问时会报403错误,所以需要修改,如果没有的话新建conf/Catalina/localhost/manager.xml 文件。 配置内容如下:
<Context privileged="true" antiResourceLocking="false" docBase="${catalina.home}/webapps/manager"> <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" /> </Context>
以上经过亲测,如果配置好后还提示404或403错误,欢迎留言!
|