mirror of https://github.com/MISP/PyMISP
Make sure all integers are string in the dumped json
parent
dcd76ec5c4
commit
5ee23d46c0
|
@ -225,7 +225,7 @@
|
|||
},
|
||||
"Event": {
|
||||
"id": "https://www.github.com/MISP/MISP/format/2.4/schema.json/Event/RelatedEvent/0/Event",
|
||||
"type": "object",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"id": "https://www.github.com/MISP/MISP/format/2.4/schema.json/Event/RelatedEvent/0/Event/0",
|
||||
"type": "object",
|
||||
|
|
|
@ -9,15 +9,15 @@
|
|||
"properties": {
|
||||
"id": {
|
||||
"id": "https://www.github.com/MISP/MISP/format/2.4/schema.json/Event/id",
|
||||
"type": "integer"
|
||||
"type": "string"
|
||||
},
|
||||
"orgc_id": {
|
||||
"id": "https://www.github.com/MISP/MISP/format/2.4/schema.json/Event/orgc_id",
|
||||
"type": "integer"
|
||||
"type": "string"
|
||||
},
|
||||
"org_id": {
|
||||
"id": "https://www.github.com/MISP/MISP/format/2.4/schema.json/Event/org_id",
|
||||
"type": "integer"
|
||||
"type": "string"
|
||||
},
|
||||
"date": {
|
||||
"id": "https://www.github.com/MISP/MISP/format/2.4/schema.json/Event/date",
|
||||
|
@ -25,7 +25,7 @@
|
|||
},
|
||||
"threat_level_id": {
|
||||
"id": "https://www.github.com/MISP/MISP/format/2.4/schema.json/Event/threat_level_id",
|
||||
"type": "integer"
|
||||
"type": "string"
|
||||
},
|
||||
"info": {
|
||||
"id": "https://www.github.com/MISP/MISP/format/2.4/schema.json/Event/info",
|
||||
|
@ -41,19 +41,19 @@
|
|||
},
|
||||
"attribute_count": {
|
||||
"id": "https://www.github.com/MISP/MISP/format/2.4/schema.json/Event/attribute_count",
|
||||
"type": "integer"
|
||||
"type": "string"
|
||||
},
|
||||
"analysis": {
|
||||
"id": "https://www.github.com/MISP/MISP/format/2.4/schema.json/Event/analysis",
|
||||
"type": "integer"
|
||||
"type": "string"
|
||||
},
|
||||
"timestamp": {
|
||||
"id": "https://www.github.com/MISP/MISP/format/2.4/schema.json/Event/timestamp",
|
||||
"type": "integer"
|
||||
"type": "string"
|
||||
},
|
||||
"distribution": {
|
||||
"id": "https://www.github.com/MISP/MISP/format/2.4/schema.json/Event/distribution",
|
||||
"type": "integer"
|
||||
"type": "string"
|
||||
},
|
||||
"proposal_email_lock": {
|
||||
"id": "https://www.github.com/MISP/MISP/format/2.4/schema.json/Event/proposal_email_lock",
|
||||
|
@ -65,11 +65,11 @@
|
|||
},
|
||||
"publish_timestamp": {
|
||||
"id": "https://www.github.com/MISP/MISP/format/2.4/schema.json/Event/publish_timestamp",
|
||||
"type": "integer"
|
||||
"type": "string"
|
||||
},
|
||||
"sharing_group_id": {
|
||||
"id": "https://www.github.com/MISP/MISP/format/2.4/schema.json/Event/sharing_group_id",
|
||||
"type": "integer"
|
||||
"type": "string"
|
||||
},
|
||||
"Org": {
|
||||
"id": "https://www.github.com/MISP/MISP/format/2.4/schema.json/Event/Org",
|
||||
|
@ -136,15 +136,15 @@
|
|||
},
|
||||
"event_id": {
|
||||
"id": "https://www.github.com/MISP/MISP/format/2.4/schema.json/Event/Attribute/17/event_id",
|
||||
"type": "integer"
|
||||
"type": "string"
|
||||
},
|
||||
"distribution": {
|
||||
"id": "https://www.github.com/MISP/MISP/format/2.4/schema.json/Event/Attribute/17/distribution",
|
||||
"type": "integer"
|
||||
"type": "string"
|
||||
},
|
||||
"timestamp": {
|
||||
"id": "https://www.github.com/MISP/MISP/format/2.4/schema.json/Event/Attribute/17/timestamp",
|
||||
"type": "integer"
|
||||
"type": "string"
|
||||
},
|
||||
"comment": {
|
||||
"id": "https://www.github.com/MISP/MISP/format/2.4/schema.json/Event/Attribute/17/comment",
|
||||
|
@ -152,7 +152,7 @@
|
|||
},
|
||||
"sharing_group_id": {
|
||||
"id": "https://www.github.com/MISP/MISP/format/2.4/schema.json/Event/Attribute/17/sharing_group_id",
|
||||
"type": "integer"
|
||||
"type": "string"
|
||||
},
|
||||
"value": {
|
||||
"id": "https://www.github.com/MISP/MISP/format/2.4/schema.json/Event/Attribute/17/value",
|
||||
|
@ -225,7 +225,7 @@
|
|||
},
|
||||
"Event": {
|
||||
"id": "https://www.github.com/MISP/MISP/format/2.4/schema.json/Event/RelatedEvent/0/Event",
|
||||
"type": "object",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"id": "https://www.github.com/MISP/MISP/format/2.4/schema.json/Event/RelatedEvent/0/Event/0",
|
||||
"type": "object",
|
||||
|
@ -240,7 +240,7 @@
|
|||
},
|
||||
"threat_level_id": {
|
||||
"id": "https://www.github.com/MISP/MISP/format/2.4/schema.json/Event/RelatedEvent/0/Event/0/threat_level_id",
|
||||
"type": "integer"
|
||||
"type": "string"
|
||||
},
|
||||
"info": {
|
||||
"id": "https://www.github.com/MISP/MISP/format/2.4/schema.json/Event/RelatedEvent/0/Event/0/info",
|
||||
|
@ -260,7 +260,7 @@
|
|||
},
|
||||
"timestamp": {
|
||||
"id": "https://www.github.com/MISP/MISP/format/2.4/schema.json/Event/RelatedEvent/0/Event/0/timestamp",
|
||||
"type": "integer"
|
||||
"type": "string"
|
||||
},
|
||||
"distribution": {
|
||||
"id": "https://www.github.com/MISP/MISP/format/2.4/schema.json/Event/RelatedEvent/0/Event/0/distribution",
|
||||
|
@ -268,11 +268,11 @@
|
|||
},
|
||||
"org_id": {
|
||||
"id": "https://www.github.com/MISP/MISP/format/2.4/schema.json/Event/RelatedEvent/0/Event/0/org_id",
|
||||
"type": "integer"
|
||||
"type": "string"
|
||||
},
|
||||
"orgc_id": {
|
||||
"id": "https://www.github.com/MISP/MISP/format/2.4/schema.json/Event/RelatedEvent/0/Event/0/orgc_id",
|
||||
"type": "integer"
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
|
@ -114,6 +114,7 @@ class MISPAttribute(object):
|
|||
'comment': self.comment}
|
||||
if self.sharing_group_id:
|
||||
to_return['sharing_group_id'] = self.sharing_group_id
|
||||
to_return = _int_to_str(to_return)
|
||||
return to_return
|
||||
|
||||
def _json_full(self):
|
||||
|
@ -130,6 +131,7 @@ class MISPAttribute(object):
|
|||
to_return['ShadowAttribute'] = self.ShadowAttribute
|
||||
if self.SharingGroup:
|
||||
to_return['SharingGroup'] = self.SharingGroup
|
||||
to_return = _int_to_str(to_return)
|
||||
return to_return
|
||||
|
||||
|
||||
|
@ -149,6 +151,14 @@ class EncodeFull(JSONEncoder):
|
|||
return JSONEncoder.default(self, obj)
|
||||
|
||||
|
||||
def _int_to_str(d):
|
||||
# transform all integer back to string
|
||||
for k, v in d.items():
|
||||
if isinstance(v, int) and not isinstance(v, bool):
|
||||
d[k] = str(v)
|
||||
return d
|
||||
|
||||
|
||||
class MISPEvent(object):
|
||||
|
||||
def __init__(self, describe_types=None):
|
||||
|
@ -300,6 +310,7 @@ class MISPEvent(object):
|
|||
to_return['Event']['sharing_group_id'] = self.sharing_group_id
|
||||
if self.Tag:
|
||||
to_return['Event']['Tag'] = self.Tag
|
||||
to_return['Event'] = _int_to_str(to_return['Event'])
|
||||
to_return['Event']['Attribute'] = [a._json() for a in self.attributes]
|
||||
jsonschema.validate(to_return, self.json_schema)
|
||||
return to_return
|
||||
|
@ -308,7 +319,7 @@ class MISPEvent(object):
|
|||
to_return = self._json()
|
||||
if self.locked is not None:
|
||||
to_return['Event']['locked'] = self.locked
|
||||
if self.attribute_count:
|
||||
if self.attribute_count is not None:
|
||||
to_return['Event']['attribute_count'] = self.attribute_count
|
||||
if self.RelatedEvent:
|
||||
to_return['Event']['RelatedEvent'] = self.RelatedEvent
|
||||
|
@ -326,6 +337,7 @@ class MISPEvent(object):
|
|||
to_return['Event']['publish_timestamp'] = int(time.mktime(self.publish_timestamp.timetuple()))
|
||||
if self.timestamp:
|
||||
to_return['Event']['timestamp'] = int(time.mktime(self.timestamp.timetuple()))
|
||||
to_return['Event'] = _int_to_str(to_return['Event'])
|
||||
to_return['Event']['Attribute'] = [a._json_full() for a in self.attributes]
|
||||
jsonschema.validate(to_return, self.json_schema)
|
||||
return to_return
|
||||
|
|
Loading…
Reference in New Issue