Tomcat manager页面403问题

Tomcat manager页面403问题

管理账号入口

Tomcat manager页面403问题_第1张图片

问题

Tomcat 管理页面如:http://10.10.10.10:8080/manager/html出现如下错误:

403 Access Denied

Tomcat manager页面403问题_第2张图片

1. 配置Tomcat管理用户

进入Tomcat安装目录:

vim conf/tomcat-users.xml

添加配置:





重启之后,本机可以访问,但远程访问还是403。

2.修改访问限制

打开 webapps 下的 host-managermanager,都有一个共同的文件夹META-INF,里面都有context.xml

进入Tomcat目录:

manager:

vim webapps/manager/META-INF/context.xml

host-manager:

vim webapps/host-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>

如果想让所有地址都可以访问,那么注释掉这行 Valve就可以了。


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

  <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
Context>

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

你可能感兴趣的:(Tomcat)