Я настроил Jenkins и DefectDojo на двух разных компьютерах с Linux.
Я пытаюсь автоматизировать файлы, отправляемые из Jenkins в DefectDojo через API-интерфейс дефекта dojo v2
Установка Jenkinsзапускает сканирование OWASP Zap и сохраняет файлы XML локально, затем с помощью плагина Jenkins HTTP Request я пытаюсь отправить сообщение json, содержащее путь к файлу и другие необходимые значения, включая заголовки авторизации и т. д.
Я пробовал «файл» как URL, а также как путь к файлу, но продолжаю получать сообщение об ошибке «Отправленные данные не были файлом. Проверьте тип кодировки в форме.»
{
"engagement": "/api/v2/engagements/1/",
"lead": "/api/v2/users/1/",
"verified": true,
"scan_date": "2018-12-27",
"scan_type": "ZAP Scan",
"minimum_severity": "High",
"file": "/var/lib/jenkins/workspace/ZAP_CI_Demo/reports/JENKINS_ZAP_VULNERABILITY_REPORT_28.xml",
"active": true
}
Я ожидаю ответа «201 Создано», но ответ
HttpMethod: POST
URL: http://<defect-dojo-url>:8080/api/v2/import-scan/
Content-type: application/json
Accept: application/json
Authorization: *****
Sending request to url: http://<defect-dojo-url>8080/api/v2/import-scan/
Response Code: HTTP/1.0 400 Bad Request
Response:
{"file":["The submitted data was not a file. Check the encoding type on the form."]}
[Pipeline] End of Pipeline
Я смог заставить API работать нормально, используя PostMan, однако в этом случае я делаю пост в форме, а неиспользуя сообщение json.