Как отправить токен spring csrf от клиента Postman rest?
Я защита csrf в рамках весны. Поэтому в каждом запросе я отправляю токен csrf в заголовке из ajax-вызова, который отлично работает.
<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");
в ajax
beforeSend: function(xhr) {
xhr.setRequestHeader(header, token),
xhr.setRequestHeader("username", "xxxx1"),
xhr.setRequestHeader("password", "password")
}
Я понятия не имею, чтобы создайте токен csrf и включите в раздел заголовка Postman rest Client ? Не могли бы вы помочь мне отправить токен csrf от почтальона Rest Client?
6 ответов
самый простой способ сделать это последовательно, чтобы вам не нужно было получать токен каждый раз:
Примечание: вам нужно установить PostMan Interceptor и активировать его, чтобы иметь доступ к cookies браузеров
- создайте новую среду, чтобы переменные среды могли храниться
-
создайте метод входа с тестом для хранения файла cookie XSRF в переменной среды на вкладке тест post этот код
//Replace XSFR-TOKEN with your cookie name var xsrfCookie = postman.getResponseCookie("XSRF-TOKEN"); postman.setEnvironmentVariable("xsrf-token", xsrfCookie.value);
редактировать Для тех, кто использует 5.5.2 postman или более поздней версии, вам также придется декодировать cookie, и они также предоставили альтернативные способы получения cookie, как указывает @Sacapuces
pm.environment.set("xsrf-token", decodeURIComponent(pm.cookies.get("XSRF-TOKEN")))
теперь у вас будет переменная среды с XSRF-токеном в ней.
сохранить метод входа
создать новый пост, который вы хотите создать и в заголовках добавить ваш ключ XSRF-Token-Header и переменная среды в дескрипторах для доступа к нему{{}}
- теперь перед запуском нового запроса убедитесь, что вы запустите свой логин, он будет хранить переменную среды, а затем, когда вы запустите фактический запрос, он автоматически добавит его.
Я могу отправить REST с токеном csrf, выполнив следующие шаги:
токен CSRF, автоматически генерируемый spring security при входе в систему. Он будет показан в заголовке ответа.
токен CSRF можно использовать по последующему запросу, установив X-CSRF-токен с токеном CSRF в заголовке.
во-первых, вам нужно установить PostMan Interceptor и активировать его, чтобы иметь доступ к cookies браузеров.
вы должны получить токен CSRF, сделав запрос GET: Заголовок: "XSRF-TOKEN" и значение:"Fetch"
вы должны увидеть маркер на вкладке cookie и можете скопировать его (обратите внимание: вы можете настроить spring, как файл cookie должен быть назван. Возможно, ваш cookie имеет другое имя, чем "XSRF-TOKEN". Внимание: у вас есть удалить этот пробел char в токене из новой строки)
теперь сделать свой POST-запрос и установить заголовок: заголовок: "х-с XSRF-знак" и "значение": "скопированный знак без пробелов"
пожалуйста, поставьте X-CSRF-Token как ключ и FETCH Как значение в заголовке запроса GET, и вы получите токен в заголовке ответа