Подтвердить что ты не робот

401 Несанкционированная ошибка при входе в диспетчер-приложение Tomcat

Я пытаюсь войти в приложение Manager в Tomcat 7.0.22 для Mac OS X 10.7. Вот ошибка, которую я получаю: http://f.cl.ly/items/421q1K3f1i0X1H1M181v/so.tiff

401 Unauthorized

You are not authorized to view this page. If you have not changed any configuration files, please examine the file conf/tomcat-users.xml in your installation. That file must contain the credentials to let you use this webapp.

For example, to add the manager-gui role to a user named tomcat with a password of s3cret, add the following to the config file listed above.

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

Я добавил это в мой tomcat-users.xml, но все еще не использовал то же имя пользователя и пароль.

<tomcat-users>
<role rolename="manager-gui"/>
<user name="tomcat" password="s3cret" roles="standard,manager-gui"/>
</tomcat-users>
4b9b3361

Ответ 1

Извините, я должен спросить очевидное: вы перезапустили Tomcat?

Если это не сработает, попробуйте добавить "admin-gui" к своим ролям:

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

Ответ 2

Хорошо, у меня тоже была эта ошибка. Не удалось найти ошибку, не удалось найти ошибку, не удалось найти ошибку. Мой блок "tomcat-users" выглядел так же.

<tomcat-users>
<role rolename="manager-gui"/>
<user name="tomcat" password="s3cret" roles="standard,manager-gui"/>
</tomcat-users>

НАКОНЕЦ НАЙДЕНО. Я продолжал редактировать XML внутри блок комментариев XML:

<!--
<tomcat-users>
<role rolename="manager-gui"/>
<user name="tomcat" password="s3cret" roles="standard,manager-gui"/>
</tomcat-users>
-->

DOH!

Итак: не забудьте удалить "<!" и "- > ".

Ответ 3

Я также столкнулся с этой проблемой. Содержимое моего tomcat-users.xml было правильным, но Tomcat не читал этот файл. Я изменил группу файлов на tomcat7, перезапустил Tomcat и voilà!

Здесь содержимое моего tomcat-users.xml:

<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
  <user username="admin" password="admin" roles="manager-gui, admin-gui" />
</tomcat-users>

Ответ 4

Чтобы добавить некоторую ясность, вот роли, которые вам нужно добавить в ваш conf/tomcat-users.xml с Tomcat 7.x. Если вы хотите сохранить комментарии, вы можете, но это все, что вам нужно (для входа в систему с администратором /admin ) в файле:

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

Ответ 5

Проверьте точные строки в server.xml

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

Navdeep

Ответ 6

Его маловероятно, что кто-то совершил ту же ошибку, что и я, но если у вас есть несколько версий tomcat (или увязли с установкой и у вас есть файлы, необходимые для очистки), убедитесь, что вы находитесь в правильной папке.

Я смотрел конфигурационный файл в C:\tomcat7 \, но фактический Tomcat, который был запущен, был в C:\Program Files\Apache Software Foundation\Tomcat 7.0\

Ответ 7

Если вы находитесь на Tomcat 8, возможно, вам не хватает следующего. После обновления Realms и tomcat-users.xml вам также необходимо отредактировать context.xml приложений.

По умолчанию более новые версии Tomcat ограничивают доступ к приложениям Manager и Host Manager для подключений, исходящих с самого сервера. Поскольку мы устанавливаем на удаленном компьютере, вы, вероятно, захотите снять или изменить это ограничение. Чтобы изменить ограничения IP-адресов, откройте соответствующие файлы context.xml.

Для приложения Manager:

/webapps/manager/META-INF/context.xml

Для приложения Host-Manager:

/opt/tomcat/webapps/host-manager/META-INF/context.xml

Закомментируйте следующий раздел для клапана как follows-

<Context antiResourceLocking="false" privileged="true" >
    <!--<Valve className="org.apache.catalina.valves.RemoteAddrValve"
            allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />-->
</Context>

Вы должны быть готовы после этого.

Ответ 8

У меня была та же ошибка, тогда я сменил пароль в users.xml. Это решено. Если вы используете специальные символы, такие как & или @. Не работает Убери это.

Ответ 9

Проверьте ваш браузер.

Я запускал tomcat локально в Windows и пытался войти в систему, используя Chrome. Ни одно из предложенных выше предложений не сработало. Наконец, по какой-то причине, я попробовал Firefox и получил приглашение для входа! Я перезапустил Chrome и попробовал снова, но ничего не вышло. Похоже, наши винты сетевой политики с Chrome - возможно, блокирует всплывающее диалоговое окно входа в систему.

Ответ 10

Я получал точно такую ​​же ошибку, и он начал работать только после того, как я изменил порт разъема с 8080 на 8081.

Ответ 11

Также убедитесь, что вы правильно установили параметры TOMCAT_HOME, а также переменные среды JAVA_HOME.

Ответ 12

Мне пришлось раскомментировать это в файле server.xml:

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

Я думал, что просто очищаю конфигурацию примера источника данных, но я ошибся:)

Ответ 13

В Windows у меня была переменная среды CATALINA_HOME, определенная для другой установки tomcat, так что я указывал, даже если я использовал startup script в новой установочной папке. Поэтому просто удаление CATALINA_HOME решило проблему для меня.

Ответ 14

Изменение порта с 8080 по 8088 в server.xml работало для меня. Проверьте приведенный ниже код

<Connector port="8088" protocol="HTTP/1.1" 
connectionTimeout="20000"
redirectPort="8443" />

Ответ 15

В моем случае у меня было несколько разделов <Engine><Host>...</Host></Engine> в моем context.xml, и мне пришлось копировать и вставлять <Realm className="org.apache.catalina.realm.LockOutRealm">...</Realm> в каждый раздел <Engine>...</Engine>, потому что у меня было приложение менеджера, развернутое на каждом из этих хостов, которое были частью отдельного Engine.

Ответ от @swapnil chaudhari о ограничении IP-адреса в приложении META-INF/context.xml также полезен, однако я счел более полезным переопределить Context на моем сервере server.xml.

В конце концов, у меня есть что-то вроде этого для каждого из моих Engines:

    <Engine name="CatalinaMyUniqueEngine"
            defaultHost="MyUniqueHost">
      <Realm className="org.apache.catalina.realm.LockOutRealm">
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
               resourceName="UserDatabase"/>
      </Realm>
      <Host name="MyUniqueHost"
            appBase="/opt/tomcat/webapps/MyUniqueHost"
            unpackWARs="true" autoDeploy="true">
        <Context path="/manager" privileged="true" antiResourceLocking="false"
                 docBase="manager">
          <!-- Wider allowance than the default.
               Or you can remove to allow all IPs, which probably isn't
               a good idea. -->
          <Valve className="org.apache.catalina.valves.RemoteAddrValve"
                 allow="127\.0\.0\.1|10\.244\.\d+.\d+" />
      </Host>
    </Engine>

docBase относится к appBase. В /opt/tomcat/webapps/MyUniqueHost у меня есть символическая ссылка на приложение-менеджер, установленное моим диспетчером системных пакетов (Debian-based), который разместил его на /usr/share/tomcat8-admin/manager. Эти символические ссылки позволяют мне использовать приложение-менеджер во всех моих Hosts без копирования приложения-менеджера.

Ответ 16

Просто, чтобы добавить информацию об ответе @David:

Если вы похожи на меня и SFTP на хост с любым пользователем из группы, отличной от tomcat (например, root), и отредактируйте tomcat_users.xml с помощью какого-либо универсального редактора, такого как gedit или VS Code, группа файла будет изменена на пользователя Вы использовали (возможно, потому что был создан новый файл). Как ниже:

drwxr-x--- 2 root tomcat   4096 Jun 21 11:41 ./
drwxr-xr-x 9 root tomcat   4096 May 24 14:12 ../
-rw-r----- 1 root tomcat  13531 Apr 28 03:34 catalina.policy
-rw-r----- 1 root tomcat   7202 Apr 28 03:34 catalina.properties
-rw-r----- 1 root tomcat   1400 Apr 28 03:34 context.xml
-rw-r----- 1 root tomcat   1149 Apr 28 03:34 jaspic-providers.xml
-rw-r----- 1 root tomcat   2313 Apr 28 03:34 jaspic-providers.xsd
-rw-r----- 1 root tomcat   3850 Apr 28 03:34 logging.properties
-rw-r----- 1 root tomcat   7511 Apr 28 03:34 server.xml
-rw-r----- 1 root root     2342 Jun 21 11:41 tomcat-users.xml
-rw-r----- 1 root tomcat   2633 Apr 28 03:34 tomcat-users.xsd
-rw-r----- 1 root tomcat 170202 Apr 28 03:34 web.xml

Возможно, моя первоначальная настройка tomcat была немного случайной... Но при вышеописанном поведении tomcat потеряет доступ к отредактированному файлу. Результатом будет 401 Несанкционированный.

Есть несколько вариантов решения проблемы. Я не уверен, что любой из них - лучшая практика.

  • Изменение разрешения после редактирования (да, конечно...).
  • Нано и WinSCP, похоже, не страдают от этой проблемы.
  • SETGID: chmod g + s/conf_folder (не проверено).
  • Следуй за этим ответом
  • Может быть, редактор, который с разрешения?

Ответ 17

Нижеследующее должно работать для "ванильной" установки (или архива zip/tar) - замените ваш 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="abc" password="xyz" roles="manager-gui, manager-script, manager-jmx, manager-status, admin-gui, admin-script"/>
</tomcat-users>

Я столкнулся с подобной проблемой и все еще не смог войти в систему с помощью Google Chrome (версия 73.0.3683.103), как на дату 05/05/2019 10:30 CST, несмотря на многократную переустановку/настройку Google Chrome.

Я бы посоветовал попробовать использовать другой браузер, такой как Firefox/IE и т.д., Если вы столкнулись с этой проблемой, даже после того, как много поиграли с xmls.

Ответ 18

Я попытался добавить имя пользователя как tomcat в tomcat-users.xml, который уже был роли, и он не работал. Затем я дал имя пользователя в качестве администратора, и он отлично работал..:)

Ответ 19

Завершение работы tomcat

вставьте ниже комментариев полный контент в tomcat-users.xml и сохраните

start tomcat

Теперь Build должен работать, я сделал для ОС Windows с Jenkins и git с помощью tomcat7

<?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 roles="manager-gui, manager-script, manager-jmx, manager-status, admin-gui, admin-script" password="admin" username="admin"/> </tomcat-users>

Ответ 20

Я использовал специальный сложный пароль с большим количеством нечетных символов. Просто верните это обратно к обычному паролю и отлично работайте.