web-dev-qa-db-de.com

403 Zugriff in der Tomcat 8 Manager-App abgelehnt, ohne dass Sie zur Eingabe eines Benutzers/Kennworts aufgefordert werden

Ich habe Tomcat 8 gemäß this eingerichtet, und ich habe die folgende Tomcat-users.xml-Datei:

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

Wenn ich versuche, auf die Manager-App zuzugreifen, werde ich mit 403 ohne Aufforderung zur Eingabe von Benutzername und Kennwort abgelehnt.

Was habe ich in der Konfig vermisst?

Edit1: Vollständige XML-Datei hinzugefügt.

35

Die richtige Antwort finden Sie hier


Sieht so aus, als könnte dieses Problem reproduziert werden, wenn Sie das erwähnte Tutorial auf Unix-Computern ausführen. Es wurde auch bemerkt, dass der Autor TC 8.0.33 verwendet
Win (und OSX) haben kein solches Problem, zumindest in meiner Umgebung:

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

Nachdem Tomcat-users.xml durch Hinzufügen einer Rolle geändert wurde, kann auf Tomcat Web Application Manager auf den Benutzer Tomcat/8.5.4 zugegriffen werden.

9
Gerardas

Das kann Arbeit sein.
Suchen Sie die CATALINA_HOME/webapps/manager/META-INF/context.xml-Datei und fügen Sie die Kommentarmarken um das Ventil hinzu.
<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>
Weitere Einzelheiten finden Sie auf dieser Seite.

98
fade

Die Lösung, die für mich funktioniert hat, ist die Bearbeitung von context.xml-Dateien in $CATALINA_HOME/webapps/manager/META-INF und $CATALINA_HOME/webapps/Host-manager/META-INF, wobei meine IP-Adresse 123.123.123.123 ist.

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

Ich habe Tomcat 8.5 auf Ubuntu installiert und $CATALINA_HOME/conf/Tomcat-users.xml bearbeitet:

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

Auf den Tomcat Web Application Manager (localhost:8080/manager/html) und den Tomcat Virtual Host Manager (localhost:8080/Host-manager/html) konnte ich jedoch erst zugreifen, wenn ich context.xml-Dateien bearbeitet habe. 

10
kimbaudi

Nützlicher Link hier: Greifen Sie von verschiedenen Hosts auf die Tomcat Manager-App zu

Von Tomcat Version 8 an ist die URL manager/html nur für localhost zugänglich. 

Um auf/manager/html-URL zuzugreifen, müssen Sie die folgenden Änderungen in context.xml von manager app ..__ vornehmen. Wechseln Sie zu /Apache-Tomcat-8.5.23/webapps/manager/META-INF, und bearbeiten Sie dann context.xml.

<Context antiResourceLocking="false" privileged="true" >
  <Valve className="org.Apache.catalina.valves.RemoteAddrValve"
         allow="^.*$" />
 ......
</Context>
  1. Starten Sie den Server neu.
8
Vish

Ich muss die folgenden Dateien ändern 

$CATALINA_BASE/conf/Catalina/localhost/manager.xml und füge folgende Zeile hinzu

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

Dadurch kann auf Tomcat von jedem Computer aus zugegriffen werden. Wenn Sie Zugriff auf eine bestimmte IP-Adresse gewähren möchten, verwenden Sie den folgenden Wert anstelle von allow="^.*$".

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

Wenn dies nicht der Fall ist, stellen Sie sicher, dass Tomcat unter webapps (chown ...) auf den Manager-Ordner zugreifen kann. Die Nachricht ist genau die gleiche und es dauerte zwei Stunden, bis ich das Problem herausgefunden hatte. :-)

nur für jemanden, der hierher gekommen ist, um mich zu fragen.

2
alizelzele

die Antwort von Fade hat für mich funktioniert. Ich wechselte von 8.0.30 auf 8.5.5 und der Unterschied war, dass das Ventil in <8.0.30> /manager/META-INF/context.xml bereits aus aus der tar-Datei auskommentiert war, aber uncommented in 8.5.5 tar.

Ich habe diese wichtige Nachricht in der Antwort 403 nicht gelesen:

Auf den Manager kann standardmäßig nur von einem Browser aus zugegriffen werden, der unter .__ ausgeführt wird. die gleiche Maschine wie Tomcat. Wenn Sie diese Einschränkung ändern möchten, Sie müssen die Datei context.xml des Managers bearbeiten.

Und auch das nicht gelesen:

Seit r1734267 ist RemoteAddrValve. standardmäßig in Manager konfiguriert und HostManager-Webanwendungen. Diese Funktion ist in 9.0.0.M4 .__ vorhanden. und ab 8.5.0.

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

2
Jim

Ich habe die Standardkonfiguration, die Passwörter wie "" hat, törichterweise unkommentiert. Tomcat kann diese Datei nicht analysieren (aufgrund des "<"), und dann funktioniert die von Ihnen hinzugefügte Konfiguration nicht.

1
chrismarx
  1. Überprüfen Sie, ob ein Benutzer erstellt wurde oder nicht. Wenn dies nicht der Fall ist, erstellen Sie einen Benutzer, indem Sie eine Datei in /Apache-Tomcat-9.0.20/Tomcat-users.xml öffnen und eine Zeile hinzufügen

    <user username="Tomcat" password="Tomcat" roles="admin-gui,manager-gui,manager-script" />

  2. Gehe zu /Apache-Tomcat-9.0.20/webapps/manager/META-INF/ Öffne context.xml Kommentar alles im Kontext Tag Beispiel:

<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>
0
Pratik Gaurav

Ich musste in Version 9 sowohl die Rollen manager-gui als auch manager-script hinzufügen, damit es funktioniert.

Nachdem ich den Zugriff auf MangerApp erhalten hatte, als ich versuchte, eine .war-Datei hochzuladen, erhielt ich die Ausnahme

org.Apache.Tomcat.util.http.fileupload.FileUploadBase$IOFileUploadException

die ich mit der Antwort dieses Post lösen konnte

Um Zugriff auf Host Manager zu erhalten, aktivieren Sie das post

0
Sameer Sinha

kopiere den untenstehenden Inhalt in die Datei 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>

Ich habe getestet, es funktioniert einfach!

 enter image description here

0
foobarfuu

Ich folgte demselben Tutorial, aber nach einigen Monaten bekam ich seltsamerweise die Fehlermeldung "403 Access Denied", als ich versuchte, die Manager-App zu verwenden. In diesem Fall verwendete ich die IP-Adresse: 8080 in der Adressleiste, und die Tomcat Manager-App forderte nicht zur Eingabe von Benutzer/Kennwort auf. Im Falle von localhost: 8080 war der Fehler "401". Das Dialogfeld, in dem Benutzername und Kennwort abgefragt werden, wurde angezeigt, der Benutzer wurde jedoch nicht erkannt.

Ich habe alle bisherigen Vorschläge/Lösungen ohne Glück ausprobiert. Der einzige Weg, den ich gefunden habe, war, das gesamte Lernprogramm erneut zu wiederholen, wobei auch die Dateien überschrieben wurden. Als ich fertig war, fand ich das alte bereitgestellte Projekt wieder im Verzeichnis webapps. Jetzt funktioniert die Apache Tomcat/8.5.16 Manager App wieder. Ich weiß nicht, was passiert ist, ich habe es auch nicht verstanden, weil ich ein Neuling in Tomcat bin

0
Luigi D'Alessio

Ich hatte das gleiche Problem bei der Installation von Tomcat in Docker . Ich habe das Problem gelöst, indem "^. * $" Anstelle von "127.\d +.\D +.\D + | :: 1 | 0: 0: 0: 0" hinzugefügt wurde : 0: 0: 0: 1 | 123.123.123.123 "

Starten Sie den Kater neu.

0
Prasad MCN

In meinem Fall waren dies die in web.xml definierten Sicherheitsbedingungen. Stellen Sie sicher, dass sie die gleichen Rollen haben, die Sie in Ihrer Tomcat-users.xml-Datei verwenden.

Dies ist beispielsweise einer der Standardtags und funktioniert mit der Standard-Tomcat-users.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>

In meinem Fall hatte ein Administrator einen anderen Rollennamen verwendet, so dass ich nicht auf den Manager zugreifen konnte.

0
Mustafa

Die richtige Antwort lautet @JaKu. Tomcat beschränkt den Zugriff auf localhost, um die Sicherheit zu gewährleisten. Das ist so, wie es sein sollte. Die Portweiterleitung zu Tomcat ist das Richtige, vorzugsweise unter sicheren Bedingungen wie SSH.

0
Outfast Source