Browse Source

fix: missing keycloak_openid during refresh (#431)

Error occurs when token is set so refresh_token is called before call
to get_token.
pull/491/head
Martyn Klassen 2 years ago
parent
commit
bf79187773
  1. 21
      src/keycloak/openid_connection.py

21
src/keycloak/openid_connection.py

@ -54,6 +54,7 @@ class KeycloakOpenIDConnection(ConnectionManager):
_custom_headers = None _custom_headers = None
_user_realm_name = None _user_realm_name = None
_expires_at = None _expires_at = None
_keycloak_openid = None
def __init__( def __init__(
self, self,
@ -275,11 +276,16 @@ class KeycloakOpenIDConnection(ConnectionManager):
# merge custom headers to main headers # merge custom headers to main headers
self.headers.update(self.custom_headers) self.headers.update(self.custom_headers)
def get_token(self):
"""Get admin token.
@property
def keycloak_openid(self) -> KeycloakOpenID:
"""Get the KeycloakOpenID object.
The admin token is then set in the `token` attribute.
The KeycloakOpenID is used to refresh tokens
:returns: KeycloakOpenID
:rtype: KeycloakOpenID
""" """
if self._keycloak_openid is None:
if self.user_realm_name: if self.user_realm_name:
token_realm_name = self.user_realm_name token_realm_name = self.user_realm_name
elif self.realm_name: elif self.realm_name:
@ -287,7 +293,7 @@ class KeycloakOpenIDConnection(ConnectionManager):
else: else:
token_realm_name = "master" token_realm_name = "master"
self.keycloak_openid = KeycloakOpenID(
self._keycloak_openid = KeycloakOpenID(
server_url=self.server_url, server_url=self.server_url,
client_id=self.client_id, client_id=self.client_id,
realm_name=token_realm_name, realm_name=token_realm_name,
@ -296,6 +302,13 @@ class KeycloakOpenIDConnection(ConnectionManager):
timeout=self.timeout, timeout=self.timeout,
) )
return self._keycloak_openid
def get_token(self):
"""Get admin token.
The admin token is then set in the `token` attribute.
"""
grant_type = [] grant_type = []
if self.client_secret_key: if self.client_secret_key:
grant_type.append("client_credentials") grant_type.append("client_credentials")

Loading…
Cancel
Save