web-dev-qa-db-fra.com

Le nom d'utilisateur que vous avez fourni n'est pas autorisé à utiliser le Tomcat Manager textuel (erreur 403) lors du déploiement sur un Tomcat8 distant à l'aide de Jenkins

J'essaie de déployer un WAR sur le Tomcat distant (machine distante) en utilisant Jenkins deploy to container Plugin. J'ai fait la configuration suivante dans Tomcat-users.xml

<user username="deployer" password="deployer" roles="manager-gui,manager-script,admin" />

J'ai configuré le bon mot de passe et le bon nom d'utilisateur dans le plugin de conteneur de déployeur Jenkins. La configuration fonctionne correctement pour le Tomcat local. Mais pour Tomcat distant, je reçois toujours l'erreur suivante:

Caused by: org.codehaus.cargo.container.Tomcat.internal.TomcatManagerException: The username you provided is not allowed to use the text-based Tomcat Manager (error 403) at org.codehaus.cargo.container.Tomcat.internal.TomcatManager.invoke(TomcatManager.Java:555)
at org.codehaus.cargo.container.Tomcat.internal.TomcatManager.list(TomcatManager.Java:686) at org.codehaus.cargo.container.Tomcat.internal.TomcatManager.getStatus(TomcatManager.Java:699) at org.codehaus.cargo.container.Tomcat.internal.AbstractTomcatManagerDeployer.redeploy(AbstractTomcatManagerDeployer.Java:174)
... 16 more Caused by: Java.io.IOException: Server returned HTTP response code: 403 for URL: http://1.203.190.5:8080/manager/text/list at Sun.net.www.protocol.http.HttpURLConnection.getInputStream0(Unknown Source) at Sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown
Source) at org.codehaus.cargo.container.Tomcat.internal.TomcatManager.invoke(TomcatManager.Java:544) ... 19 more

Veuillez aider.

15
harshlal028

Cela semble être un bogue Jenkins mais j'ai contourné le problème en installant la configuration suivante dans Tomcat:

Modifiez le fichier /webapps/manager/META-INF/context.xml:

Précédent:

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

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

Cela a résolu le problème. J'espère que cela aide quelqu'un :)

22
harshlal028

Je faisais face au même problème lors du déploiement d'artefact sur Tomcat avec jenkins via le plugin de conteneur, Solution: - j'ai ajouté manager-script et manager-gui dans les rôles de l'utilisateur et donne un accès complet au répertoire webapps/*. Cela m'aide à déployer l'artefact avec succès et à le visualiser avec manager-app.

5
Rizwan Javid

Si rien ne fonctionne, créez simplement un autre utilisateur dans le fichier Tomcat-users.xml avec le rôle Magnager-Script attribué et définissez cette information d'utilisateur sur jenkins.

Dans le fichier Tomcat-users.xml

<Tomcat-users>
<user  username="deployuser" password="deployuser" roles="manager-script" />
<user username="admin" password="admin" roles="manager-gui" />
</Tomcat-users>

deploying to Tomcat from jenkins

1
techasutos

Dans Tomcat 9, vous n'avez pas besoin d'ajouter de rôles manager-XXX. Tout ce que vous avez à faire est d'ajouter les utilisateurs et d'attribuer le gestionnaire-gui (pour l'accès GUI) et le gestionnaire-script (pour l'accès comme le déploiement Jenkins). Assurez-vous également de modifier le fichier / webapps/manager/META-INF/context.xml, soit pour commenter Valve, soit pour définir un reg ex approprié pour l'attribut allow

0
jprism