Skip to content

Commit 925b1e4

Browse files
author
khanh.nguyen
committed
Small improvements for request_validator.py
1 parent dbf14a5 commit 925b1e4

File tree

1 file changed

+7
-8
lines changed

1 file changed

+7
-8
lines changed

messagebird/request_validator.py

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ def __init__(self, signature_key: str, skip_url_validation: bool = False):
2323
Note that when true, no query parameters should be trusted.
2424
"""
2525
super().__init__()
26-
self.__signature_key = signature_key
27-
self.__skip_url_validation = skip_url_validation
26+
self._signature_key = signature_key
27+
self._skip_url_validation = skip_url_validation
2828

2929
def __str__(self) -> str:
3030
return super().__str__()
@@ -52,13 +52,13 @@ def validate_signature(self, signature: str, url: str, request_body: Union[bytes
5252
"""
5353
if not signature:
5454
raise ValidationError("Signature is empty")
55-
if not self.__skip_url_validation and not url:
55+
if not self._skip_url_validation and not url:
5656
raise ValidationError("URL is empty")
5757

5858
try:
5959
claims = jwt.decode(
6060
jwt=signature,
61-
key=self.__signature_key,
61+
key=self._signature_key,
6262
algorithms=RequestValidator.ALLOWED_ALGOS,
6363
options={
6464
"require": ["iss", "nbf", "exp"],
@@ -70,18 +70,17 @@ def validate_signature(self, signature: str, url: str, request_body: Union[bytes
7070
except jwt.InvalidTokenError as err:
7171
raise ValidationError(str(err)) from err
7272

73-
if not self.__skip_url_validation:
73+
if not self._skip_url_validation:
7474
expected_url_hash = hashlib.sha256(url.encode("utf-8")).hexdigest()
7575
if not hmac.compare_digest(expected_url_hash, claims["url_hash"]):
7676
raise ValidationError("invalid jwt: claim url_hash is invalid")
7777

7878
payload_hash = claims.get("payload_hash")
7979
if not request_body and payload_hash:
8080
raise ValidationError("invalid jwt: claim payload_hash is set but actual payload is missing")
81-
elif request_body and not payload_hash:
81+
if request_body and not payload_hash:
8282
raise ValidationError("invalid jwt: claim payload_hash is not set but payload is present")
83-
elif request_body and not hmac.compare_digest(hashlib.sha256(request_body).hexdigest(),
84-
payload_hash):
83+
if request_body and not hmac.compare_digest(hashlib.sha256(request_body).hexdigest(), payload_hash):
8584
raise ValidationError("invalid jwt: claim payload_hash is invalid")
8685

8786
return claims

0 commit comments

Comments
 (0)