Tomcat
從 localhost 更改為電腦名稱會引發 403 錯誤 (Tomcat 9)
我正在嘗試執行 Tomcat 9。我已將其配置為使用 SSL 執行。因此,當我使用以下命令訪問 tomcat URL 時:
它工作正常。但是當我嘗試用我的電腦名執行它時,我收到 403 錯誤,說我應該糾正我的 tomcat-users.xml。我的 XML 設置很好。但不確定在這種情況下該怎麼做。我已經使用我的電腦名稱條目設置了主機文件。
為了讓它工作,我需要做更多的設置嗎?
我的使用者文件有這些條目:
<role rolename="admin-gui"/> <role rolename="manager-gui"/> <role rolename="manager-jmx"/> <role rolename="manager-script"/> <role rolename="manager-status"/> <user password="admin" roles="manager-gui,admin-gui" username="admin"/>
我也附上了錯誤螢幕。
您需要通過更改以下 Valve 來明確允許 localhost 以外的主機訪問管理器 GUI
../webapps/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" /> <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/> </Context>
要麼像這樣評論它:
<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>
或者將 Valve 內部的 IP 更改為您需要的 IP,或者將其添加到列表中。