Tomcat经理不要求登录

时间:2016-07-22 21:33:43

标签: tomcat

我在Linux中安装了Tomcat v9。当我尝试访问Manager App时 - 它不会要求任何登录,并在下一页显示403 Access Denied错误。

tomcat-users.xml文件显示用户条目如下 -

  

<tomcat-users xmlns="http://tomcat.apache.org/xml"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
              version="1.0">

  <role rolename="manager-gui"/>
  <role rolename="admin-gui"/>
  <role rolename="manager-script"/>
  <role rolename="manager-jmx"/>
  <role rolename="manager-status"/>
  <role rolename="tomcat"/>
  <role rolename="role1"/>
  <user username="admin" password="admin" roles="admin-gui,manager-gui"/>
  <user username="tomcat" password="tomcat" roles="tomcat,manager-gui"/>
  <user username="both" password="both" roles="tomcat,role1"/>
  <user username="role1" password="role1" roles="role1"/>

</tomcat-users>

同样从server.xml中,正确映射了tomcat-users.xml文件。

&GT;

   <GlobalNamingResources>
    <!-- Editable user database that can also be used by
         UserDatabaseRealm to authenticate users
    -->
    <Resource name="UserDatabase" auth="Container"
              type="org.apache.catalina.UserDatabase"
              description="User database that can be updated and saved"
              factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
              pathname="conf/tomcat-users.xml" />
  </GlobalNamingResources>

我不明白为什么不要求我登录。在它这样做之前,我无法验证它是否正确起作用。可能是什么问题?

6 个答案:

答案 0 :(得分:8)

管理器应用程序本身有一个新的IP地址限制。看一下配置文件TOMCAT_HOME\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" />
</Context>

我建议您添加远程IP地址,例如允许专用网络 192.168.0.0

<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|192\.168\.0\.\d+" />

PS:主机管理器需要更改相同的设置。

答案 1 :(得分:0)

您的配置适用于Tomcat 9,访问http://localhost:8080/manager/html。我被提示输入凭据,并且能够使用admin:admin进行身份验证。

您确定您的Tomcat服务器正在启动而没有任何错误吗?

答案 2 :(得分:0)

请检查“ tomcat-users.xml ”中是否使用了</tomcat-users>标记两次。 这是我见过人们常犯的错误。 通常人们在编写完自己的代码后会写</tomcat-users>标记,并且没有注意到文件末尾已存在它。

否则,您的代码看起来不错。我只是跑了它,效果很好!

答案 3 :(得分:0)

同样的问题是tomcat版本8.5.24,我已经重新安装了tomcat到8.0.48,它工作正常,登录窗口正在按预期进行,也确保你提供<user username=" " password="" roles="manager-gui"/> in /conf/tomcat-users.xml

答案 4 :(得分:0)

我刚才遇到了同样的错误。我确定,如前所述,它是一个知识产权限制问题。

该文档指出,默认情况下,您应该能够从安装了该软件的本地服务器访问管理。我发现允许身份验证弹出窗口的工作是使用http://servername:8080而不是http://127.0.0.1:8080

当我使用环回地址而不是URL中的servername或实际IP地址时,我被正确地提示输入凭据并可以访问我需要的内容。这样,您就不必从网络上的其他节点打开管理页面。

答案 5 :(得分:0)

这不是非常有据可查的文件: https://tomcat.apache.org/tomcat-9.0-doc/manager-howto.html#Configuring_Manager_Application_Access

除了密码限制外,通过添加RemoteAddrValve或RemoteHostValve,可以通过远程IP地址或主机来限制对Manager Web应用程序的访问。有关详细信息,请参见阀门文档。 (强调我的)

没有说明默认情况下存在此限制,仅允许127.0.0.1。