web-dev-qa-db-fra.com

Jenkins - j_acegi_security_check

J'essaie de configurer Jenkins, mais je ne parviens pas à obtenir l'authentification. Je lance Jenkins sur Tomcat6 sous CentOS 6.2. J'autorise la connexion et tout se passe bien jusqu'à ce que j'essaie de me connecter. Après avoir donné mes informations d'identification et appuyé sur Login, Tomcat m'a donné une erreur:

"Statut HTTP 404 - La ressource demandée () n'est pas disponible." sur http: // myserver: 8080/jenkins/j_acegi_security_check

En cherchant sur Google, je peux trouver ceci: https://issues.jenkins-ci.org/browse/JENKINS-3761

Deux solutions suggérées que j'ai trouvées:

  • Exécutez jenkins sur Tomcat au lieu de la version autonome - Iam le faisant déjà.
  • Editer un fichier: WEB-INF/security/SecurityFilters.groovy - J'ai essayé de Éditer, mais je n'arrive pas à le modifier.

Y a-t-il quelque chose que je pourrais faire pour que cela fonctionne?

49
varesa

Après avoir passé des siècles à lutter avec celui-ci, assurez-vous qu'un domaine de sécurité est défini lorsque vous choisissez votre méthode d'autorisation dans Jenkins.

En d'autres termes, dans Manage Jenkins → Configure Global Security, sélectionnez une option dans la liste Security Realm.

Par exemple:

 enter image description here

103
Oli

Vous avez peut-être oublié de sélectionner un domaine de sécurité comme spécifié ci-dessous

https://wiki.jenkins-ci.org/display/JENKINS/Standard+Security+Setup

Si vous vous êtes bloqué, vous pouvez rétablir le fichier Jenkins config.xml pour définir la valeur du noeud <useSecurity>true</useSecurity> en false en suivant les instructions fournies ici.

https://wiki.jenkins-ci.org/display/JENKINS/Disable+security

19

Comme mentionné sur la page de bogue :

L'erreur était due à une règle de transmission proxy "/jenkins http://localhost:9080/jenkins/" qui a entraîné la demande entrante (jenkins) "/jenkins//j_acegi_security_check" (double //). Donc, la page de connexion a été rejetée avec 404 (alors que toutes les autres pages ont été servies).

Assurez-vous que votre /jenkins ProxyPass ne se termine pas par une barre oblique finale dans l'URL de destination.

8
jevon

J'ai eu le même HTTP 404 sur le problème d'URI "/ jenkins/j_acegi_security_check". 

Et le même problème que celui souligné par pga ci-dessus: Tomcat était démarré en tant qu'utilisateur root.

C’est parce que j’ai configuré Tomcat pour qu'il redémarre automatiquement en créant un script Tomcat de démarrage dans "/etc/init.d/".

Correction du problème avec:

su - tomcatuser - c /cde/pkgs/../Tomcat/start.sh
0
Taher

J'ai eu le même problème avec 404 sur la page "/ jenkins/j_acegi_security_check".

À l’aide de Jenkins avec Tomcat, après de nombreux essais, j’en suis venu à la solution suivante: j’utilise 18080 comme port par défaut sans redirection SSL . C’est lié à la redirection, mais dans ce cas (comme Tomcat) doit être modifié dans la configuration du serveur Tomcat:

Recherchez dans /conf/server.xml l’entrée suivante:

<Connector port="18080" protocol="HTTP/1.1"
    connectionTimeout="20000"
    redirectPort="8443" /> 

Je viens de commenter le redirectPort m'a aidé:

<Connector port="18080" protocol="HTTP/1.1"
    connectionTimeout="20000" />
0
Oliver Domeischel

Je faisais face au même problème sous Ubuntu ainsi qu’AIX, où j’avais désespérément besoin de l’utiliser pour les paramètres de production. J'ai même essayé les serveurs Web Tomcat et Apache, toujours le même problème.

Enfin, le fait de changer le chargeur de classe comme suit l’a fait fonctionner en mode autonome: 

Java -jar jenkins.war --httpPort=79802 --preferredClassLoader=Java.net.URLClassLoader & 

À propos, il s’agit des paramètres par défaut de la distribution Jenkins standard pour Ubuntu, d’où j’ai eu la moindre idée. 

Le problème est probablement lié à l'emballage, mais pour l'instant cette solution fonctionne. Vérifiez si cela résout des problèmes similaires.

0
Sohel Khan