Я не могу получить доступ к Host Manager после установки Tomcat 8 на моем сервере Ubuntu 16.04. Я могу получить доступ к приложению Manager.
я добавил manager-gui
и admin-gui
роли для моих tomcat-users.xml
файл, расположенный в $CATALINA_HOME/conf/
каталог.
<tomcat-users . . .>
<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<user username="myusername" password="mypassword" roles="manager-gui,admin-gui"/>
</tomcat-users>
Любые идеи?
У меня тоже была такая же проблема. Решил это так:
Найдите и отредактируйте файл host-manager webapp context.xml:
$CATALINA_HOME/webapps/host-manager/META-INF/context.xml
Закомментируйте Valve, ограничивающую ваш доступ только локальным хостом:
<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" />
-->
Сохраните и закройте файл.
Хорошей практикой было бы перезапустить Tomcat, но мне не нужно было, доступ был немедленным.
Tomcat 8.5.29 в OEL 7.4, Java 1.8_162
У меня была точно такая же проблема, как и у вас.
Вот как я это решил:
conf / tomcat-users.xml (остается прежним)
<tomcat-users>
<role rolename="admin-gui"/>
<role rolename="manager-gui"/>
<user username="admin" password="password" roles="admin-gui,manager-gui"/>
</tomcat-users>
В conf / Catalina / localhost мне нужен дополнительный файл для каждого контекста:
manager.xml
<Context privileged="true" antiResourceLocking="false" docBase="${catalina.home}/webapps/manager">
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />
</Context>
host-manager.xml
<Context privileged="true" antiResourceLocking="false" docBase="${catalina.home}/webapps/host-manager">
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />
</Context>
После этого мне было предложено ввести имя пользователя и пароль, и это сработало.
Я прочитал несколько статей, в которых предлагалось отредактировать клапаны в /webapps/manager/META-INF/context.xml и /webapps/host-manager/META-INF/context.xml, но я думаю, что локальный хост выше имеет приоритет.
У меня была та же проблема, но я запускал Tomcat 9 в Windows 10. Оба решения - Marc Hearling и user3559338 - работают, но я добавлю несколько дополнительных идей.
Первая необычная вещь заключалась в том, что решение не сработало, если я включил аргумент docBase. Если я удалил этот аргумент, я смог бы получить работу Manager App и Server Status. Однако host-manager не работал. В конце концов я обнаружил, что каталог host-manager отсутствует в каталоге webapps. Я загрузил zip-файл tomcat и смог восстановить отсутствующий каталог. Я не знаю точно, почему его не было. Первоначально я установил Tomcat с помощью установщика Windows, а не с помощью zip-файла tomcat. Возможно, этот установщик не устанавливает каталог host-manager. Возможно, я случайно удалил эту папку, но я в этом сомневаюсь. После того, как у меня заработали приложение Manager, состояние сервера и менеджер хоста, я вернул аргумент docBase в два файла контекста xml, и на этот раз они сработали. Затем я поигрался с docBase и заметил, что, например, вы все еще можете получить доступ к диспетчеру хоста, даже если вы введете поддельный адрес docBase. Это заставляет меня задаться вопросом, какова точная ситуация, когда нужно включить параметр docBase. Единственный способ заставить параметр docBase выйти из строя - это удалить одну из кавычек. Это имеет смысл, поскольку это делает xml недействительным. К сожалению, Tomcat не регистрирует ошибку такого рода.