From ae5d746f793d04457615290105542705484b3f38 Mon Sep 17 00:00:00 2001 From: Cristian Betivu Date: Sat, 16 Nov 2024 15:25:04 +0200 Subject: [PATCH] Remove special case for str --- src/keycloak/keycloak_openid.py | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/src/keycloak/keycloak_openid.py b/src/keycloak/keycloak_openid.py index 923e126..23381d2 100644 --- a/src/keycloak/keycloak_openid.py +++ b/src/keycloak/keycloak_openid.py @@ -582,12 +582,9 @@ class KeycloakOpenID: return raise_error_from_response(data_raw, KeycloakPostError) @staticmethod - def _verify_token(token, key: Union[str, jwk.JWK, jwk.JWKSet, None], **kwargs): + def _verify_token(token, key: Union[jwk.JWK, jwk.JWKSet, None], **kwargs): # keep the function free of IO # this way it can be used by `decode_token` and `a_decode_token` - if isinstance(key, str): - key = "-----BEGIN PUBLIC KEY-----\n" + key + "\n-----END PUBLIC KEY-----" - key = jwk.JWK.from_pem(key.encode("utf-8")) if key is not None: leeway = kwargs.pop("leeway", 60) @@ -625,7 +622,12 @@ class KeycloakOpenID: key = kwargs.pop("key", None) if validate: if key is None: - key = self.public_key() + key = ( + "-----BEGIN PUBLIC KEY-----\n" + + self.public_key() + + "\n-----END PUBLIC KEY-----" + ) + key = jwk.JWK.from_pem(key.encode("utf-8")) else: key = None @@ -1264,7 +1266,12 @@ class KeycloakOpenID: key = kwargs.pop("key", None) if validate: if key is None: - key = await self.a_public_key() + key = ( + "-----BEGIN PUBLIC KEY-----\n" + + await self.a_public_key() + + "\n-----END PUBLIC KEY-----" + ) + key = jwk.JWK.from_pem(key.encode("utf-8")) else: key = None