Tomcat7以上403 Access Denied錯誤


版本:Tomcat 9

問題:新安裝的tomcat,訪問tomcat的Server Status、Manager App、Host Manager三個頁面均顯示403,conf/tomcat-users.xml里已添加配置:

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

重啟之后,還是403.

查找網上解決辦法無果,大部分網上的文章都只提到了在tomcat-users.xml里添加上面的語句,無法解決,通過查閱官方文檔,終於找到真正原因所在(Tomat7不需要修改下面這兩個文件只有Tomcat7以上才需要修改)。

打開webapps下的host-managermanager,都有一個共同的文件夾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。

找到原因了,那么修改一下這里的正則表達式即可,我們修改為所有人都可以訪問,那么改成這樣就可以:

<Context antiResourceLocking="false" privileged="true" >
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="^.*$" />
</Context>

修改完畢,關閉瀏覽器,重新打開tomcat,問題解決!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM