Подтвердить что ты не робот

Как отправить токен spring csrf из клиента Postman rest?

У меня есть защита csrf в spring. Поэтому в каждом запросе я посылаю токен 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 из Postman Rest Client? enter image description here

4b9b3361

Ответ 1

Самый простой способ сделать это последовательно, чтобы вам не приходилось каждый раз получать токен:

ПРИМЕЧАНИЕ. Вам необходимо установить PostMan Interceptor и активировать его, чтобы иметь доступ к файлам cookie браузеров.

  • Создайте новую среду, чтобы сохранить переменные среды.

введите описание изображения здесь

  1. Создайте метод входа в систему с тестом для хранения файла cookie XSRF в переменной среды, на вкладке теста разместите этот код

    //Replace XSFR-TOKEN with your cookie name
    var xsrfCookie = postman.getResponseCookie("XSFR-TOKEN");
    postman.setEnvironmentVariable("xsrf-token", xsrfCookie.value);
    

ИЗМЕНИТЬ  Для тех, кто использует новый почтальон, вам также придется декодировать cookie, заменив последнюю строку следующим:

postman.setEnvironmentVariable("xsrf-token", decodeURIComponent(xsrfCookie.value));

Теперь у вас будет переменная varialbe с xsrf-токеном в ней.

  1. Сохраните свой метод входа

  2. Создайте новое сообщение, которое вы хотите создать, и в заголовках добавьте свой XSRF-токен-заголовок и переменную окружения в столбцах для доступа к ней. {{}}

введите описание изображения здесь

  1. Теперь перед запуском вашего нового запроса убедитесь, что вы запустили свой логин, он сохранит переменную окружения, а затем, когда вы запустите фактический запрос, он автоматически добавит его.

Ответ 2

Я могу отправить REST с помощью токена csrf, выполнив следующие шаги:

  • Тонер CSRF, автоматически созданный с помощью spring безопасности при входе в систему. Он будет показан в заголовке ответа.

  • Маркер CSRF может использоваться при последующем запросе, устанавливая X-CSRF-TOKEN с токеном CSRF в заголовке.

Ответ 3

Для меня работает вариант с добавлением X-CSRF-TOKEN в заголовки. введите описание изображения здесь

Ответ 4

Во-первых, вам нужно установить PostMan Interceptor и активировать его, чтобы иметь доступ к куки файлам браузеров.

  • Вы должны получить токен CSRF, выполнив запрос GET: Заголовок: "XSRF-TOKEN" и значение: "Fetch" ​​

  • Вы должны увидеть токен на вкладке cookie и можете его скопировать (обратите внимание: вы можете настроить spring как имя файла cookie должно быть названо. Возможно, ваш файл cookie имеет другое имя, чем "XSRF-TOKEN". Внимание: У вас есть удаление этого пустого char в токене из новой строки)

  • Теперь сделайте свой запрос POST и настройте заголовок: Заголовок: "X-XSRF-TOKEN" и значение: "Ваш скопированный токен без пробелов"