This repository has been archived on 2024-05-31. You can view files and clone it, but cannot push or open issues or pull requests.
authentik/passbook/providers/oidc/apps.py

41 lines
1.2 KiB
Python
Raw Normal View History

"""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
2019-10-01 08:24:10 +00:00
from structlog import get_logger
LOGGER = get_logger()
2019-12-31 11:51:16 +00:00
2019-10-07 14:33:48 +00:00
class PassbookProviderOIDCConfig(AppConfig):
"""passbook auth oidc provider app config"""
2019-12-31 11:51:16 +00:00
name = "passbook.providers.oidc"
label = "passbook_providers_oidc"
verbose_name = "passbook Providers.OIDC"
def ready(self):
try:
from Cryptodome.PublicKey import RSA
from oidc_provider.models import RSAKey
2019-12-31 11:51:16 +00:00
if not RSAKey.objects.exists():
key = RSA.generate(2048)
2019-12-31 11:51:16 +00:00
rsakey = RSAKey(key=key.exportKey("PEM").decode("utf8"))
rsakey.save()
LOGGER.info("Created key")
except (OperationalError, ProgrammingError, InternalError):
pass
from passbook.root import urls
2019-12-31 11:51:16 +00:00
urls.urlpatterns.append(
2019-12-31 11:51:16 +00:00
path(
"application/oidc/",
include("oidc_provider.urls", namespace="oidc_provider"),
),
)
import_module("passbook.providers.oidc.signals")