18

尝试登录但无法登录。我的 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>

有什么建议么?

4

9 回答 9

27

删除管理员/管理员角色之间的空格。该列表应以逗号分隔,如下所示:

<?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>
于 2013-09-11T17:12:32.973 回答
11

我有同样的问题,但对我来说原因是server.xml文件。

在文件中有一个标签,它指定了 tomcat-users.xml 的路径

  <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="/etc/tomcat7/tomcat-users.xml" />

您必须确保将路径名正确设置为您的tomcat-users.xml文件的位置。

于 2015-07-02T10:02:58.220 回答
5

并检查它是否没有评论:

<!-- ... -->
于 2016-05-12T14:59:28.923 回答
3

您还需要在更改tomcat-users.xml或后重新启动 Tomcat server.xmlcontext.xmlweb.xml才能使更改生效。

就我而言,问题是我在进行更改后没有重新启动 Tomcat。同样在 Tomcat 7 上manager-script,我已将manager-gui角色分配给同一用户。所以 Tomcat 给出了 403 错误来强制执行 CRSF 保护。

错误

<role rolename="manager-script" />
<role rolename="manager-gui" />
<user username="maven-deployer" password="s3cret" roles="manager-script,manager-gui" />

正确

<role rolename="manager-script" />
<role rolename="manager-gui" />
<user username="maven-deployer" password="s3cret" roles="manager-script" />
<user username="gui-manager" password="s3cret" roles="manager-gui" />
于 2016-05-17T07:35:47.343 回答
2

检查文件“/etc/tomcat7/tomcat-users.xml”的权限和所有权。它应该由 root 拥有,组所有权应该是 tomcat7。

-rw-r----- 1 root tomcat7 2101 Jan 22 10:34 tomcat-users.xml

这是在 Ubuntu 14.04.3 LTS、YMMV 上

于 2016-01-22T18:46:38.957 回答
2

从 repo 安装的 Ubuntu Server 14.04.3 tomcat7

对我有用的是从 tomcat-users.xml 文件中删除角色定义。然后重启tomcat。

我的文件现在看起来像这样:

<tomcat-users>
<!--
  NOTE:  By default, no user is included in the "manager-gui" role required
  to operate the "/manager/html" web application.  If you wish to use this app,
  you must define such a user - the username and password are arbitrary.
    -->
<!--
  NOTE:  The sample user and role entries below are wrapped in a comment
  and thus are ignored when reading this file. Do not forget to remove
  <!.. ..> that surrounds them.
-->
  <user username="admin" password="n0tmyr3alp455w0rd" roles="manager-gui,admin-gui"/>
</tomcat-users>

请注意,说明告诉您定义属于 manager-gui 的用户,但它没有告诉您定义角色“manager-gui”

于 2016-01-29T22:22:22.010 回答
2

作为Windows 10下的NetBeans (v8.2) IDE的一部分,我在访问Tomcat的管理器 (v8.0) 时遇到了一些问题。

添加 gui-manager 用户/密码对的实际tomcat-users.xml 文件位于 C:\Users\\AppData\Roaming\NetBeans\8.2\apache-tomcat-8.0.27.0_base\conf\ 路径。打开 tomcat-users.xml 文件并添加一些行:

  <role rolename="manager-gui"/>
  <role rolename="manager-script"/>
  <role rolename="manager-jmx"/>
  <role rolename="manager-status"/>
  <user username="root" password="root" roles="manager-gui,manager-script,manager-jmx,manager-status"/>

之后,您应该重新启动 Tomcat 并再次尝试访问管理器。

于 2017-03-01T10:35:00.027 回答
0

因此,如果没有其他方法适合您,请在此处检查

我用以下行弄乱了我的 server.xml

<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
               resourceName="jdbc/myapp"/>

这里应该永远是resourceName="UserDatabase"

  <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
               resourceName="UserDatabase"/>

我错误地认为它与我的应用程序数据库有关并已对其进行了配置。这是 tomcat 用户数据库,而不是您的应用程序所拥有的数据库。

于 2021-04-20T10:40:53.720 回答
-1

尝试

sudo apt-get install tomcat7-admin
于 2017-02-02T05:23:43.200 回答