diff --git a/swh/web/auth/utils.py b/swh/web/auth/utils.py --- a/swh/web/auth/utils.py +++ b/swh/web/auth/utils.py @@ -9,8 +9,6 @@ from base64 import urlsafe_b64encode from typing import Tuple -from django.conf import settings - from swh.web.auth.keycloak import ( KeycloakOpenIDConnect, get_keycloak_oidc_client ) @@ -43,7 +41,11 @@ return code_verifier_str, code_challenge_str -def get_oidc_client(client_id: str = '') -> KeycloakOpenIDConnect: +OIDC_SWH_WEB_CLIENT_ID = 'swh-web' + + +def get_oidc_client(client_id: str = OIDC_SWH_WEB_CLIENT_ID + ) -> KeycloakOpenIDConnect: """ Instantiate a KeycloakOpenIDConnect class for a given client in the SoftwareHeritage realm. @@ -54,8 +56,6 @@ Returns: An object to ease the interaction with the Keycloak server """ - if not client_id: - client_id = settings.OIDC_SWH_WEB_CLIENT_ID swhweb_config = get_config() return get_keycloak_oidc_client(swhweb_config['keycloak']['server_url'], swhweb_config['keycloak']['realm_name'], diff --git a/swh/web/settings/common.py b/swh/web/settings/common.py --- a/swh/web/settings/common.py +++ b/swh/web/settings/common.py @@ -300,5 +300,3 @@ 'django.contrib.auth.backends.ModelBackend', 'swh.web.auth.backends.OIDCAuthorizationCodePKCEBackend', ] - -OIDC_SWH_WEB_CLIENT_ID = 'swh-web' diff --git a/swh/web/tests/auth/keycloak_mock.py b/swh/web/tests/auth/keycloak_mock.py --- a/swh/web/tests/auth/keycloak_mock.py +++ b/swh/web/tests/auth/keycloak_mock.py @@ -6,10 +6,10 @@ from copy import copy from unittest.mock import Mock -from django.conf import settings from django.utils import timezone from swh.web.auth.keycloak import KeycloakOpenIDConnect +from swh.web.auth.utils import OIDC_SWH_WEB_CLIENT_ID from swh.web.config import get_config from .sample_data import oidc_profile, realm_public_key, userinfo @@ -21,7 +21,7 @@ swhweb_config = get_config() super().__init__(swhweb_config['keycloak']['server_url'], swhweb_config['keycloak']['realm_name'], - settings.OIDC_SWH_WEB_CLIENT_ID) + OIDC_SWH_WEB_CLIENT_ID) self._keycloak.public_key = lambda: realm_public_key self._keycloak.well_know = lambda: { 'issuer': f'{self.server_url}realms/{self.realm_name}', diff --git a/swh/web/tests/auth/test_views.py b/swh/web/tests/auth/test_views.py --- a/swh/web/tests/auth/test_views.py +++ b/swh/web/tests/auth/test_views.py @@ -6,13 +6,13 @@ from urllib.parse import urljoin, urlparse import uuid -from django.conf import settings from django.http import QueryDict from django.contrib.auth.models import AnonymousUser, User import pytest from swh.web.auth.models import OIDCUser +from swh.web.auth.utils import OIDC_SWH_WEB_CLIENT_ID from swh.web.common.utils import reverse from swh.web.tests.django_asserts import assert_template_used, assert_contains @@ -47,7 +47,7 @@ # check redirect url is valid assert urljoin(response['location'], parsed_url.path) == authorization_url assert 'client_id' in query_dict - assert query_dict['client_id'] == settings.OIDC_SWH_WEB_CLIENT_ID + assert query_dict['client_id'] == OIDC_SWH_WEB_CLIENT_ID assert 'response_type' in query_dict assert query_dict['response_type'] == 'code' assert 'redirect_uri' in query_dict