J'ai installé Tomcat 9 sur un serveur distant et après l'avoir démarré, tout a été correctement réglé, je peux accéder à http: // nom_hôte: numéro_port et voir la page Bonjour Tomcat. Mais lorsque j'essaie d'ouvrir l'application du gestionnaire pour voir mes applications déployées, l'accès à 403 est refusé, mais j'ajoute déjà des rôles dans l'utilisateur Tomcat xml, 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, Host Manager est uniquement accessible à partir d'un navigateur s'exécutant sur le même ordinateur que Tomcat. Si vous souhaitez modifier cette restriction, vous devez modifier le fichier context.xml du gestionnaire d’hôte .
Comment changer le fichier context.xml et avoir accès à l'application Manager?
Chaque application Web déployée a un fichier context.xml
qui réside dans
$CATALINA_BASE/conf/[enginename]/[hostname]
(conf/Catalina/localhost by default)
et a le même nom que l'application Web (manager.xml
dans ce cas). Si aucun fichier n'est présent, les valeurs par défaut sont utilisées.
Vous devez donc 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 tous les ordinateurs:
<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 se connectant. Les autres classes Valve
répondent à d'autres règles (par exemple, RemoteHostValve
pour les noms d'hôte correspondants).
Une fois que les modifications ci-dessus ont été apportées, une boîte de dialogue d'authentification doit s'afficher lorsque vous accédez à l'URL du gestionnaire. Si vous entrez les détails que vous avez fournis dans Tomcat-users.xml
, vous devriez avoir accès au gestionnaire.
Pour Tomcat version 8.5.4 et ultérieure, 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>
Modifiez ce fichier pour commenter la 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, actualisez votre navigateur (il n'est pas nécessaire de redémarrer Tomcat) pour afficher la page du gestionnaire.
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"/>
Pour accéder au gestionnaire Tomcat depuis une machine différente, vous devez suivre les étapes ci-dessous:
1. Mettez à jour le fichier conf/Tomcat-users.xml avec l'utilisateur et certains rôles:
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user username="admin" password="admin" roles="manager-gui,manager-script,manager-jmx,manager-status"/>
Ici l'administrateur administre rôles = "manager-gui, manager-script, manager-jmx, manager-status".
2. Mise à jour du fichier webapps/manager/META-INF/context.xml (adresse IP autorisée):
configuration par défaut:
<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" />
<Manager sessionAttributeValueClassNameFilter="Java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.Apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|Java\.util\.(?:Linked)?HashMap"/>
</Context>
Ici, dans Valve, seule la machine locale IP à démarrer avec 127.\d +.\D +.\D +.
2.a: Autoriser une adresse IP spécifique:
<Valve className="org.Apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|YOUR.IP.ADDRESS.HERE" />
Ici vous venez de remplacer YOUR.IP.ADDRESS.HERE avec votre adresse IP
2.b: Autoriser tous les IP:
<Valve className="org.Apache.catalina.valves.RemoteAddrValve"
allow=".*" />
Ici, en utilisant allow = ". *" vous autorisez toutes les adresses IP.
Merci :)