I am trying to get packet data using ipsGetAlertPacket (API for SIEM version 10.1.4) with following code block.
import SIEMAuth
import requests
alert_id = '144116287822364672|12101929'
query_params = {"id": alert_id, "format": {"format": 0}}
print(requests.post(SIEMAuth.url + 'ipsGetAlertPacket', json=query_params, headers=SIEMAuth.session_headers, verify=False).text)
I have several other API calls working file like caseGetCaseDetail, caseGetCaseList, ipsGetAlertData etc.
but in "ipsGetAlertPacket" having following error
Can not construct instance of com.mcafee.siem.api.data.alert.EsmPacketFormat: no suitable constructor found, can not deserialize from Object value (missing default constructor or creator, or perhaps need to add/enable type information?)
at [Source: java.io.StringReader@1bdc707; line: 1, column: 2]
my SIEMAuth
esmhost = "SERVER_IP"
user = "test"
passwd = "test"
url = 'https://{}/rs/esm/v2/'.format(esmhost)
login_url = '{}{}'.format(url, 'login')
b64_user = base64.b64encode(user.encode('utf-8')).decode()
b64_passwd = base64.b64encode(passwd.encode('utf-8')).decode()
params = {"username": b64_user,
"password": b64_passwd,
"locale": "en_US",
"os": "Win32"}
params_json = json.dumps(params)
v10_login_headers = {'Content-Type': 'application/json'}
login_response = requests.post(login_url,
params_json,
headers=v10_login_headers,
verify=False)
cookie = login_response.headers.get('Set-Cookie')
jwttoken = re.search('(^[A-Za-z0-9-_=]+\.[A-Za-z0-9-_=]+\.?[A-Za-z0-9-_.+/=]*)', cookie).group(1)
xsrf_token = login_response.headers.get('Xsrf-Token')
session_headers = {'Cookie': jwttoken,
'X-Xsrf-Token': xsrf_token,
'Content-Type': 'application/json'}
print(session_headers)