Доступ к приложению Tomcat Manager с другого хоста
Я установил tomcat 9 на удаленном сервере, и после его запуска он был поднят нормально, я могу получить доступ http://host_name:port_num и смотрите страницу приветствия tomcat. Но когда я пытаюсь открыть приложение manager, чтобы увидеть мои развернутые приложения, я получаю отказ в доступе 403, я уже добавляю роли в xml пользователя tomcat следующим образом:
<role rolename="manager"/>
<role rolename="manager-gui"/>
<role rolename="admin"/>
<user username="user" password="password" roles="admin,manager,manager-gui"/>
сообщения об ошибках, которые я видел:
по умолчанию диспетчер узлов доступен только из браузера, работающего на той же машине, что и Кот. Если вы хотите изменить это ограничение, вам нужно будет изменить контекст менеджера Хоста.XML-файл.
Как я должен изменить контекст.xml-файл и получить доступ к приложению manager?
3 ответов:
каждое развернутое веб-приложение имеет
context.xmlфайл, который живет в$CATALINA_BASE/conf/[enginename]/[hostname] (conf/Catalina/localhost by default)и имеет то же имя, что и веб-приложение (
manager.xmlв данном случае). Если файл отсутствует, используются значения по умолчанию.Итак, вам нужно создать файл
conf/Catalina/localhost/manager.xmlи укажите правило, которое вы хотите разрешить удаленный доступ. Например, следующее содержимоеmanager.xmlразрешит доступ со всех машин:<Context privileged="true" antiResourceLocking="false" docBase="${catalina.home}/webapps/manager"> <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" /> </Context>обратите внимание, что атрибут allow
Valveэлемент является постоянным выражение, соответствующее IP-адресу подключающегося узла. ДругиеValveклассы обслуживают другие правила (напримерRemoteHostValveдля сопоставления имен узлов).после того, как изменения выше были сделаны, вы должны быть представлены с диалогом аутентификации при доступе к URL-адресу менеджера. Если вы введете данные, которые вы предоставили в
tomcat-users.xmlвы должны иметь доступ к менеджеру.
для Tomcat v8.5. 4 и выше, файл
<tomcat>/webapps/manager/META-INF/context.xmlбыла скорректирована:<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>измените этот файл, чтобы прокомментировать
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" /> --> </Context>после этого обновите браузер (не нужно перезапускать Tomcat), вы можете увидеть страницу менеджера.
Following two configuration is working for me. 1 .tomcat-users.xml details -------------------------------- <role rolename="manager-gui"/> <role rolename="manager-script"/> <role rolename="manager-jmx"/> <role rolename="manager-status"/> <role rolename="admin-gui"/> <role rolename="admin-script"/> <role rolename="tomcat"/> <user username="tomcat" password="tomcat" roles="tomcat"/> <user username="admin" password="admin" roles="admin-gui"/> <user username="adminscript" password="adminscrip" roles="admin-script"/> <user username="tomcat" password="s3cret" roles="manager-gui"/> <user username="status" password="status" roles="manager-status"/> <user username="both" password="both" roles="manager-gui,manager-status"/> <user username="script" password="script" roles="manager-script"/> <user username="jmx" password="jmx" roles="manager-jmx"/> 2. context.xml of <tomcat>/webapps/manager/META-INF/context.xml and <tomcat>/webapps/host-manager/META-INF/context.xml ------------------------------------------------------------------------ <Context antiResourceLocking="false" privileged="true" > <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow=".*" /> <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter$LruCache(?:$1)?|java\.util\.(?:Linked)?HashMap"/>
Comments