Browse Source

refactor: shorten KeycloakOpenIDConnectionManager->KeycloakOpenIDConnection

pull/415/head
nuwang 3 years ago
parent
commit
4b75fa4b85
  1. 8
      README.md
  2. 4
      src/keycloak/__init__.py
  3. 14
      src/keycloak/keycloak_admin.py
  4. 6
      src/keycloak/keycloak_uma.py
  5. 4
      src/keycloak/openid_connection.py
  6. 10
      tests/conftest.py
  7. 8
      tests/test_keycloak_uma.py

8
README.md

@ -142,9 +142,9 @@ auth_status = keycloak_openid.has_uma_access(token['access_token'], "Resource#Sc
# KEYCLOAK ADMIN # KEYCLOAK ADMIN
from keycloak import KeycloakAdmin from keycloak import KeycloakAdmin
from keycloak import KeycloakOpenIDConnectionManager
from keycloak import KeycloakOpenIDConnection
keycloak_connection = KeycloakOpenIDConnectionManager(
keycloak_connection = KeycloakOpenIDConnection(
server_url="http://localhost:8080/", server_url="http://localhost:8080/",
username='example-admin', username='example-admin',
password='secret', password='secret',
@ -352,10 +352,10 @@ keycloak_admin.create_user(...) # Creates a new user in 'demo'
# KEYCLOAK UMA # KEYCLOAK UMA
from keycloak import KeycloakOpenIDConnectionManager
from keycloak import KeycloakOpenIDConnection
from keycloak import KeycloakUMA from keycloak import KeycloakUMA
keycloak_connection = KeycloakOpenIDConnectionManager(
keycloak_connection = KeycloakOpenIDConnection(
server_url="http://localhost:8080/", server_url="http://localhost:8080/",
realm_name="master", realm_name="master",
client_id="my_client", client_id="my_client",

4
src/keycloak/__init__.py

@ -43,7 +43,7 @@ from .exceptions import (
from .keycloak_admin import KeycloakAdmin from .keycloak_admin import KeycloakAdmin
from .keycloak_openid import KeycloakOpenID from .keycloak_openid import KeycloakOpenID
from .keycloak_uma import KeycloakUMA from .keycloak_uma import KeycloakUMA
from .openid_connection import KeycloakOpenIDConnectionManager
from .openid_connection import KeycloakOpenIDConnection
__all__ = [ __all__ = [
"__version__", "__version__",
@ -63,6 +63,6 @@ __all__ = [
"KeycloakSecretNotFound", "KeycloakSecretNotFound",
"KeycloakAdmin", "KeycloakAdmin",
"KeycloakOpenID", "KeycloakOpenID",
"KeycloakOpenIDConnectionManager",
"KeycloakOpenIDConnection",
"KeycloakUMA", "KeycloakUMA",
] ]

14
src/keycloak/keycloak_admin.py

@ -42,7 +42,7 @@ from .exceptions import (
KeycloakPutError, KeycloakPutError,
raise_error_from_response, raise_error_from_response,
) )
from .openid_connection import KeycloakOpenIDConnectionManager
from .openid_connection import KeycloakOpenIDConnection
class KeycloakAdmin: class KeycloakAdmin:
@ -76,8 +76,8 @@ class KeycloakAdmin:
:type auto_refresh_token: list :type auto_refresh_token: list
:param timeout: connection timeout in seconds :param timeout: connection timeout in seconds
:type timeout: int :type timeout: int
:param connection: A KeycloakOpenIDConnectionManager as an alternative to individual params.
:type connection: KeycloakOpenIDConnectionManager
:param connection: A KeycloakOpenIDConnection as an alternative to individual params.
:type connection: KeycloakOpenIDConnection
""" """
PAGE_SIZE = 100 PAGE_SIZE = 100
@ -100,7 +100,7 @@ class KeycloakAdmin:
user_realm_name=None, user_realm_name=None,
auto_refresh_token=None, auto_refresh_token=None,
timeout=60, timeout=60,
connection: KeycloakOpenIDConnectionManager = None,
connection: KeycloakOpenIDConnection = None,
): ):
"""Init method. """Init method.
@ -133,9 +133,9 @@ class KeycloakAdmin:
:param timeout: connection timeout in seconds :param timeout: connection timeout in seconds
:type timeout: int :type timeout: int
:param connection: An OpenID Connection as an alternative to individual params. :param connection: An OpenID Connection as an alternative to individual params.
:type connection: KeycloakOpenIDConnectionManager
:type connection: KeycloakOpenIDConnection
""" """
self.connection = connection or KeycloakOpenIDConnectionManager(
self.connection = connection or KeycloakOpenIDConnection(
server_url=server_url, server_url=server_url,
username=username, username=username,
password=password, password=password,
@ -206,7 +206,7 @@ class KeycloakAdmin:
"""Get connection. """Get connection.
:returns: Connection manager :returns: Connection manager
:rtype: KeycloakOpenIDConnectionManager
:rtype: KeycloakOpenIDConnection
""" """
return self._connection return self._connection

6
src/keycloak/keycloak_uma.py

@ -36,7 +36,7 @@ from .exceptions import (
KeycloakPutError, KeycloakPutError,
raise_error_from_response, raise_error_from_response,
) )
from .openid_connection import KeycloakOpenIDConnectionManager
from .openid_connection import KeycloakOpenIDConnection
from .urls_patterns import URL_UMA_WELL_KNOWN from .urls_patterns import URL_UMA_WELL_KNOWN
@ -46,11 +46,11 @@ class KeycloakUMA:
:param connection: OpenID connection manager :param connection: OpenID connection manager
""" """
def __init__(self, connection: KeycloakOpenIDConnectionManager):
def __init__(self, connection: KeycloakOpenIDConnection):
"""Init method. """Init method.
:param connection: OpenID connection manager :param connection: OpenID connection manager
:type connection: KeycloakOpenIDConnectionManager
:type connection: KeycloakOpenIDConnection
""" """
self.connection = connection self.connection = connection
custom_headers = self.connection.custom_headers or {} custom_headers = self.connection.custom_headers or {}

4
src/keycloak/openid_connection.py

@ -23,7 +23,7 @@
"""Keycloak OpenID Connection Manager module. """Keycloak OpenID Connection Manager module.
The module contains mainly the implementation of KeycloakOpenIDConnectionManager class.
The module contains mainly the implementation of KeycloakOpenIDConnection class.
This is an extension of the ConnectionManager class, and handles the automatic refresh This is an extension of the ConnectionManager class, and handles the automatic refresh
of openid tokens when required. of openid tokens when required.
""" """
@ -35,7 +35,7 @@ from .exceptions import KeycloakPostError
from .keycloak_openid import KeycloakOpenID from .keycloak_openid import KeycloakOpenID
class KeycloakOpenIDConnectionManager(ConnectionManager):
class KeycloakOpenIDConnection(ConnectionManager):
"""A class to help with OpenID connections which can auto refresh tokens. """A class to help with OpenID connections which can auto refresh tokens.
:param object: _description_ :param object: _description_

10
tests/conftest.py

@ -14,7 +14,7 @@ from cryptography.hazmat.primitives import hashes, serialization
from cryptography.hazmat.primitives.asymmetric import rsa from cryptography.hazmat.primitives.asymmetric import rsa
from cryptography.x509.oid import NameOID from cryptography.x509.oid import NameOID
from keycloak import KeycloakAdmin, KeycloakOpenID, KeycloakOpenIDConnectionManager, KeycloakUMA
from keycloak import KeycloakAdmin, KeycloakOpenID, KeycloakOpenIDConnection, KeycloakUMA
class KeycloakTestEnv(object): class KeycloakTestEnv(object):
@ -503,10 +503,10 @@ def oid_connection_with_authz(oid_with_credentials_authz: Tuple[KeycloakOpenID,
:param oid_with_credentials_authz: Keycloak OpenID client with pre-configured user credentials :param oid_with_credentials_authz: Keycloak OpenID client with pre-configured user credentials
:type oid_with_credentials_authz: Tuple[KeycloakOpenID, str, str] :type oid_with_credentials_authz: Tuple[KeycloakOpenID, str, str]
:yields: Keycloak OpenID connection manager :yields: Keycloak OpenID connection manager
:rtype: KeycloakOpenIDConnectionManager
:rtype: KeycloakOpenIDConnection
""" """
oid, _, _ = oid_with_credentials_authz oid, _, _ = oid_with_credentials_authz
connection = KeycloakOpenIDConnectionManager(
connection = KeycloakOpenIDConnection(
server_url=oid.connection.base_url, server_url=oid.connection.base_url,
realm_name=oid.realm_name, realm_name=oid.realm_name,
client_id=oid.client_id, client_id=oid.client_id,
@ -517,11 +517,11 @@ def oid_connection_with_authz(oid_with_credentials_authz: Tuple[KeycloakOpenID,
@pytest.fixture @pytest.fixture
def uma(oid_connection_with_authz: KeycloakOpenIDConnectionManager):
def uma(oid_connection_with_authz: KeycloakOpenIDConnection):
"""Fixture for initialized KeycloakUMA class. """Fixture for initialized KeycloakUMA class.
:param oid_connection_with_authz: Keycloak open id connection with pre-configured authz client :param oid_connection_with_authz: Keycloak open id connection with pre-configured authz client
:type oid_connection_with_authz: KeycloakOpenIDConnectionManager
:type oid_connection_with_authz: KeycloakOpenIDConnection
:yields: Keycloak OpenID client :yields: Keycloak OpenID client
:rtype: KeycloakOpenID :rtype: KeycloakOpenID
""" """

8
tests/test_keycloak_uma.py

@ -3,7 +3,7 @@ import re
import pytest import pytest
from keycloak import KeycloakOpenIDConnectionManager, KeycloakUMA
from keycloak import KeycloakOpenIDConnection, KeycloakUMA
from keycloak.exceptions import ( from keycloak.exceptions import (
KeycloakDeleteError, KeycloakDeleteError,
KeycloakGetError, KeycloakGetError,
@ -12,16 +12,16 @@ from keycloak.exceptions import (
) )
def test_keycloak_uma_init(oid_connection_with_authz: KeycloakOpenIDConnectionManager):
def test_keycloak_uma_init(oid_connection_with_authz: KeycloakOpenIDConnection):
"""Test KeycloakUMA's init method. """Test KeycloakUMA's init method.
:param oid_connection_with_authz: Keycloak OpenID connection manager with preconfigured authz :param oid_connection_with_authz: Keycloak OpenID connection manager with preconfigured authz
:type oid_connection_with_authz: KeycloakOpenIDConnectionManager
:type oid_connection_with_authz: KeycloakOpenIDConnection
""" """
connection = oid_connection_with_authz connection = oid_connection_with_authz
uma = KeycloakUMA(connection=connection) uma = KeycloakUMA(connection=connection)
assert isinstance(uma.connection, KeycloakOpenIDConnectionManager)
assert isinstance(uma.connection, KeycloakOpenIDConnection)
# should initially be empty # should initially be empty
assert uma._well_known is None assert uma._well_known is None
assert uma.uma_well_known assert uma.uma_well_known

Loading…
Cancel
Save