31 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| """passbook auth oidc provider app config"""
 | |
| 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 PassbookProviderOIDCConfig(AppConfig):
 | |
|     """passbook auth oidc provider app config"""
 | |
| 
 | |
|     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
 | |
|             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')),
 | |
|         )
 | 
