Когда генерирую POST запрос получаю 403 ошибку и
{
"detail": "CSRF Failed: Referer checking failed - no Referer."
}
как это можно обойти??
спасибо
Когда генерирую POST запрос получаю 403 ошибку и
{
"detail": "CSRF Failed: Referer checking failed - no Referer."
}
как это можно обойти??
спасибо
Никак. Это ж специальная защита, чтобы хакеры не могли абы что постить от имени пользователя.
Разве что договоритесь с разработчиками, чтобы в TEST-среде они эту защиту отключили.
В каком смысле обойти? Вам в любом случае надо авторизоваться, прежде чем выполнять какие-либо запросы. Наверняка там вначале handshake идет, потом авторизация. Ну а затем полученный токен передается в хэдерах остальных запросов. Попросите у девелоперов нужные end-points.
П.С. Хотя, 403 - весьма странная ошибка. Обычно в таком случае 401 возвращают.
я делаю авторизацию и в принципе могу получить с хеддера токен, но как правильно его подставить в запрос?
А на сайте их не пишут ничего про это? Например, тут: https://www.soapui.org/oauth2/reference/authorization.html
По soap не подскажу, но там наверняка есть опция задания headers
. В REST это делается очень просто (Jersey sample):
service.path("end-point-path")
.request(MediaType.APPLICATION_JSON)
.header(AUTH_KEY, authHeder)
.header(CSRF_TOKEN_KEY, csrfHeader)
.post(someEntity);
Возможно ошибаюсь (не использовал этот механизм на своих проектах), но мне кажется, что вот тут нужно прописать параметр для авторизации:
Спасибо
Если Вам для авторизации система выдаёт токен - забейте этот токен в переменную и каждый раз подставляйте её в хедере, например так: http://joxi.ru/bmokEkvfMWjDYm
В конкретном случае - после логина я жду json, в котором будет токен. Его забиваю в глобальную переменную. Дальше - в каждый тест-сьют подставляешь этот токен в хедер, вот так: http://joxi.ru/YmE8z8NhZWjNYr
(#Project# - область видимости переменной, X-AUTH-TOKEN - название переменной)
вообще судя по ошибке, у вас олдскульная защита от ксрф - проверка реферера, не пробовали подставить реферер с вашим доменом?