Fortify API Начать сканирование по умолчанию - Как отправить пакет - PullRequest
0 голосов
/ 01 июня 2019

Я пытаюсь использовать API от https://api.emea.fortify.com/swagger/ui/index#/ называется Начать сканирование по умолчанию.

Я не могу найти какую-либо документацию, чтобы предложить, как настроить сообщение.

Это то, что у меня пока есть, но я получаю сообщение об ошибке и, конечно, я не отправляю файлы для сканирования, поэтому я знаю, что это неправильно.

Я пробовал запрос Get, который работает, поэтому я знаю, что он аутентифицирован и т. Д.

Мне просто нужно знать, правильно ли отформатированы параметры и как мне загружать фактические файлы для сканирования.

POST /api/v3/releases/43579/static-scans/start-scan-with-defaults?releaseId=43579& fragNo=22& offset=22& isRemediationScan=false& notes=hello HTTP/1.1
Host: api.emea.fortify.com
Content-Type: application/json
Authorization: Bearer [TOKEN HERE]
User-Agent: PostmanRuntime/7.13.0
Accept: */*
Cache-Control: no-cache
Postman-Token: 57e40c1d-c99c-40a4-a79b-06ef9a678a07,8ef4ad1e-327f-4eee-b6bb-bddb21b18d50
Host: api.emea.fortify.com
accept-encoding: gzip, deflate
content-length: 
Connection: keep-alive
cache-control: no-cache

Ответ:

{
    "errors": [
        {
            "errorCode": null,
            "message": "Unexpected error processing request"
        }
    ]
}

UPDATE

Я нашел этот репозиторий на Git, написанный на Java, который я безуспешно пытался воссоздать в PowerShell.

https://github.com/fod-dev/fod-uploader-java

My PowerShell:

[System.Net.WebRequest]::DefaultWebProxy = [System.Net.WebRequest]::GetSystemWebProxy()
[System.Net.WebRequest]::DefaultWebProxy.Credentials = [System.Net.CredentialCache]::DefaultNetworkCredentials

$zipDetails = Get-Content C:\Users\patemanc\Desktop\types.zip -Encoding Byte

Write-Host $zipDetails.Length

$releaseId = "43576"

$url = "https://api.emea.fortify.com/api/v3/releases/$releaseId/static-scans/start-scan-with-defaults?"
$url += "releaseId=$releaseId"
$url += "&fragNo=-1"
$url += "&offset=0"
$url += "&isRemediationScan=false"
$url += "&notes=PowrShell Test"


$long_lived_access_token = "ENTER TOKEN HERE"
$headers = @{Authorization = "bearer:$long_lived_access_token"}

$response = Invoke-WebRequest -ContentType "application/octet-stream"  -Uri $url -Method POST -Body $zipDetails -Headers $headers -UseBasicParsing


Write-Host "Here is the end"

Write-Host $response

Ответ об ошибке:

79212
Invoke-WebRequest : The underlying connection was closed: An unexpected error occurred on a send.
At line:22 char:13
+ $response = Invoke-WebRequest -ContentType "application/json"  -Uri $ ...
+             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebException
    + FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand

1 Ответ

0 голосов
/ 03 июня 2019

Почему почтальон?Если вы используете какой-то плагин для его запуска, например, от Jenkins, он работает нормально.Я не знаю, как плагины называют его из API.

...