无法登录Tomcat管理应用程序

15

我在Stack Overflow上阅读了很多主题来解决我的问题,但是没有一个有用。

当我尝试使用许多不同的配置登录Manager应用程序([http://localhost:8080/manager/html][1])时,尝试使用正确的凭据登录后始终获得401未经授权错误。我重启了Tomcat服务器几次。

这是我在conf / tomcat-users.xml中的最新配置

   <?xml version="1.0" encoding="UTF-8"?>
    <tomcat-users>  
      <role rolename="manager-gui"/>
      <role rolename="manager-script"/>
      <role rolename="manager-jmx"/>
      <role rolename="manager-status"/>
      <role rolename="admin-gui"/>
      <role rolename="admin-script"/>
      <user username="admin" password="admin" roles="manager-gui, manager-script, manager-jmx, manager-status, admin-gui, admin-script"/>
    </tomcat-users>

这是与server.xml中的tomcat-users相关的部分。

 <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>

这是我的配置: Apache Tomcat: 版本 7.0.40 64 位 在 Chrome 26 上测试过

如果还有其他有用的东西我忘了,请告诉我。 提前致谢


一切看起来都很好。你能试着只用下面的角色吗?<user name="admin" password="admin" roles="admin-gui,manager-gui" /> - amicngh
有一个让我感到非常困惑的问题...在tomcat-users.xml文件中,示例<user>标签默认情况下是以注释块的形式出现的...请确保将其从注释块中删除。XD - Alkanshel
11个回答

26

从尾部追踪 [tomcat-root]/logs/catalina.out,我发现您正在使用一个被锁定的用户名"admin"

06-May-2014 16:47:41.828 WARNING [http-nio-192.168.0.51-8080-exec-6] org.apache.catalina.realm.LockOutRealm.authenticate An attempt was made to authenticate the locked user "admin"

你应该尝试使用一个更好(不易猜测)的用户名。

<role rolename="manager-gui"/>
<user username="TomcatAdmin" password="secpa55wd" roles="manager-gui"/>

这肯定可以为你工作。


4
如下回答所述,必须重新启动服务器才能反映在tomcat-users.xml文件中更改用户凭据。 - srinivas
重启服务后,我的用户名/密码更改得到了更新。 - Adam
请注意,在NetBeans + Tomcat集成中,配置文件的位置不是默认位置:https://stackoverflow.com/questions/27591134/cant-access-manager-app-in-tomcat-8#27594468 - hello_earth
这绝对是答案,更改您的用户名和密码。如果您无法打开“管理应用程序”选项卡,请尝试使用另一个浏览器。 - XpressGeek

3

检查语法和开始-结束标签。当我开始学习Java时,犯了一个愚蠢的错误。这行代码对我有用。

<?xml version="1.0" encoding="UTF-8"?>
<tomcat-users>
 <role rolename="manager-gui"/>
      <role rolename="manager-script"/>
      <role rolename="manager-jmx"/>
      <role rolename="manager-status"/>
      <role rolename="admin-gui"/>
      <role rolename="admin-script"/>
      <role rolename="manager-gui"/>
<user username="admin" password="admin" roles="manager-gui"/>
</tomcat-users>

2

我觉得配置没问题。你可以尝试使用下面的tomcat-users.xml文件。

<tomcat-users>
  <user name="admin" password="admin" roles="admin-gui,manager-gui" />
</tomcat-users>

请在更改后重新启动服务器。

遇到了同样的问题。它曾经让我登录过一次,但是后来就停止了。我的XML配置都没问题,只是有点困惑。 - Madona wambua

1

不要更改任何内容,只需将以下配置替换为/etc/tomcat9/tomcat-users.xml

<?xml version="1.0" encoding="UTF-8"?>
 <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="tomcat"/>
  <role rolename="admin-gui"/>
  <role rolename="manager-gui"/>
  <user username="admin" password="admin" roles="admin-gui,manager-gui,tomcat" /
</tomcat-users>

通过使用 sudo systemctl restart tomcat9 重新启动Tomcat服务器

使用此网址登录manage-app管理员 http://127.0.0.1:8080/manager/html


1
如果您尝试了其他答案,但没有任何区别,可能需要清理您的Tomcat,然后再次尝试。这是我的清理命令(不确定它们有多普遍):
rm -R $TOMCAT_HOME/work/Catalina/<host>/*
rm -rf $TOMCAT_HOME/webapps/<app name>

1
上面的解决方案可能已经解决了您的问题。被锁定的用户解决方案启示了我的问题。
我注意到一些奇怪的事情......不知道怎么发生的。
安装新的tomcat7之后,我得到了一个由用户root和组root拥有的“tomcat-users.xml”文件。
我发现是因为catalina.out包含了几行类似于“javax.naming.NamingException:/var/lib/tomcat7/conf/tomcat-users.xml(权限被拒绝)”的内容。
将文件所有权更改为用户“root”和组“tomcat7”后,我的登录问题得到了解决。

1
同时,请确认您正在编辑的tomcat-users.xml与您运行的Tomcat实例相对应。如果您有多个安装,但只有一个在运行,请确保您正在正确的位置编辑文件。
当您运行startup.bat(或startup.sh)时,脚本将输出CATALINA_*环境变量。如果路径与您当前运行的工作目录匹配,则很可能您一直在编辑错误的tomcat-users.xml文件。

0

**

<?xml version="1.0" encoding="UTF-8"?>
 <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="tomcat"/>
  <role rolename="admin-gui"/>
  <role rolename="manager-gui"/>
  <role rolename="manager-script"/>
  <role rolename="manager-jmx"/>
  <role rolename="manager-status"/>
  <user username="tomcatuser" password="tomcatpassword" roles="admin-gui,manager-gui,tomcat,manager-script,manager-jmx,manager-status"/>
</tomcat-users>
<!-- -->

** Tomcat 7+ 版本需要将管理角色设置为 manager-script、manager-jmx 和 manager-status
然后重新启动 Tomcat:sudo systemctl restart tomcat8


0

如果您正在使用XAMPP,请按照以下步骤进行操作

  1. 转到XAMPP,并在Tomcat前面单击Config

  2. 然后在弹出窗口中选择tomcat-users.xml

  3. 当它在编辑器中打开时,将以下内容粘贴到tomcat-users标记中,使用您喜欢的密码。如下所示:

<tomcat-users>
<role rolename="manager-gui"/>
<user username="tomcat" password="password" roles="manager-gui"/>
</tomcat-users>

4. 然后从XAMPP重新启动Tomcat服务器。 5. 使用浏览器打开Tomcat,并且您可以按照上面配置文件中给出的方式提供用户名和密码。在我的情况下,用户名= tomcat而密码=password。

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接