tomcat8以前配置tomcat-users.xml就能访问manager和host-manager项目, 来管理和查看tomcat状态.
再tomcat8开始, 只修改tomcat-users还是会出现403, 禁止访问.
原因是tomcat8开始, 默认只能本机访问管理项目, 再host-manager和manager项目下的/META-INF/下有个context.xml
里面默认启用了访问控制:
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
context.xml可以将上面的注释掉, 也可以将allow改为\d+\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1即可
tomcat-users.xml
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<user username="test" password="test" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-gui,admin-script"/>
有6个角色, 分别是manager=(manager-gui, manager-script), manager-jmx, manager-status, admin=(admin-gui,admin-script), 为了细粒度控制, 所以再manager和admin角色上分出来更细的角色, 角色名称固定的, 不是自定义的.