403 Доступ запрещен в приложении Tomcat 8 Manager без запроса пользователя / пароля

Я настроил tomcat 8 в соответствии с этой, и у меня есть следующие пользователи tomcat.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="manager-gui"/>
  <role rolename="manager-script"/>

  <user username="notadmin" password="not_real_pass" roles="manager-gui"/>
  <user username="cargo" password="not_real_pass" roles="manager-script"/>
<tomcat-users/>

когда я пытаюсь получить доступ к приложению Manager, я получаю отказ с 403 без запроса имени пользователя и пароля.

что я пропустил в конфиге?

Edit1: добавлен полный xml-файл.

14 ответов



правильный ответ можно найти здесь


похоже, что эта проблема может быть воспроизведена при выполнении упомянутого учебника на машинах unix. Также заметил, что автор использует TC 8.0.33
Win (и OSX) не имеют такой проблемы, по крайней мере, на моем env:

Server version:        Apache Tomcat/8.5.4
Server built:          Jul 6 2016 08:43:30 UTC
Server number:         8.5.4.0
OS Name:               Windows 8.1
OS Version:            6.3
Architecture:          amd64
Java Home:             C:\TOOLS\jdk1.8.0_101\jre
JVM Version:           1.8.0_101-b13
JVM Vendor:            Oracle Corporation
CATALINA_BASE:         C:\TOOLS\tomcat\apache-tomcat-8.5.4
CATALINA_HOME:         C:\TOOLS\tomcat\apache-tomcat-8.5.4

после tomcat-users.xml изменяется путем добавления роли и пользователя Tomcat Web Application Manager можно ознакомиться Tomcat/8.5.4.


Это может быть работа.
Найдите CATALINA_HOME/webapps/manager/META-INF/context.xml file и добавьте маркеры комментариев вокруг клапана.
<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>
вы можете найти более подробную информацию на этой странице.


решение, которое сработало для меня, - edit context.xml файлы $CATALINA_HOME/webapps/manager/META-INF и $CATALINA_HOME/webapps/host-manager/META-INF где мой ip 123.123.123.123.

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

я установил Tomcat 8.5 на Ubuntu и отредактировал $CATALINA_HOME/conf/tomcat-users.xml:

<role rolename="admin-gui"/>
<role rolename="manager-gui"/>
<user username="myuser" password="mypass" roles="admin-gui,manager-gui"/>

однако я все еще не мог получить доступ к обоим Tomcat Web Application Manager (localhost:8080/manager/html) и менеджер виртуального хоста Tomcat (localhost:8080/host-manager/html) пока я не отредактировал context.xml файлы.


Полезные ссылки вот: доступ к приложению Tomcat Manager с другого хоста

от Tomcat версии 8 и далее, менеджер / html url не будет доступен никому, кроме localhost.

для доступа к url / manager / html, вам нужно сделать ниже изменения в контексте.xml приложения менеджера. 1. Перейти к /Апач-котяра-8.5.23/веб-приложений/менеджер/мета-инф месте, а затем изменить контексте.в XML

<Context antiResourceLocking="false" privileged="true" >
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="^.*$" />
 ......
</Context>
  1. перезагрузка сервер.

Я должен изменить следующие файлы

$CATALINA_BASE/conf/Catalina/localhost/manager.xml и добавить следующую строку

  <Context privileged="true" antiResourceLocking="false" 
     docBase="${catalina.home}/webapps/manager">
        <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />
  </Context>

Это позволит tomcat получить доступ с любой машины, если вы хотите предоставить доступ к определенному IP-адресу, используйте приведенное ниже значение вместо allow="^.*$"

    <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192\.168\.11\.234" />

Если не выше работает для вас, убедитесь, что tomcat имеет доступ к папке менеджера под webapps (chown ...). Сообщение-это то же самое сообщение, и мне потребовалось 2 часа, чтобы понять проблему. :-)

просто для кого-то еще, кто пришел сюда по той же проблеме, что и я.


ответ fade сработал для меня. Я перешел с 8.0.30 на 8.5.5, и разница заключалась в клапане в /manager/META-INF/context.xml уже был прокомментирован С файл tar, но был uncommented в 8.5.5 tar.

Я не смог прочитать это важное сообщение в ответе 403:

по умолчанию менеджер доступен только из браузера та же машина, что и Tomcat. Если вы хотите изменить это ограничение, вам нужно отредактировать контекст менеджера.XML-файл.

и не читать такое:

начиная с r1734267 A RemoteAddrValve.настраивается по умолчанию в Manager и веб-приложения HostManager. Эта функция присутствует в 9.0.0.М4 и 8.5.0 года.

https://bz.apache.org/bugzilla/show_bug.cgi?id=59672


Я глупо раскомментировал конфигурацию по умолчанию, у которой есть пароли, такие как "". Tomcat не удается разобрать этот файл (из-за "


скопируйте приведенное ниже содержимое в файл tomcat-users.xml

<?xml version='1.0' encoding='utf-8'?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<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">
<!--
  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. It is
  strongly recommended that you do NOT use one of the users in the commented out
  section below since they are intended for use with the examples web
  application.
-->
<!--
  NOTE:  The sample user and role entries below are intended for use with the
  examples web application. They are wrapped in a comment and thus are ignored
  when reading this file. If you wish to configure these users for use with the
  examples web application, do not forget to remove the <!.. ..> that surrounds
  them. You will also need to set the passwords to something appropriate.
-->
<!--
  <role rolename="tomcat"/>
  <role rolename="role1"/>
  <user username="tomcat" password="<must-be-changed>" roles="tomcat"/>
  <user username="both" password="<must-be-changed>" roles="tomcat,role1"/>
  <user username="role1" password="<must-be-changed>" roles="role1"/>
-->
<role rolename="manager-gui"/>
<role rolename="manager-script"/>

<user username="notadmin" password="not_real_pass" roles="manager-gui"/>
<user username="cargo" password="not_real_pass" roles="manager-script"/>


</tomcat-users>

Я проверил, все работает!

enter image description here


Я последовал тому же учебнику, но через несколько месяцев я странно получил ошибку "403 Access Denied", пытаясь использовать приложение Manager. В этом случае я использовал ipaddress: 8080 в адресной строке, а приложение Tomcat Manager не запрашивало пользователя / пароль. В случае localhost: 8080 ошибка была "401", диалоговое окно с запросом имени пользователя и пароля отображалось, но пользователь не был распознан.

Я пробовал все предыдущие предложения / решения без везения. только способ, который я нашел, - снова повторить весь учебник, перезаписывая также файлы. когда я закончил, я снова нашел старый развернутый проект в каталоге webapps. Теперь приложение Apache Tomcat/8.5.16 Manager снова работает. Я не знаю, что произошло, я не понял также, потому что я новичок в Tomcat user


Я должен был добавить оба менеджер-gui и менеджер-скрипт роли для его работы, в версии 9.

после получения доступа к MangerApp, при попытке загрузить .файл войны, я получил исключение

org.apache.tomcat.util.http.fileupload.FileUploadBase$IOFileUploadException

который я смог решить, используя ответ этого в должности

чтобы получить доступ к Host Manager, проверьте этот в должности


У меня была такая же проблема при установке tomcat в docker. Я решил, добавив"^.*$" вместо "127.\д.+\д.+\d+|::1/0:0:0:0:0:0:0:1/123.123.123.123"

перезапустите tomcat.


правильный ответ, как указал @JaKu. Tomcat ограничивает доступ к localhost, чтобы сделать его безопасным. Так и должно быть. Переадресация портов на tomcat-это правильная вещь, желательно под чем-то безопасным, как SSH.


в моем случае это были ограничения безопасности, определенные в web.XML. Убедитесь, что они имеют те же роли, которые вы используете в своем .

например, это один из готовых тегов и будет работать со стандартными пользователями tomcat.XML.

 <security-constraint>
    <web-resource-collection>
      <web-resource-name>HTML Manager interface (for humans)</web-resource-name>
      <url-pattern>/html/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
       <role-name>manager-gui</role-name>
    </auth-constraint>
  </security-constraint>

в моем случае администратор использовал другое имя роли, которое помешало мне получить доступ к менеджеру.