web-dev-qa-db-fra.com

Impossible d'accéder à l'application Tomcat 8 Manager

Je viens de configurer Tomcat 8 sur Ubuntu 14.04 VM et je ne parviens pas à accéder à l'application Manager à http://[hostname]:8080/manager/html à partir de mon navigateur. Je reçois le message d'erreur "Accès refusé 403" dès que je clique dessus. J'exécute Tomcat en tant que service défini dans un fichier de configuration dans /etc/init.d/Tomcat8-dev. Le message d'erreur indique que Tomcat est configuré pour être accessible uniquement à partir de localhost au départ, mais comme il s'agit d'un VM hébergé, je ne parviens pas à exécuter de navigateur.

J'ai configuré un utilisateur dans le fichier Tomcat-users.xml comme l'ont recommandé plusieurs personnes. Cependant, je ne suis pas invité à fournir les informations d'identification de cet utilisateur et je ne trouve aucun type de bouton de connexion sur la page par défaut. Ce fichier ressemble actuellement à ceci:

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

Après avoir lu la page de documentation Tomcat ici , j’ai également essayé d’ajouter des balises <Valve /> dans context.xml qui ressemblent à ceci:

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

Cependant, dès que j'ai défini privileged="true", je reçois une page blanche lorsque je me connecte au serveur avec mon navigateur, quelles que soient les vannes fournies ultérieurement.

Je redémarre mon service avec Sudo service Tomcat8-dev restart chaque fois que j'apporte des modifications.

Autres choses que j'ai essayées en me basant sur des articles que j'ai lus ici et sur d'autres sites:

  • Diverses configurations de rôles pour mon utilisateur Tomcat
  • Ajout de address="0.0.0.0" à server.xml à l'intérieur de la balise <Connector />
  • Utiliser initctl au lieu de configurer un service basé sur les instructions here , qui ne charge pas la page par défaut sur mon serveur pour une raison quelconque
  • Essayer différents navigateurs et désactiver mon bloqueur de popup

Rien que j'ai essayé fonctionne. S'il vous plaît laissez-moi savoir si vous souhaitez plus de détails sur ma situation. Aucune suggestion?

Edit: Le problème était que je modifiais le mauvais fichier context.xml. Le fichier correct est dans Tomcat/webapps/manager/META-INF. J'avais incorrectement apporté des modifications à Tomcat/conf/context.xml.

12
Ecliptica

AFAIK Tomcat bloque l'accès à l'application Manager (manager/html) pour tous les hôtes sauf localhost dans sa configuration par défaut.

Pour pouvoir accéder à l'interface graphique du gestionnaire avec http: // [nom d'hôte]: 8080/manager/html , configurez-le dans les fichiers de configuration server.xml et le fichier context.xml de l'application de gestionnaire:

Étape 1: Dans [rép-install-Tomcat] /conf/server.xml, éditez l’élément Connector et ajoutez votre IP ainsi que useIPVHosts = "true".

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

address = "0.0.0.0" n’est probablement pas ce que vous voulez insérer ici, car il expose l’interface graphique de gestionnaire à toutes les machines du réseau.

Étape 2: Dans [répertoire d'installation de Tomcat] /webapps/manager/META-INF/context.xml, modifiez l'élément Valve et ajoutez votre adresse IP:

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

De Documentation de contexte Tomcat 8

privileged: défini sur true pour autoriser ce contexte à utiliser le conteneur servlets, comme le servlet de gestionnaire.

antiResourceLocking: Si la valeur est true, Tomcat empêchera tout verrouillage de fichier. Cela aura un impact significatif sur le temps de démarrage des applications, mais permet de déployer à chaud une application Web complète et d'annuler le déploiement sur des plates-formes ou configurations où le verrouillage de fichier peut se produire

Notez que je n’ajoute pas un autre élément Valve comme vous l’avez mentionné dans la liste des choses que vous avez essayées, mais que je modifie celui qui existe déjà et que j’ajoute mon IP (192.168.0.9).

Étape 3: Redémarrez Tomcat et vous devriez pouvoir accéder à l'interface graphique du gestionnaire avec localhost/127.0.0.1 ainsi qu'avec votre nom d'hôte/IP.


De plus: concernant votre Tomcat-users.xml, le Tomcat Manager HOW-TO stipule:

Il est recommandé de ne jamais accorder le script manager ou le script manager-jmx rôles aux utilisateurs qui ont le rôle manager-gui.

Donc, vous voudrez peut-être introduire deux utilisateurs dans votre Tomcat-users.xml, à savoir:

  <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

J'ai également récupéré le même problème et ce que j'ai fait en premier ajouté le rôle utilisateur et passowrd dans config/Tomcat-users.xml, puis autorisé mon adresse IP publique dans webapps/manager/META-INF/context.xml. utiliser le gestionnaire de la même machine. il ajoute ton ip

0
Palash

Vous devriez changer:

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

à:

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

En effet, vous n'utilisez pas Tomcat tel qu'il est distribué depuis l'amont, mais celui fourni avec Ubuntu.

0
PetrS

Je pense que cela pourrait aider pour vous tous parce que cela fonctionne pour moi. 

Ici, j'utilise Apache Tomcat 8:

root@akash-LIFEBOOK-A555:/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

Editez Tomcat-user.xml et ajouté les rôles et les utilisateurs

<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