web-dev-qa-db-fra.com

401 Erreur non autorisée lors de la connexion à Manager-App de Tomcat

J'essaie de me connecter à l'application Manager dans Tomcat 7.0.22 pour Mac OS X 10.7. Voici l'erreur que je reçois: 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"/>

J'ai ajouté ceci dans mon Tomcat-users.xml, cela ne prend toujours pas le même nom d'utilisateur/mot de passe.

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

Désolé, je dois poser la question évidente: avez-vous redémarré Tomcat?

Si cela ne fonctionne pas, essayez d'ajouter "admin-gui" à vos rôles:

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

OK, j'ai eu cette erreur aussi. Impossible de trouver le bogue, impossible de trouver le bogue, impossible de le trouver. Mon bloc "Tomcat-users" ressemblait à ceci.

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

FINALEMENT TROUVÉ LE BUG. J'ai continué à éditer le bloc de commentaires XMLinsideXML:

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

DOH!

Alors: n'oubliez pas de supprimer les "<! -" et "->".

20
Dan H

J'ai aussi rencontré ce problème. Le contenu de mon Tomcat-users.xml était correct, mais le fichier n'était pas lisible par Tomcat. J'ai changé le groupe de fichiers en Tomcat7, redémarré Tomcat et le tour est joué!

Voici le contenu de mon 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

Pour clarifier, voici les rôles que vous devez ajouter à votre fichier conf/Tomcat-users.xml à partir de Tomcat 7.x. Si vous souhaitez conserver les commentaires que vous pouvez, mais que c'est tout ce dont vous avez besoin (pour vous connecter avec admin/admin) dans le fichier:

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

Vérifiez les lignes exactes dans server.xml

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

Navdeep

2
navdeep

J'ai eu la même erreur alors j'ai changé le mot de passe dans users.xml. Cela a résolu. Si vous utilisez des caractères spéciaux comme &. Ça ne marche pas Enlevez-le.

1
gencaysahinn

Si vous êtes à Tomcat 8, il vous manque peut-être les éléments suivants. Je me suis battu avec cela pendant un certain temps… .. Après la mise à jour de Realms et de Tomcat-users.xml, vous devez également modifier le fichier apps context.xml.

"Par défaut, les versions les plus récentes de Tomcat restreignent l'accès aux applications Manager et Host Manager aux connexions provenant du serveur lui-même. Étant donné que nous installons sur un ordinateur distant, vous souhaiterez probablement supprimer ou modifier cette restriction. restrictions sur ceux-ci, ouvrez les fichiers context.xml appropriés. "

Pour l'application Manager -

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

Pour l'application Host-Manager -

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

Commentez la section suivante pour Valve comme suit-

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

Vous devriez être tous ensemble après cela.

1
swapnil chaudhari

Il est peu probable que quelqu'un ait commis la même erreur que moi, mais si vous avez plusieurs versions de Tomcat (ou si vous avez faussé l'installation et avez les fichiers à nettoyer), assurez-vous d'être dans le bon dossier. 

Je cherchais le fichier de configuration dans C:\Tomcat7 \, mais le serveur Tomcat en cours d’exécution se trouvait dans C:\Program Files\Apache Software Foundation\Tomcat 7.0 \ 

1
n00b

Dans Windows, une variable d’environnement CATALINA_HOME avait été définie pour une autre installation de Tomcat. C’était pourquoi, même si j’utilisais le script de démarrage dans le nouveau dossier d’installation. Il suffit donc de supprimer CATALINA_HOME pour résoudre le problème. 

0
Richhard

Changer le port de 8080 à 8088 dans server.xml a fonctionné pour moi.Refer le code ci-dessous

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

Vérifiez également que vous avez défini correctement les variables d’environnement Tomcat_HOME et Java_HOME.

0
TenLeftFingers

Vérifiez votre navigateur.

J'exécutais Tomcat localement sous Windows et j'essayais de me connecter à l'aide de Chrome. Aucune des suggestions ci-dessus ne semblait fonctionner. Enfin, sur un coup de tête, j'ai essayé Firefox et obtenu l'invite de connexion! J'ai redémarré Chrome et essayé à nouveau, et toujours rien. Il semble que notre stratégie de réseau visse Chrome - bloquant probablement la boîte de dialogue de connexion contextuelle.

0
Greg

Je devais décommenter ceci dans server.xml:

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

Je pensais que je venais de nettoyer la configuration d'un exemple de source de données, mais j'avais tort :)

0
sp0gg

Je recevais exactement la même erreur et cela ne fonctionnait qu'après avoir changé le port du connecteur de 8080 à 8081.

0
autremoi

Juste pour ajouter des informations sur la réponse de @ David:

Si vous êtes comme moi et SFTP sur l'hôte avec un utilisateur appartenant à un groupe autre que Tomcat (par exemple, root) et éditez Tomcat_users.xml avec un éditeur générique tel que gedit ou VS Code, le groupe du fichier sera changé en utilisateur (probablement parce qu'un nouveau fichier a été créé). Comme ci-dessous:

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

Peut-être que ma configuration initiale de Tomcat était un peu désinvolte ... Mais avec le comportement ci-dessus, Tomcat perdra l'accès au fichier modifié. Le résultat serait 401 non autorisé.

Il existe plusieurs options pour résoudre le problème. Je ne suis pas sûr si l'un d'entre eux est la meilleure pratique cependant.

  • Modification de l'autorisation après la modification (oui bien sûr ...).
  • nano et WinSCP ne semblent pas souffrir du problème.
  • SETGID: chmod g + s/conf_folder (non testé).
  • Suivez cette réponse
  • Peut-être un éditeur qui est conscient de la permission?
0
Carl Chang

Dans mon cas, j'avais plusieurs sections <Engine><Host>...</Host></Engine> dans mon context.xml et je devais copier et coller le <Realm className="org.Apache.catalina.realm.LockOutRealm">...</Realm> dans chaque section <Engine>...</Engine> car l'application de gestionnaire était déployée dans chacun de ces hôtes qui faisaient partie d'une Engine séparée.

La réponse de @swapnil chaudhari à propos de la restriction d'adresse IP dans le META-INF/context.xml de l'application est également utile, mais j'ai trouvé plus avantageux de remplacer la Context dans le server.xml de mon serveur.

En fin de compte, j'ai quelque chose comme ceci pour chacun de mes Engines:

    <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 est relative à appBase. Dans /opt/Tomcat/webapps/MyUniqueHost, j'ai un lien symbolique vers l'application de gestionnaire installée par le gestionnaire de paquets de mon système (basé sur Debian), qui l'a placé à /usr/share/Tomcat8-admin/manager. Ces liens symboliques me permettent d’utiliser l’application du gestionnaire dans toutes mes Hosts sans copier l’application du gestionnaire.

0
acker9