Не удается получить доступ к приложению Tomcat 8 Manager

я только что настроил Tomcat 8 на Ubuntu 14.04 VM, и я не могу получить доступ к приложению менеджера в http://[hostname]:8080/manager/html из моего браузера. Я получаю ошибку "403 Access Denied", как только я нажимаю на нее. Я запускаю Tomcat как службу, определенную в файле конфигурации в /etc/init.d/tomcat8-dev. Сообщение об ошибке указывает, что Tomcat изначально настроен на доступ только с localhost, но поскольку это размещенная виртуальная машина, я не могу запустить на ней браузер.

я настроил пользователя в 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="manager-script"/>
    <role rolename="manager-jmx"/>
    <role rolename="manager-gui"/>
    <role rolename="manager-status"/>

    <user username="(redacted)" password="(redacted)" 
        roles="manager-gui,manager-jmx,manager-status,manager-script"/>
</tomcat-users>

после прочтения страницы документации Tomcat здесь, я также пробовал добавлять <Valve /> теги context.xml это выглядит примерно так:

<Context privileged="true" antiResourceLocking="false"
    docBase="${catalina.home}/webapps/manager">

    <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127.0.0.1" />
    <!--Another valve for my local machine's IP-->

</Context>

однако, как только я поставил privileged="true", Я получаю пустую белую страницу при подключении к серверу с мой браузер независимо от клапанов, которые я предоставляю впоследствии.

я перезапускаю службу с sudo service tomcat8-dev restart всякий раз, когда я вношу изменения.

другие вещи, которые я пробовал на основе сообщений, которые я читал здесь и на других сайтах:

  • различные конфигурации ролей для моего пользователя tomcat
  • добавлять address="0.0.0.0" to server.xml внутри <Connector /> tag
  • используя initctl вместо того, чтобы настраивать службу на основе инструкций здесь, который почему-то не загружает страницу по умолчанию на моем сервере
  • попытка различных браузеров и отключение моего блокировщика всплывающих окон

ничего, что я пробовал, не работает. Пожалуйста, дайте мне знать, если вы хотите получить более подробную информацию о моей ситуации. Есть предложения?

Edit: проблема была в том, что я редактировал неправильно . Правильный файл находится в tomcat/webapps/manager/META-INF. Я неправильно вносил изменения в tomcat/conf/context.xml.

3 ответов


AFAIK Tomcat блокирует доступ к приложению Manager (manager / html) для всех хостов, кроме localhost в конфигурации по умолчанию.

чтобы иметь доступ к GUI менеджера с http: / / [имя хоста]: 8080 / manager / html, настройте это на сервере файлов конфигурации.xml и контекст.xml приложения менеджера:

Шаг 1: в [tomcat-install-dir]/conf / server.xml изменить разъем элемент и добавьте свой IP, а также useIPVHosts= " true", т. е.:

<Connector port="9009" protocol="AJP/1.3" redirectPort="9443" 
           address="192.168.0.9" useIPVHosts="true" />

address= "0.0.0.0", вероятно, не то, что вы хотите вставить здесь, поскольку он предоставляет GUI менеджера всем машинам в сети.

Шаг 2: в [tomcat-install-dir] / webapps / manager/META-INF / context.xml, отредактируйте клапан элемент и добавьте свой IP:

<Context antiResourceLocking="false" privileged="true">

    <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="192\.168\.0\.9|127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
</Context>

С контекстная документация tomcat 8

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

antiResourceLocking: если true, Tomcat предотвратит блокировку файлов. Это существенно повлияет на время запуска приложений, но позволяет полное webapp горячее развертывание и undeploy на платформах или конфигурации, в которых может происходить блокировка файлов

обратите внимание, что я не добавляю еще один элемент Valve, как вы упомянули в списке вещей, которые вы пробовали, но вместо этого я редактирую существующий и просто добавляю свой IP (192.168.0.9).

Шаг 3: перезапустите Tomcat, и вы сможете получить доступ к GUI менеджера с localhost / 127.0.0.1, а также с вашим именем хоста / IP.


в сторону: относительно ваших пользователей tomcat.xml,менеджер Tomcat HOW-TO гласит:

рекомендуется никогда не предоставлять manager-script или manager-jmx роли для пользователей с ролью manager-gui.

таким образом, вы можете представить двух пользователей в вашем tomcat-пользователи.xml, т. е.:

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

вы должны изменить:

docBase="${catalina.home}/webapps/manager"

в:

docBase="${catalina.base}/webapps/manager"

это потому, что вы не используете Tomcat как распределенный вверх по течению, но тот, который поставляется с Ubuntu.


Я думаю, что это может помочь для всех вас, потому что его работа для меня.

здесь я использую Apache tomcat 8:

root@akash-LIFEBOOK-A555:/opt/apache-tomcat-8.5.20/bin# ./version.sh 
Using CATALINA_BASE:   /opt/apache-tomcat-8.5.20
Using CATALINA_HOME:   /opt/apache-tomcat-8.5.20
Using CATALINA_TMPDIR: /opt/apache-tomcat-8.5.20/temp
Using JRE_HOME:        /DATA/jre1.8.0_131/
Using CLASSPATH:       /opt/apache-tomcat-8.5.20/bin/bootstrap.jar:/opt/apache-tomcat-8.5.20/bin/tomcat-juli.jar
Server version: Apache Tomcat/8.5.20
Server built:   Aug 2 2017 21:35:49 UTC
Server number:  8.5.20.0
OS Name:        Linux
OS Version:     4.4.0-98-generic
Architecture:   amd64
JVM Version:    1.8.0_131-b11
JVM Vendor:     Oracle Corporation

редактировать tomcat-пользователь.xml и добавил роли и пользователей

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