2017-10-10 2 views
0

J'essaie d'appeler l'API Jenkins crumIssuer mais j'ai obtenu une erreur ci-dessous. travailler avec la version Jenkins 2.19.1 et ne fonctionne pas avec la version 2.73.1Obtenir 404 lors de l'accès à l'API REST crumbIssuer de Jenkins v2.73.1

<html> 
 
<head> 
 
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/> 
 
<title>Error 404 Not Found</title> 
 
</head> 
 
<body><h2>HTTP ERROR 404</h2> 
 
<p>Problem accessing /crumbIssuer/api/json. Reason: 
 
<pre> Not Found</pre></p><hr><a href="http://eclipse.org/jetty">Powered by Jetty:// 9.4.z-SNAPSHOT</a><hr/> 
 

 
</body> 
 
</html>

Répondre

1

Vous devez avoir l'option Prevent Cross Site Request Forgery exploits activée sous Gérer Jenkins -> Configurer la sécurité mondiale.

+0

il a été activé –

1

La réponse de Rob Hales est correcte.

J'ai rencontré le même problème en essayant d'exécuter le code Ansible suivant sur une instance de jenkins (ver 2.89.3).

- name: "Get csrf token" 
    uri: 
    url: 'http://127.0.0.1:8080/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,":",//crumb)' 
    user: "{{ jenkins_admin_user }}" 
    password: "{{ jenkins_admin_pass }}" 
    force_basic_auth: yes 
    return_content: yes 

Pour moi, le problème est résolu après avoir créé le fichier /var/jenkins_home/init.groovy.d/csrf.groovy avec le contenu suivant et redémarrant jenkins:

import hudson.security.csrf.DefaultCrumbIssuer 
import jenkins.model.Jenkins 

def instance = Jenkins.instance 
instance.setCrumbIssuer(new DefaultCrumbIssuer(true)) 
instance.save() 

Voir https://wiki.jenkins.io/display/JENKINS/CSRF+Protection pour plus d'informations.