Lost !

-----hard working for the furture.

导航

统计

Tomcat manager页面 403的真正原因及解决办法

问题:新安装的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,问题解决!

 

附:context.xml除了可以限制IP和主机之外,还有更多的作用,大家可以参考官方文档:http://tomcat.apache.org/tomcat-8.5-doc/config/valve.html#Remote_Address_Filter

 

本文转自 kuSorZ 51CTO博客,原文链接:http://blog.51cto.com/kusorz/1878743

posted on   失落''80  阅读(34)  评论(0编辑  收藏  举报

编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示