原文链接:Tomcat – 05 – tomcat-users.xml配置文件详解


相关文章:


当我们在服务器上部署好 Tomcat 并运行之后,此时我们去访问 Tomcat 的默认页面,点击 Server Status、Manager App、Host Manager 时,会报 403 异常,这是由于我们没有配置 Tomcat 的用户名和密码导致的,我们可以通过 tomcat-users.xml 配置文件来进行设置

官方文档 --> Manager App How-To

官方文档 --> Host Manager App – Text Interface

在这里插入图片描述


一、服务作用

服务 作用
Server Status 查看 Tomcat 服务的状态信息
Manager App 查看 Tomcat Web 应用管理器
Host Manager 查看 Tomcat 虚拟机管理器

二、角色作用

  • Server Status、Manager App

    角色 作用
    manager-gui 访问 HTML 页面
    manager-status 仅访问 “服务器状态” 页面
    manager-script 访问脚本页面,以及 “服务器状态” 页面
    manager-jmx 访问 JMX 代理接口和 “服务器状态” 页面
  • Host Manager

    角色 作用
    admin-gui 访问 HTML 页面
    admin-script 访问脚本页面

三、修改配置文件

  • 修改 tomcat-users.xml

    • cd /usr/local/tomcat/apache-tomcat-9.0.19/conf

    • vim tomcat-users.xml

      <role rolename="admin-gui" />
      <role rolename="manager-gui" />
      <user username="admin" password="admin" roles="admin-gui,manager-gui" />
      
    • :wq

  • 如上所示,只需要配置两个角色:admin-gui 和 manager-gui,再配置一个用户名和密码就可以了,但在修改完重启 Tomcat 后,再次去点击 Server Status、Manager App、Host Manager 时,还是会报 403 异常,这是由于 Tomcat 做了 IP 的访问限制 (默认只能本机访问)

  • 因此我们需要解除 Tomcat 的 IP 访问限制,还需要修改下两个 context.xml 配置文件

    • 第一个 context.xml 配置文件

      • cd /usr/local/tomcat/apache-tomcat-9.0.19/webapps/manager/META-INF

      • vim 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>
        
        • 如上所示,将限制 IP 访问的语句注释掉即可
      • :wq

    • 第二个 context.xml 配置文件

      • cd /usr/local/tomcat/apache-tomcat-9.0.19/webapps/host-manager/META-INF

      • vim 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>
        
        • 同理,将限制 IP 访问的语句注释掉即可
      • :wq


四、访问

  • 此时,我们再去点击 Server Status、Manager App、Host Manager 时,输入用户名和密码后,就可以正常访问了
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐