Tomcat manager页面403问题

Tomcat manager页面403问题

管理账号入口

Tomcat1

问题

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

403 Access Denied

Tomcat2

1. 配置Tomcat管理用户

进入Tomcat安装目录:

vim conf/tomcat-users.xml

添加配置:

<role rolename="manager-gui"/>
<role rolename="admin-gui"/>

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

重启之后,本机可以访问,但远程访问还是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就可以了。

<?xml version="1.0" encoding="UTF-8"?>
<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" />
-->
  <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
</Context>

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值