我无法登录 Tomcat Manager 应用程序

问题描述 投票:0回答:11

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

当我尝试使用很多不同的配置登录管理器应用程序([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 上测试

如果我忘记了其他有用的东西,请告诉我。 预先感谢

java tomcat authentication unauthorized
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"/>

这绝对适合你。


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

配置对我来说看起来不错。您可以尝试使用下面的 tomacat-users.xml.

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

更改后请重启服务器。


1
投票

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

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

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

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

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


1
投票

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

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

1
投票

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

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


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 服务器

使用此网址登录管理应用程序管理http://127.0.0.1:8080/manager/html


0
投票

在我的例子中,密码包含特殊字符,在添加到

/opt/tomcat/conf/tomcat-users.xml
文件之前需要对其进行 XML 编码。

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


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>
  1. 然后从XAMPP重新启动tomcat服务器。

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


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
然后重启tomcat

sudo systemctl restart tomcat8


-2
投票

1.转到C:\Program Files\Apache Tomcat

© www.soinside.com 2019 - 2024. All rights reserved.