"""passbook auth oidc provider app config""" from importlib import import_module from django.apps import AppConfig from django.db.utils import InternalError, OperationalError, ProgrammingError from django.urls import include, path from structlog import get_logger LOGGER = get_logger() class PassbookOutletOIDCConfig(AppConfig): """passbook auth oidc provider app config""" name = "passbook.channels.out_oidc" label = "passbook_channels_out_oidc" verbose_name = "passbook Outlets.OIDC" def ready(self): try: from Cryptodome.PublicKey import RSA from oidc_provider.models import RSAKey if not RSAKey.objects.exists(): key = RSA.generate(2048) rsakey = RSAKey(key=key.exportKey("PEM").decode("utf8")) rsakey.save() LOGGER.info("Created key") except (OperationalError, ProgrammingError, InternalError): pass from passbook.root import urls urls.urlpatterns.append( path( "application/oidc/", include("oidc_provider.urls", namespace="oidc_provider"), ), ) import_module("passbook.channels.out_oidc.signals")