我在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>
我不明白为什么不要求我登录。在它这样做之前,我无法验证它是否正确起作用。可能是什么问题?
答案 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。