Tomcat

從 localhost 更改為電腦名稱會引發 403 錯誤 (Tomcat 9)

  • September 6, 2019

我正在嘗試執行 Tomcat 9。我已將其配置為使用 SSL 執行。因此,當我使用以下命令訪問 tomcat URL 時:

https://localhost:8443/manager/html

它工作正常。但是當我嘗試用我的電腦名執行它時,我收到 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"/>

我也附上了錯誤螢幕。

Tomcat錯誤

您需要通過更改以下 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,或者將其添加到列表中。

引用自:https://serverfault.com/questions/982207