From 8623a2c3fcf1c71f3654758a00f7db2c877feb62 Mon Sep 17 00:00:00 2001 From: Jens Langhammer Date: Fri, 5 Jul 2019 15:27:04 +0200 Subject: [PATCH] oidc_provider: fix error trying to create RSA Key before migrations are run --- passbook/oidc_provider/apps.py | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/passbook/oidc_provider/apps.py b/passbook/oidc_provider/apps.py index c6066356b..6f4259179 100644 --- a/passbook/oidc_provider/apps.py +++ b/passbook/oidc_provider/apps.py @@ -2,6 +2,7 @@ from logging import getLogger from django.apps import AppConfig +from django.db.utils import InternalError, OperationalError, ProgrammingError from django.urls import include, path LOGGER = getLogger(__name__) @@ -14,13 +15,16 @@ class PassbookOIDCProviderConfig(AppConfig): verbose_name = 'passbook OIDC Provider' def ready(self): - 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") + 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')),