web-dev-qa-db-ger.com

Kann nicht auf die Tomcat 8 Manager App zugreifen

Ich habe gerade Tomcat 8 auf Ubuntu 14.04 VM eingerichtet und kann von meinem Browser aus nicht auf die Manager App unter http://[hostname]:8080/manager/html zugreifen. Ich erhalte die Fehlermeldung "403 Access Denied", sobald ich darauf klicke. Ich verwende Tomcat als Dienst, der in einer Konfigurationsdatei in /etc/init.d/Tomcat8-dev definiert ist. Die Fehlermeldung zeigt an, dass Tomcat so eingerichtet ist, dass zunächst nur von localhost aus darauf zugegriffen werden kann. Da es sich jedoch um ein gehostetes VM handelt, kann ich keinen Browser darauf ausführen.

Ich habe einen Benutzer in der Tomcat-users.xml-Datei eingerichtet, wie von mehreren Personen empfohlen. Ich werde jedoch nicht aufgefordert, die Anmeldeinformationen für diesen Benutzer anzugeben, und ich kann auf der Standardseite keine Anmeldeschaltfläche finden. Diese Datei sieht derzeit so aus:

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

Nachdem ich die Tomcat-Dokumentationsseite hier gelesen habe, habe ich auch versucht, <Valve />-Tags in context.xml hinzuzufügen, die in etwa so aussehen:

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

Sobald ich jedoch privileged="true" eingestellt habe, erhalte ich eine leere weiße Seite, wenn ich mit meinem Browser eine Verbindung zum Server herstelle, unabhängig von den Ventilen, die ich anschließend zur Verfügung stelle.

Ich starte meinen Dienst mit Sudo service Tomcat8-dev restart neu, wenn ich Änderungen vornehme.

Andere Dinge, die ich anhand von Beiträgen ausprobiert habe, die ich hier und auf anderen Websites gelesen habe:

  • Verschiedene Rollenkonfigurationen für meinen Tomcat-Benutzer
  • Hinzufügen von address="0.0.0.0" zu server.xml innerhalb des <Connector />-Tags
  • Verwenden Sie initctl, anstatt einen Dienst basierend auf den Anweisungen here einzurichten. Dadurch wird die Standardseite auf meinem Server aus irgendeinem Grund nicht geladen
  • Verschiedene Browser ausprobieren und Popup-Blocker deaktivieren

Nichts, was ich probiert habe. Bitte lassen Sie mich wissen, wenn Sie weitere Einzelheiten zu meiner Situation wünschen. Irgendwelche Vorschläge?

Edit: Das Problem war, dass ich die falsche context.xml-Datei bearbeitet habe. Die richtige Datei befindet sich in Tomcat/webapps/manager/META-INF. Ich habe fälschlicherweise Änderungen an Tomcat/conf/context.xml vorgenommen.

12
Ecliptica

AFAIK Tomcat blockiert den Zugriff auf die Manager-App (manager/html) für alle Hosts außer localhost in seiner Standardkonfiguration.

Um auf die Manager-GUI mit http: // [Hostname]: 8080/manager/html zugreifen zu können, konfigurieren Sie dies in den Konfigurationsdateien server.xml und der context.xml der Manageranwendung:

Schritt 1: Bearbeiten Sie in [Tomcat-Installationsverzeichnis] ​​/conf/server.xml das Element Connector und fügen Sie Ihre IP-Adresse sowie useIPVHosts = "true" hinzu, d. H .:

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

address = "0.0.0.0" ist wahrscheinlich nicht das, was Sie hier einfügen möchten, da die Manager-Benutzeroberfläche allen Computern im Netzwerk angezeigt wird.

Schritt 2: Bearbeiten Sie in [Tomcat-Installationsverzeichnis] ​​/webapps/manager/META-INF/context.xml das Element Valve und fügen Sie Ihre IP-Adresse hinzu:

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

Aus Tomcat 8-Kontextdokumentation

privileged: Setzen Sie den Wert auf "true", um die Verwendung von Container .__ in diesem Kontext zuzulassen. Servlets, wie das Manager-Servlet.

antiResourceLocking: Bei true verhindert Tomcat das Sperren von Dateien. Dies wirkt sich erheblich auf die Startzeit von Anwendungen aus, Ermöglicht jedoch die vollständige Bereitstellung und Bereitstellung von Webapps auf Plattformen oder Konfigurationen, bei denen das Sperren von Dateien auftreten kann

Beachten Sie, dass ich kein weiteres Valve-Element, wie Sie es in der Liste der Dinge angegeben haben, hinzugefügt habe, sondern stattdessen das vorhandene Element bearbeite und einfach meine IP-Adresse (192.168.0.9) hinzufüge.

Schritt 3: Starten Sie Tomcat neu und Sie sollten auf die Manager-GUI mit localhost/127.0.0.1 sowie mit Ihrem Hostnamen/Ihrer IP-Adresse zugreifen können.


Nebenbei: In Bezug auf Ihre Tomcat-users.xml gibt der Tomcat Manager HOW-TO Folgendes an:

Es wird empfohlen, niemals das manager-script oder manager-jmx .__ zu vergeben. Rollen für Benutzer, die die Manager-GUI-Rolle haben.

Sie möchten also zwei Benutzer in Ihre Tomcat-users.xml einführen, d. H .:

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

Sie können ganz einfach tun, ob Sie auf allen Computern auf die Manager-App zugreifen möchten. Gehen Sie zu {Tomcat-Installationsverzeichnis}/webapps/manager/META-INF/und bearbeiten Sie die Datei context.xml put

<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>
1
Thiru Maran

Ich habe auch dasselbe Problem geholt und was ich zuerst hinzugefügt habe, hat die Rolle user und passowrd in config/Tomcat-users.xml hinzugefügt und dann meine öffentliche IP in webapps/manager/META-INF/context.xml Verwende den Manager von derselben Maschine. dort füge deine ip hinzu

0
Palash

Sie sollten sich ändern:

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

zu:

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

Dies liegt daran, dass Sie Tomcat nicht als verteilte Version von Upstream verwenden, sondern mit Ubuntu.

0
PetrS

Ich denke, das könnte für alle von euch helfen, weil es für mich funktioniert. 

Hier verwende ich Apache Tomcat 8:

[email protected]:/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

Bearbeiten Sie Tomcat-user.xml und fügen Sie die Rollen und Benutzer hinzu

<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"/>
0
Akash Rai

Aktualisieren Sie die Datei 'Apache-Tomcat-8.5.5\webapps\manager\META-INF\context.xlm. Kommentieren Sie das Value-Tag aus. und Server neu starten

context.xml Datei

Before : 

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

After change :

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

for auto deployment: go to 'Apache-Tomcat-8.5.5\conf\context.xml' and add antiResourceLocking="true" in 'Context' tag
0
Bheem Singh