Я пытаюсь настроить аутентификацию и скрипт отправителя http для проекта сканирования Open API.
В какой-то момент я достиг состояния, когда скрипт аутентификации для oauth2 работает правильно (выдает действительный токен, полученный изудаленная конечная точка) и http_sender добавляет заголовок авторизации для запросов.Позже выяснилось, что я неправильно набрал требуемый заголовок, поэтому я изменил его имя, сохранил сценарий и повторно запустил сценарий (с помощью сканирования).Выяснилось, что оба заголовка добавляются к исходящим http-запросам: опечатка и правильная версия.Поведение не изменяется после перезапуска ZAP и перезагрузки сеанса, но неправильно напечатанный заголовок исчезает при создании нового сеанса, я не могу найти, где его можно почистить, и не выглядит правильным воссоздать сеанс, когда требуется одно незначительное изменение вscript.
Вторая проблема, с которой я столкнулся, заключается в том, что скрипт аутентификации просто перестал работать без каких-либо изменений.Я иногда переключаюсь между средами, но код остается тем же.Я даже переместил жестко закодированные значения из контекста в сценарий, и он все еще не работает.Я установил параллельный скрипт в Python для получения токена, и он работает (все параметры одинаковы), но в ZAP я получаю ошибку аутентификации (воссоздание сеанса не помогает).У меня нет конечной точки oauth, поэтому я не могу взглянуть на нее напрямую, но подозреваю, что обе проблемы имеют что-то общее.Похоже, некоторые данные находятся в тени и влияют на работу сценариев.
Первая версия сценария отправителя:
function sendingRequest(msg, initiator, helper) {
var loginToken = org.zaproxy.zap.extension.script.ScriptVars.getGlobalVar("logintoken");
msg.getRequestHeader().setHeader("Autentication", "Bearer " + loginToken);
}
Вторая версия сценария отправителя:
function sendingRequest(msg, initiator, helper) {
var loginToken = org.zaproxy.zap.extension.script.ScriptVars.getGlobalVar("logintoken");
msg.getRequestHeader().setHeader("Authorization", "Bearer " + loginToken);
}```
Authentication function is just tuned version of the zap template to send oauth2 parameters in the body of the POST request and actually worked for some time. It would really help to have some troubleshooting capabilities during scripting.