我无法登录Tomcat Manager App

时间:2013-05-21 13:54:51

标签: java tomcat login unauthorized

我已经在stackoverflow中阅读了很多主题来解决我的问题,但没有一个是有用的。

当我尝试使用许多不同的配置登录Manager App([http:// localhost:8080 / manager / html] [1])时,我总是获得 401 Unauthorized 尝试使用权限凭据登录。 我重启了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上测试

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

10 个答案:

答案 0 :(得分:17)

从拖尾 [tomcat-root] /logs/catalina.out ,我发现您使用的是锁定用户名&#34; admin&#34;

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

这绝对适合你。

答案 1 :(得分:2)

配置对我来说很好。你可以试试下面的 tomcat-users.xml

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

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

答案 2 :(得分:1)

上述解决方案可能解决了您的问题。锁定的用户解决方案让我知道了我的问题。

我注意到一些奇怪的事情......不知道它是怎么发生的。

安装新的tomcat7后,我最终得到了一个&#34; tomcat-users.xml&#34;用户root和组root拥有的文件。

我发现因为catalina.out包含几行,例如&#34; javax.naming.NamingException:/var/lib/tomcat7/conf/tomcat-users.xml(Permission denied)&#34;

将文件所有权更改为用户&#34; root&#34; &安培; group&#34; tomcat7&#34;修复了我的登录问题。

答案 3 :(得分:1)

如果你尝试任何其他Answers然后没有区别,你可能需要清理你的Tomcat ,然后再试一次。这些是我干净的命令(不确定它们有多普遍):

rm -R $TOMCAT_HOME/work/Catalina/<host>/*
rm -rf $TOMCAT_HOME/webapps/<app name>

答案 4 :(得分:0)

在我的情况下,密码有特殊字符,在添加到/opt/tomcat/conf/tomcat-users.xml文件之前需要进行XML编码。

我用于编码的工具是https://coderstoolbox.net/string/#!encoding=xml&action=encode&charset=us_ascii

答案 5 :(得分:0)

同时验证您正在编辑的tomcat-users.xml是否与您正在运行的Tomcat实例相对应。如果您有多个安装但只有一个正在运行,请确保您在正确的位置编辑该文件。

运行startup.bat(或startup.sh)时,脚本将输出CATALINA_ *环境变量。如果路径与您正在运行的当前工作目录匹配,那么您可能已经编辑了错误的tomcat-users.xml文件。

答案 6 :(得分:0)

检查语法和开始结束标记。当我开始研究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>

答案 7 :(得分:0)

如果您使用的是XAMPP,请执行以下步骤

  1. 转到XAMPP并单击Tomcat前面的Config
  1. 然后在弹出窗口中选择tomcat-users.xml

  2. 当它在编辑器中打开时,将以下内容粘贴到内部 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

答案 8 :(得分:0)

不要改变任何东西。只需将以下配置替换为 /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 admin http://127.0.0.1:8080/manager/html

答案 9 :(得分:-2)

1.转到 C:\Program Files\Apache Tomcat 7\conf\tomcat-users.xml 用记事本打开 2.并在标签内添加以下标签

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

3.在浏览器上输入: http://localhost:9090/manager/html 输入用户名:tomcat 密码:tomcat