Accédez à L'application Tomcat Manager depuis un autre hôte

j'ai installé tomcat 9 sur un sever distant et après l'avoir démarré, il a été soulevé bien, je peux accéder à http://host_name:port_num et voir tomcat hello page. Mais quand j'essaie d'ouvrir l'Application manager pour voir mes applications déployées, j'obtiens 403 Accès refusé, j'ajoute déjà des rôles dans l'utilisateur XML tomcat comme suit:

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

les messages d'erreur que j'ai vus sont:

par défaut, le Host Manager n'est accessible qu'à partir de un navigateur fonctionnant sur la même machine que Tomcat. Si vous souhaitez modifier cette restriction, vous devrez éditer le contexte du Gestionnaire hôte.fichier xml.

Comment changer le contexte.fichier xml et d'obtenir l'accès à l'application gestionnaire?

52
demandé sur feichangh 2016-04-18 23:38:54

3 réponses

chaque webapp déployée a un fichier context.xml qui vit dans

$CATALINA_BASE/conf/[enginename]/[hostname]

(conf/Catalina/localhost by default)

et a le même nom que le webapp ( manager.xml dans ce cas). Si aucun fichier n'est présent, les valeurs par défaut sont utilisées.

Ainsi, vous devez créer un fichier conf/Catalina/localhost/manager.xml et spécifier la règle que vous souhaitez autoriser l'accès à distance. Par exemple, le contenu suivant de manager.xml permettra l'accès à partir de toutes les machines:

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

Notez que l'attribut allow de l'élément Valve est une expression régulière qui correspond à l'adresse IP de l'hôte de connexion. D'autres classes Valve prévoient d'autres règles (par exemple RemoteHostValve pour l'appariement des noms d'hôtes).

une fois que les modifications ci-dessus ont été effectuées, vous devez être présenté avec une boîte de dialogue d'authentification lors de l'accès à L'URL du gestionnaire. Si vous saisissez les données que vous avez fournies dans tomcat-users.xml , vous devriez avoir accès au gestionnaire.

95
répondu Matt Innes 2017-03-30 15:13:12

pour Tomcat v8.5.4 et au-dessus, le fichier <tomcat>/webapps/manager/META-INF/context.xml a été ajusté:

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

modifier ce fichier pour commenter le Valve :

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

après cela, rafraîchissez votre navigateur (Pas besoin de redémarrer Tomcat), vous pouvez voir la page manager.

108
répondu jqgsninimo 2016-09-01 07:45:16
Following two configuration is working for me.

1 .tomcat-users.xml details
--------------------------------
  <role rolename="manager-gui"/>
  <role rolename="manager-script"/>
  <role rolename="manager-jmx"/>
  <role rolename="manager-status"/>
  <role rolename="admin-gui"/>
  <role rolename="admin-script"/>
  <role rolename="tomcat"/>


  <user  username="tomcat"  password="tomcat" roles="tomcat"/>

  <user  username="admin"  password="admin" roles="admin-gui"/>

  <user  username="adminscript"  password="adminscrip" roles="admin-script"/>

  <user  username="tomcat"  password="s3cret" roles="manager-gui"/>
  <user  username="status"  password="status" roles="manager-status"/>

  <user  username="both"    password="both"   roles="manager-gui,manager-status"/>

  <user  username="script"  password="script" roles="manager-script"/>
  <user  username="jmx"     password="jmx"    roles="manager-jmx"/>

2. context.xml  of <tomcat>/webapps/manager/META-INF/context.xml and 
<tomcat>/webapps/host-manager/META-INF/context.xml
------------------------------------------------------------------------
<Context antiResourceLocking="false" privileged="true" >

  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow=".*" />
  <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter$LruCache(?:$1)?|java\.util\.(?:Linked)?HashMap"/>
0
répondu Rajeev kumar 2018-03-17 08:23:34