From b1461adc534f7f0ef95699ae4fb5a825185337b7 Mon Sep 17 00:00:00 2001 From: Sabin Sharma Date: Wed, 25 Jan 2023 14:22:49 +0545 Subject: [PATCH 1/2] Added Exception Handeling On Cognito Validation Request --- src/django_cognito_jwt/validator.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/django_cognito_jwt/validator.py b/src/django_cognito_jwt/validator.py index 80d7546..b0a5a11 100644 --- a/src/django_cognito_jwt/validator.py +++ b/src/django_cognito_jwt/validator.py @@ -27,10 +27,13 @@ def pool_url(self): @cached_property def _json_web_keys(self): - response = requests.get(self.pool_url + "/.well-known/jwks.json") - response.raise_for_status() - json_data = response.json() - return {item["kid"]: json.dumps(item) for item in json_data["keys"]} + try: + response = requests.get(self.pool_url + "/.well-known/jwks.json") + response.raise_for_status() + json_data = response.json() + return {item["kid"]: json.dumps(item) for item in json_data["keys"]} + except (ConnectionError, Exception): + return {} def _get_public_key(self, token): try: From 56936fa75d1b9f577b4a8f3e3ed864648dd4e343 Mon Sep 17 00:00:00 2001 From: Sabin Sharma Date: Wed, 25 Jan 2023 14:42:53 +0545 Subject: [PATCH 2/2] Added Log redirection to django request log --- src/django_cognito_jwt/validator.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/django_cognito_jwt/validator.py b/src/django_cognito_jwt/validator.py index b0a5a11..171e830 100644 --- a/src/django_cognito_jwt/validator.py +++ b/src/django_cognito_jwt/validator.py @@ -6,6 +6,9 @@ from django.core.cache import cache from django.utils.functional import cached_property from jwt.algorithms import RSAAlgorithm +from logging import getLogger + +logger = getLogger("django.request") class TokenError(Exception): @@ -32,7 +35,8 @@ def _json_web_keys(self): response.raise_for_status() json_data = response.json() return {item["kid"]: json.dumps(item) for item in json_data["keys"]} - except (ConnectionError, Exception): + except (ConnectionError, Exception) as e: + logger.exception(e) return {} def _get_public_key(self, token):