咨询热线:4006-75-4006

售前:9:00-23:30    备案:9:00-18:00    技术:7*24h

Tomcat的managerhost页面403的原因和解决办法

2017-03-13 23:31:34 5489次

版本:Tomcat 8.5.8

问题:新安装的tomcat,用其他机器访问tomcat的Server Status、Manager App、Host Manager三个页面均显示403(本机访问没有问题),conf/tomcat-users.xml里已添加配置:

<role rolename="manager-gui"/>

<role rolename="admin-gui"/>

<user username="tomcat" password="qazwsx" roles="manager-gui,admin-gui"/>

 

重启之后,还是403,甚至在尝试使用多种解决方法的时候还出现过404(原因不明)

 

查找网上解决办法无果,大部分网上的文章都只提到了在tomcat-users.xml里添加上面的语句,无法解决,通过查阅官方文档,英文真的烂(用翻译软件,看得一知半解),终于找到真正原因所在。

 

打开webapps下的host-manager和manager,都有一个共同的文件夹META-INF,里面都有context.xml,这个文件的内容是:

<Context antiResourceLocking="false" privileged="true" >

  <Valve className="org.apache.catalina.valves.RemoteAddrValve"

         allow="127.d+.d+.d+|::1|0:0:0:0:0:0:0:1" />

</Context>

通过查看官方文档,知道,这段代码的作用是限制来访IP的,127.d+.d+.d+|::1|0:0:0:0:0:0:0:1,是正则表达式,表示IPv4和IPv6的本机环回地址,所以这也解释了,为什么我们本机可以访问管理界面,但是其他机器确?403。

 

找到原因了,那么修改一下这里的正则表达式即可,比如我们只允许内网网段192.168.88访问管理页面,那么改成这样就可以:

<Context antiResourceLocking="false" privileged="true" >

  <Valve className="org.apache.catalina.valves.RemoteAddrValve"

         allow="192.168.88.*" />

</Context>

 

修改完毕,关闭浏览器,重新打开tomcat,问题解决!

 


首页
最新活动
个人中心