aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrederick Muriuki Muriithi2024-11-05 10:24:19 -0600
committerFrederick Muriuki Muriithi2024-11-05 11:05:27 -0600
commit5a6dc1fb81bf223750f42f4697f3cd7d86b39e71 (patch)
tree55c50483e7bc9e5fb1bbd5f3a99b19d13e5c8db1
parent95e65819fd4155f539734a5de2eb108d232703a6 (diff)
downloadgn-auth-5a6dc1fb81bf223750f42f4697f3cd7d86b39e71.tar.gz
Debug: Add debug logging to trace JWK fetching.
-rw-r--r--gn_auth/auth/authentication/oauth2/models/oauth2client.py25
1 files changed, 18 insertions, 7 deletions
diff --git a/gn_auth/auth/authentication/oauth2/models/oauth2client.py b/gn_auth/auth/authentication/oauth2/models/oauth2client.py
index df5d564..615d0ee 100644
--- a/gn_auth/auth/authentication/oauth2/models/oauth2client.py
+++ b/gn_auth/auth/authentication/oauth2/models/oauth2client.py
@@ -13,6 +13,7 @@ from authlib.jose import KeySet, JsonWebKey
from authlib.oauth2.rfc6749 import ClientMixin
from pymonad.maybe import Just, Maybe, Nothing
+from gn_auth.debug import __pk__, getLogger
from gn_auth.auth.db import sqlite3 as db
from gn_auth.auth.errors import NotFoundError
from gn_auth.auth.authentication.users import (User,
@@ -61,10 +62,19 @@ class OAuth2Client(ClientMixin):
def jwks(self) -> KeySet:
"""Return this client's KeySet."""
+ logger = getLogger(__name__)
jwksuri = self.client_metadata.get("public-jwks-uri")
- if not bool(jwksuri):
- logging.debug("No Public JWKs URI set for client!")
- return KeySet([])
+ ### ----- DEBUG: Remove this section ----- ###
+ import os
+ from pathlib import Path
+ ca_bundle = Path(os.environ.get("REQUESTS_CA_BUNDLE"))
+ __pk__(f"{ca_bundle} exists?", ca_bundle.exists())
+ ### ----- DEBUG: Remove this section ----- ###
+ if not bool(__pk__(
+ f"CLIENT'S ({self.client_id}) JWKs URI =======> ", jwksuri)):
+ logger.debug("No Public JWKs URI set for client!")
+ return __pk__("Return empty KeySet since URI is not set =====>",
+ KeySet([]))
try:
## IMPORTANT: This can cause a deadlock if the client is working in
## single-threaded mode, i.e. can only serve one request
@@ -72,15 +82,16 @@ class OAuth2Client(ClientMixin):
return KeySet([JsonWebKey.import_key(key)
for key in requests.get(jwksuri).json()["jwks"]])
except requests.ConnectionError as _connerr:
- logging.debug(
+ logger.debug(
"Could not connect to provided URI: %s", jwksuri, exc_info=True)
except JSONDecodeError as _jsonerr:
- logging.debug(
+ logger.debug(
"Could not convert response to JSON", exc_info=True)
except Exception as _exc:# pylint: disable=[broad-except]
- logging.debug(
+ logger.debug(
"Error retrieving the JWKs for the client.", exc_info=True)
- return KeySet([])
+ return __pk__("Return empty KeySet after failure =====>",
+ KeySet([]))
def check_endpoint_auth_method(self, method: str, endpoint: str) -> bool: