AkamaiOPEN-edgegrid-golang
AkamaiOPEN-edgegrid-golang copied to clipboard
DXE-2672 400 Error - SIEM API
Describe the issue Using this library for the SIEM API (https://techdocs.akamai.com/siem-integration/reference/get-configid) returns a 400 error for missing parameters.
To Reproduce Steps to reproduce the behavior:
import (
"github.com/akamai/AkamaiOPEN-edgegrid-golang/v5/pkg/edgegrid"
...
)
config := &edgegrid.Config{
Host: host,
ClientToken: clienttoken,
ClientSecret: clientsecret,
AccessToken: accesstoken,
}
path := "siem/v1/configs/12345?from=1488816784&to=1488816442&limit=1"
req, err := http.NewRequest("GET", fmt.Sprintf("https://%s/%s", host, path), nil)
if err != nil {
fmt.Println(err)
}
config.SignRequest(req)
client := &http.Client{}
resp,err2 := client.Do(req)
if err2 != nil{
fmt.Println(err2)
}
out, _ := io.ReadAll(resp.Body)
var unmarshal map[string]interface{}
json.Unmarshal(out, &unmarshal)
fmt.Printf("%+v",string(out))
Expected behavior
An endpoint with a similar format https://host/prolexic-analytics/v2/time-series?destinations=ip&locations=agr&source=both
works with this library using the above example, so it is unexpected for the SIEM endpoint not to work.
Actual behavior It outputs this error.
{
'type': 'https://problems.cloudsecurity.akamaiapis.net/siem/v1/missing-parameters',
'title': 'Missing mandatory parameter(s) or illegal parameter parameter(s) in the request',
'instance': 'https://{host}/siem/v1/configs/{configid}?from={from}',
'detail': 'Missing mandatory parameter(s) or illegal parameter parameter(s) in the request',
'method': 'GET'
...
}
Judging from the instance
above, it appears that only the first query parameter is being recognized. If the &
character is encoded to %26
in the signature generation then the instance
variable changes to 'instance': 'https://{host}/siem/v1/configs/{configid}?from={from}&to={to}&limit={limit}'
, but gives a 401 error for the signature not matching. If the &
character is encoded to %26
in the request and signature, then it returns a 400 error for missing parameters.
Please add a working example using this library for this endpoint (https://techdocs.akamai.com/siem-integration/reference/get-configid).