Ho una protezione CSRF nella struttura di spring. Quindi in ogni richiesta invio un token csrf nell’intestazione da una chiamata ajax, che funziona perfettamente.
var token = $("meta[name='_csrf']").attr("content"); var header = $("meta[name='_csrf_header']").attr("content");
In ajax
beforeSend: function(xhr) { xhr.setRequestHeader(header, token), xhr.setRequestHeader("username", "xxxx1"), xhr.setRequestHeader("password", "password") }
Non ho idea di generare token csrf e includere nella sezione header di Postman Rest Client ? Potresti aiutarmi ad inviare token csrf da Postman Rest Client?
Il modo più semplice per farlo in modo coerente in modo da non dover ottenere il token ogni volta:
NOTA: è necessario installare PostMan Interceptor e triggersrlo per accedere ai cookie del browser
Creare un metodo di accesso con un test per memorizzare il cookie XSRF in una variabile di ambiente, nella scheda di test inserire questo codice
//Replace XSFR-TOKEN with your cookie name var xsrfCookie = postman.getResponseCookie("XSRF-TOKEN"); postman.setEnvironmentVariable("xsrf-token", xsrfCookie.value);
EDIT Per chiunque utilizzi il postino 5.5.2 o successivo dovrai anche decodificare il cookie, e hanno anche fornito modi alternativi per ottenere i cookie come @Sacapuces indica
pm.environment.set("xsrf-token", decodeURIComponent(pm.cookies.get("XSRF-TOKEN")))
Ora avremo una variabile d’ambiente con xsrf-token al suo interno.
Salva il tuo metodo di accesso
Crea il nuovo post che desideri creare e nelle intestazioni aggiungi la tua chiave XSRF-Token-Header e la variabile di ambiente nelle barre degli strumenti per accedervi {{}}
Sono in grado di inviare REST con token csrf seguendo la procedura seguente:
Il token CSRF generato automaticamente dalla sicurezza di spring al momento dell’accesso. Verrà visualizzato nell’intestazione della risposta.
Il token CSRF può essere utilizzato su richiesta successiva impostando X-CSRF-TOKEN con token CSRF sull’intestazione.
Innanzitutto è necessario installare PostMan Interceptor e triggersrlo per accedere ai cookie del browser.
Devi recuperare il token CSRF facendo una richiesta GET: Intestazione: “XSRF-TOKEN” e Valore: “Recupera”
Dovresti vedere il Token nella scheda cookie e puoi copiarlo (Avviso: puoi configurare a spring come deve essere chiamato il cookie.) Forse il tuo cookie ha un nome diverso da “XSRF-TOKEN”. Attenzione: hai rimosso questo carattere vuoto in il token dalla nuova riga)
Ora crea la tua richiesta POST e imposta l’intestazione su: Intestazione: “X-XSRF-TOKEN” e Valore: “Il tuo token copiato senza spazi vuoti”
Per me funziona la variante con l’aggiunta di X-CSRF-TOKEN alle intestazioni.
Se non si desidera configurare le variabili di ambiente ecc., Ecco la soluzione più rapida
Questo non funziona per me.
Sto seguendo i passaggi: Devi recuperare il token CSRF facendo una richiesta GET: Intestazione: “XSRF-TOKEN” e Valore: “Recupera”
Dovresti vedere il Token nella scheda cookie e puoi copiarlo (Avviso: puoi configurare a spring come deve essere chiamato il cookie.) Forse il tuo cookie ha un nome diverso da “XSRF-TOKEN”. Attenzione: hai rimosso questo carattere vuoto in il token dalla nuova riga)
Ora crea la tua richiesta POST e imposta l’intestazione su: Intestazione: “X-XSRF-TOKEN” e Valore: “Il tuo token copiato senza spazi vuoti”
Inserisci il token X-CSRF come chiave e FETCH come valore nell’intestazione della richiesta GET e riceverai il token nell’intestazione della risposta