Browse Source

Helper function to convert key

pull/616/head
Cristian Betivu 5 months ago
parent
commit
dd08f3fd11
  1. 15
      src/keycloak/keycloak_openid.py

15
src/keycloak/keycloak_openid.py

@ -596,6 +596,11 @@ class KeycloakOpenID:
full_jwt.token.objects["valid"] = True
return json.loads(full_jwt.token.payload.decode("utf-8"))
@staticmethod
def _public_key_to_jwk(key: str) -> jwk.JWK:
key = "-----BEGIN PUBLIC KEY-----\n" + key + "\n-----END PUBLIC KEY-----"
return jwk.JWK.from_pem(key.encode("utf-8"))
def decode_token(self, token, validate: bool = True, **kwargs):
"""Decode user token.
@ -620,8 +625,7 @@ class KeycloakOpenID:
"""
key = kwargs.pop("key", None)
if validate and key is None:
key = "-----BEGIN PUBLIC KEY-----\n" + self.public_key() + "\n-----END PUBLIC KEY-----"
key = jwk.JWK.from_pem(key.encode("utf-8"))
key = self._public_key_to_jwk(self.public_key())
return self._verify_token(token, key, **kwargs)
@ -1257,12 +1261,7 @@ class KeycloakOpenID:
"""
key = kwargs.pop("key", None)
if validate and key is None:
key = (
"-----BEGIN PUBLIC KEY-----\n"
+ await self.a_public_key()
+ "\n-----END PUBLIC KEY-----"
)
key = jwk.JWK.from_pem(key.encode("utf-8"))
key = self._public_key_to_jwk(await self.a_public_key())
return self._verify_token(token, key, **kwargs)

Loading…
Cancel
Save