J'ai protection CSRF dans le cadre de printemps. Ainsi, dans chaque demande, j'envoie un jeton csrf dans l'en-tête d'un appel ajax, qui fonctionne parfaitement.
<meta name="_csrf" content="${_csrf.token}"/>
<meta name="_csrf_header" content="${_csrf.headerName}"/>
var token = $("meta[name='_csrf']").attr("content");
var header = $("meta[name='_csrf_header']").attr("content");
En ajax
beforeSend: function(xhr) {
xhr.setRequestHeader(header, token),
xhr.setRequestHeader("username", "xxxx1"),
xhr.setRequestHeader("password", "password")
}
Je n'ai aucune idée de générer un jeton csrf et l'inclure dans la section d'en-tête de Postman Rest Client ? Pourriez-vous m'aider à envoyer un jeton CSRF de Postman Rest Client?
La façon la plus simple de le faire de manière cohérente afin de ne pas avoir à obtenir le jeton à chaque fois:
REMARQUE: vous devez installer PostMan Interceptor et l'activer pour accéder aux cookies du navigateur.
Créer une méthode de connexion avec un test pour stocker le cookie XSRF dans une variable d’environnement, dans l’onglet test poster ce code
//Replace XSFR-TOKEN with your cookie name
var xsrfCookie = postman.getResponseCookie("XSRF-TOKEN");
postman.setEnvironmentVariable("xsrf-token", xsrfCookie.value);
MODIFIER Pour ceux qui utilisent le postier 5.5.2 ou une version ultérieure, vous devrez également décoder le cookie. Ils ont également fourni d'autres moyens d'obtenir des cookies, comme le souligne @Sacapuces.
pm.environment.set("xsrf-token", decodeURIComponent(pm.cookies.get("XSRF-TOKEN")))
Vous allez maintenant avoir une variable d’environnement avec xsrf-token.
Enregistrez votre méthode de connexion
Créez le nouveau message que vous souhaitez créer et ajoutez dans les en-têtes votre clé d'en-tête XSRF-Token et la variable d'environnement dans les barres de contrôle pour y accéder {{}}
Je peux envoyer REST avec le jeton csrf en procédant comme suit:
Le jeton CSRF généré automatiquement par la sécurité de printemps lorsque vous vous êtes connecté. Il sera affiché dans l'en-tête de la réponse.
Le jeton CSRF peut être utilisé lors d'une demande ultérieure en définissant X-CSRF-TOKEN avec un jeton CSRF dans l'en-tête.
Tout d'abord, vous devez installer PostMan Interceptor et l'activer pour pouvoir accéder aux cookies du navigateur.
Vous devez récupérer le jeton CSRF en effectuant une requête GET: En-tête: "XSRF-TOKEN" et valeur: "Fetch".
Vous devriez voir le jeton dans l'onglet cookie et le copier (Remarque: vous pouvez configurer le nom du cookie. Le cookie a peut-être un autre nom que "XSRF-TOKEN". Attention: vous devez supprimer ce caractère vide. le jeton de la nouvelle ligne)
Faites maintenant votre demande POST et définissez l'en-tête sur: En-tête: "X-XSRF-TOKEN" et Valeur: "Votre jeton copié sans espaces".
Veuillez mettre X-CSRF-Token as key etFETCHcomme valeur dans l'en-tête de la demande GET et vous recevrez le jeton dans l'en-tête de la réponse.
Si vous ne voulez pas configurer les variables d'environnement, etc., voici la solution la plus rapide.