版本: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-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。
找到原因了,那么修改一下這里的正則表達式即可,我們修改為所有人都可以訪問,那么改成這樣就可以:
<Context antiResourceLocking="false" privileged="true" > <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" /> </Context>
修改完畢,關閉瀏覽器,重新打開tomcat,問題解決!