diff --git a/lib/backend.py b/lib/backend.py index e55ce59..0d25a00 100644 --- a/lib/backend.py +++ b/lib/backend.py @@ -286,7 +286,7 @@ class Backend: message = { key: value for (key, value) in (dataclasses.asdict(auth_data).items()) - if key != "signature" + if key != "signature" and key != "__request_id" } if auth_data.reqnum < (self.reqnum - MSG_HISTORY_LEN): log.debug( @@ -296,7 +296,7 @@ class Backend: elif message in self.msg_history: log.debug(f"message: {message} already in message history") return False - elif verify_signature(json.dumps(message, indent=4), auth_data.signature): + elif verify_signature(json.dumps(message, indent=4, sort_keys=True), auth_data.signature): self.reqnum = max(auth_data.reqnum, self.reqnum) self.msg_history.append(message) self.msg_history = self.msg_history[-MSG_HISTORY_LEN:] diff --git a/lib/data_types.py b/lib/data_types.py index ceadfed..77883c5 100644 --- a/lib/data_types.py +++ b/lib/data_types.py @@ -65,12 +65,12 @@ class ApiPayload(ABC): class AuthData: """data used to authenticate requester""" - signature: str cost: str endpoint: str reqnum: int - url: str request_idx: int + signature: str + url: str @classmethod def from_json_msg(cls, json_msg: Dict[str, Any]):