14

我在 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 上测试

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

4

11 回答 11

24

从tailing [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"/>

这绝对适合你。

于 2014-05-06T13:59:31.087 回答
1

配置对我来说看起来不错。你能试试下面的 tomacat-users.xml 吗

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

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

于 2013-05-21T14:05:50.233 回答
1

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

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

于 2018-03-14T15:30:23.450 回答
1

上述解决方案可能解决了您的问题。锁定的用户解决方案提示了我的问题。

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

安装新的 tomcat7 后,我最终得到了用户 root 和组 root 拥有的“tomcat-users.xml”文件。

我发现是因为 catalina.out 包含几行,例如“javax.naming.NamingException:/var/lib/tomcat7/conf/tomcat-users.xml(权限被拒绝)”

将文件所有权更改为用户“root”和组“tomcat7”后修复了我的登录问题。

于 2015-11-03T02:55:36.967 回答
1

检查语法和开始结束标记。当我开始研究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>
于 2018-04-18T06:04:13.797 回答
1

如果您尝试任何其他答案,然后没有区别,您可能需要清理您的 Tomcat,然后再试一次。这些是我的干净命令(不确定它们的通用性):

rm -R $TOMCAT_HOME/work/Catalina/<host>/*
rm -rf $TOMCAT_HOME/webapps/<app name>
于 2017-03-27T19:26:42.010 回答
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>
<!-- -->

** tomacat 7+ 版本需要设置 manager rolse 为 manager-script,manager-jmx, manager-status
然后重启 tomcatsudo systemctl restart tomcat8

于 2021-10-20T07:40:34.890 回答
0

如果您使用的是 XAMPP,请按照以下步骤操作

  1. 转到 XAMPP 并单击 Tomcat 前面的配置

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

  3. 当它在编辑器上打开时,将以下内容粘贴到 tomcat-users 标记中,并使用您的首选密码。如下

<tomcat-users>
<role rolename="manager-gui"/>
<user username="tomcat" password="password" roles="manager-gui"/>
</tomcat-users>
  1. 然后从 XAMPP 重新启动 tomcat 服务器。

  2. 并使用浏览器打开tomcat,您可以提供上面配置文件中给出的用户名和密码,在我的情况下,用户名= tomcat和密码=密码

于 2020-11-22T05:55:25.610 回答
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>

然后使用重启tomcat服务器sudo systemctl restart tomcat9

使用此 url 记录 manage-app admin http://127.0.0.1:8080/manager/html

于 2021-06-17T22:19:22.020 回答
0

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

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

于 2017-12-16T15:30:01.927 回答
-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

于 2021-06-30T12:06:51.630 回答