it-swarm.com.de

401 Nicht autorisierter Fehler beim Anmelden in der Manager-App von Tomcat

Ich versuche, mich bei der Manager-App in Tomcat 7.0.22 für Mac OS X 10.7 anzumelden. Hier ist der Fehler, den ich erhalte: http://f.cl.ly/items/421q1K3f1i0X1H1M181v/so.tiff

401 Unauthorized

You are not authorized to view this page. If you have not changed any configuration files, please examine the file conf/Tomcat-users.xml in your installation. That file must contain the credentials to let you use this webapp.

For example, to add the manager-gui role to a user named Tomcat with a password of s3cret, add the following to the config file listed above.

<role rolename="manager-gui"/>
<user username="Tomcat" password="s3cret" roles="manager-gui"/>

Ich habe dies in meine Tomcat-users.xml eingefügt, es wird jedoch nicht derselbe Benutzername/Passwort verwendet.

<Tomcat-users>
<role rolename="manager-gui"/>
<user name="Tomcat" password="s3cret" roles="standard,manager-gui"/>
</Tomcat-users>
20
Ava

Entschuldigung, ich muss das Offensichtliche fragen: Haben Sie Tomcat neu gestartet?

Wenn dies nicht funktioniert, fügen Sie "admin-gui" zu Ihren Rollen hinzu:

<user name="Tomcat" password="s3cret" roles="admin-gui,standard,manager-gui"/>
13
Mohamad

OK, ich hatte auch diesen Fehler. Konnte den Fehler nicht finden, konnte den Fehler nicht finden, konnte den Fehler nicht finden. Mein "Tomcat-Benutzer" -Block sah genauso aus.

<Tomcat-users>
<role rolename="manager-gui"/>
<user name="Tomcat" password="s3cret" roles="standard,manager-gui"/>
</Tomcat-users>

Endlich den Fehler gefunden. Ich habe den XMLinXML-Kommentarblock weiter bearbeitet:

<!--
<Tomcat-users>
<role rolename="manager-gui"/>
<user name="Tomcat" password="s3cret" roles="standard,manager-gui"/>
</Tomcat-users>
-->

DOH!

Also: Vergessen Sie nicht, das "<! -" und "->" zu entfernen.

20
Dan H

Ich bin auch auf dieses Problem gestoßen. Der Inhalt meiner Tomcat-users.xml war korrekt, aber die Datei konnte von Tomcat nicht gelesen werden. Ich habe die Dateigruppe in Tomcat7 geändert, Tomcat neu gestartet und voilà!

Hier ist der Inhalt meiner Tomcat-users.xml:

<?xml version='1.0' encoding='utf-8'?>
<Tomcat-users>
  <user username="admin" password="admin" roles="manager-gui, admin-gui" />
</Tomcat-users>
6
David

Um Klarheit zu schaffen, sind hier die Rollen, die Sie ab Tomcat 7.x zu Ihrer conf/Tomcat-users.xml hinzufügen müssen. Wenn Sie die Kommentare behalten möchten, können Sie dies, aber dies ist alles, was Sie brauchen (um sich mit admin/admin anzumelden) in der Datei:

<?xml version="1.0" encoding="UTF-8"?>
<Tomcat-users>  
  <role rolename="manager-gui"/>
  <role rolename="manager-script"/>
  <role rolename="manager-jmx"/>
  <role rolename="manager-status"/>
  <role rolename="admin-gui"/>
  <role rolename="admin-script"/>
  <user username="admin" password="admin" roles="manager-gui, manager-script, manager-jmx, manager-status, admin-gui, admin-script"/>
</Tomcat-users>
4
MattC

Überprüfen Sie die genauen Zeilen in server.xml

  <Realm className="org.Apache.catalina.realm.LockOutRealm">
    <Realm className="org.Apache.catalina.realm.UserDatabaseRealm"
           resourceName="UserDatabase"/>
  </Realm>

Navdeep

2
navdeep

Ich hatte den gleichen Fehler, dann habe ich das Passwort in users.xml geändert. Es gelöst Wenn Sie spezielle Zeichen wie & verwenden. Es funktioniert nicht Entfernen Sie es.

1
gencaysahinn

Wenn Sie bei Tomcat 8 sind, verpassen Sie möglicherweise Folgendes. Ich hatte eine Weile mit diesem Problem zu kämpfen. Nach dem Update von Realms und Tomcat-users.xml müssen Sie auch die apps context.xml bearbeiten.

"Neuere Versionen von Tomcat beschränken den Zugriff auf die Manager- und Host Manager-Apps standardmäßig auf Verbindungen, die vom Server selbst kommen. Da wir auf einem Remote-Computer installieren, möchten Sie diese Einschränkung wahrscheinlich entfernen oder ändern Einschränkungen für diese, öffnen Sie die entsprechenden context.xml-Dateien. "

Für Manager App -

/webapps/manager/META-INF/context.xml

Für die Host-Manager-App -

/opt/Tomcat/webapps/Host-manager/META-INF/context.xml

Kommentieren Sie den folgenden Abschnitt für Ventil wie folgt aus:

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

Sie sollten danach verärgert sein.

1

Es ist unwahrscheinlich, dass jemand den gleichen Fehler gemacht habe wie ich, aber falls Sie ein paar Tomcat-Versionen haben (oder die Installation verfälscht haben und Dateien haben, die Sie bereinigen müssen), stellen Sie sicher, dass Sie sich im richtigen Ordner befinden. 

Ich habe mir die Konfigurationsdatei in C:\Tomcat7\angesehen, aber der tatsächlich ausgeführte Tomcat befand sich in C:\Programme\Apache Software Foundation\Tomcat 7.0 \. 

1
n00b

In Windows hatte ich eine CATALINA_HOME-Umgebungsvariable für eine andere Tomcat-Installation definiert, die besagte, dass ich das Startskript im neuen Installationsordner verwendete. Das Löschen von CATALINA_HOME löste also das Problem für mich. 

0
Richhard

Das Ändern des Ports von 8080 auf 8088 in server.xml hat für mich funktioniert

<Connector port="8088" protocol="HTTP/1.1" 
connectionTimeout="20000"
redirectPort="8443" />
0
ajinkya

Stellen Sie außerdem sicher, dass Sie Tomcat_HOME- und Java_HOME-Umgebungsvariablen korrekt festgelegt haben.

0
TenLeftFingers

Überprüfen Sie Ihren Browser.

Ich habe Tomcat lokal unter Windows ausgeführt und versucht, mich mit Chrome anzumelden. Keiner der oben genannten Vorschläge schien zu funktionieren. Endlich aus einer Laune heraus, versuchte ich Firefox und bekam das Login Prompt! Ich habe Chrome neu gestartet und es erneut versucht, und immer noch nichts. Es scheint, als würden unsere Netzwerkrichtlinien mit Chrome verschraubt - wahrscheinlich blockiert der Popup-Login-Dialog.

0
Greg

Ich musste dies in server.xml kommentieren:

    <Resource name="UserDatabase" auth="Container"
          type="org.Apache.catalina.UserDatabase"
          description="User database that can be updated and saved"
          factory="org.Apache.catalina.users.MemoryUserDatabaseFactory"
          pathname="conf/Tomcat-users.xml" />

Ich dachte, ich bereinige gerade die Config einer Beispieldatenquelle, aber ich lag falsch

0
sp0gg

Ich bekam genau den gleichen Fehler und der funktionierte erst, nachdem ich den Anschlussport von 8080 auf 8081 geändert hatte.

0
autremoi

Das Folgende sollte für eine "Vanilla" -Installation (oder ein Zip/Tar-Archiv) funktionieren - ersetzen Sie Ihre Tomcat-users.xml mit (ähnlich):

<?xml version="1.0" encoding="UTF-8"?>
<Tomcat-users>  
  <role rolename="manager-gui"/>
  <role rolename="manager-script"/>
  <role rolename="manager-jmx"/>
  <role rolename="manager-status"/>
  <role rolename="admin-gui"/>
  <role rolename="admin-script"/>
  <user username="abc" password="xyz" roles="manager-gui, manager-script, manager-jmx, manager-status, admin-gui, admin-script"/>
</Tomcat-users>

Ich bin auf ein ähnliches Problem gestoßen und kann mich immer noch nicht mit Google anmelden Chrome (Version 73.0.3683.103) zum Datum 14.05.2013, 10:30 Uhr CST, trotz Neuinstallation/Konfiguration von Google Chrome mehrmals.

Ich würde vorschlagen, versuchen Sie, einen anderen Browser wie Firefox/IE usw. zu verwenden, wenn Sie auf dieses Problem stoßen, auch wenn Sie viel mit XMLs herumgespielt haben.

0
Ajay Kumar

Um nur einige Informationen zu @ Davids Antwort hinzuzufügen:

Wenn Sie wie ich und SFTP mit dem Host mit einem anderen Benutzer in einer anderen Gruppe als Tomcat (z. B. root) arbeiten und Tomcat_users.xml mit einem generischen Editor wie gedit oder VS Code bearbeiten, wird die Gruppe der Datei in den von Ihnen verwendeten Benutzer geändert (wahrscheinlich weil eine neue Datei erstellt wurde). Wie unten:

drwxr-x--- 2 root Tomcat   4096 Jun 21 11:41 ./
drwxr-xr-x 9 root Tomcat   4096 May 24 14:12 ../
-rw-r----- 1 root Tomcat  13531 Apr 28 03:34 catalina.policy
-rw-r----- 1 root Tomcat   7202 Apr 28 03:34 catalina.properties
-rw-r----- 1 root Tomcat   1400 Apr 28 03:34 context.xml
-rw-r----- 1 root Tomcat   1149 Apr 28 03:34 jaspic-providers.xml
-rw-r----- 1 root Tomcat   2313 Apr 28 03:34 jaspic-providers.xsd
-rw-r----- 1 root Tomcat   3850 Apr 28 03:34 logging.properties
-rw-r----- 1 root Tomcat   7511 Apr 28 03:34 server.xml
-rw-r----- 1 root root     2342 Jun 21 11:41 Tomcat-users.xml
-rw-r----- 1 root Tomcat   2633 Apr 28 03:34 Tomcat-users.xsd
-rw-r----- 1 root Tomcat 170202 Apr 28 03:34 web.xml

Vielleicht war mein anfängliches Setup von Tomcat etwas beiläufig ... Aber mit dem oben genannten Verhalten verliert Tomcat den Zugriff auf die bearbeitete Datei. Das Ergebnis wäre 401 Unberechtigt.

Es gibt eine Reihe von Optionen, um das Problem zu umgehen. Ich bin mir nicht sicher, ob einer von ihnen die beste Praxis ist.

  • Berechtigung nach dem Bearbeiten ändern (ja sicher ...).
  • nano und WinSCP scheinen nicht unter dem Problem zu leiden.
  • SETGID: chmod g + s/conf_folder (nicht getestet).
  • Folge dieser Antwort
  • Vielleicht ein Editor, der die Berechtigung hat?
0
Carl Chang

In meinem Fall hatte ich mehrere <Engine><Host>...</Host></Engine>-Abschnitte in meinem context.xml, und ich musste den <Realm className="org.Apache.catalina.realm.LockOutRealm">...</Realm> in jeden <Engine>...</Engine>-Abschnitt kopieren und einfügen, da die Manager-App auf jedem dieser Hosts bereitgestellt wurde, die Teil einer separaten Engine waren.

Die Antwort von @swapnil chaudhari auf die Einschränkung der IP-Adresse in META-INF/context.xml der App ist ebenfalls hilfreich, jedoch empfand ich es als vorteilhafter, die Context in server.xml meines Servers zu überschreiben.

Am Ende habe ich für jeden meiner Engines so etwas wie folgt:

    <Engine name="CatalinaMyUniqueEngine"
            defaultHost="MyUniqueHost">
      <Realm className="org.Apache.catalina.realm.LockOutRealm">
        <Realm className="org.Apache.catalina.realm.UserDatabaseRealm"
               resourceName="UserDatabase"/>
      </Realm>
      <Host name="MyUniqueHost"
            appBase="/opt/Tomcat/webapps/MyUniqueHost"
            unpackWARs="true" autoDeploy="true">
        <Context path="/manager" privileged="true" antiResourceLocking="false"
                 docBase="manager">
          <!-- Wider allowance than the default.
               Or you can remove to allow all IPs, which probably isn't
               a good idea. -->
          <Valve className="org.Apache.catalina.valves.RemoteAddrValve"
                 allow="127\.0\.0\.1|10\.244\.\d+.\d+" />
      </Host>
    </Engine>

docBase ist relativ zu appBase. In /opt/Tomcat/webapps/MyUniqueHost habe ich einen symbolischen Link zur Manageranwendung, die vom Paketmanager (Debian-basiert) meines Systems installiert wurde, der ihn unter /usr/share/Tomcat8-admin/manager platziert hat. Diese symbolischen Links ermöglichen es mir, die Manager-App in meiner gesamten Hosts zu verwenden, ohne die Manager-Anwendung zu kopieren.

0
acker9