439439# Replaces every non PulpException error msg with "An internal error occured"
440440REDACT_UNSAFE_EXCEPTIONS = False
441441
442+ # ---------- 8< ---------- 8< ---------
443+ # SAML2 config..
444+ LOGIN_URL = "/saml2/login/"
445+ SESSION_EXPIRE_AT_BROWSER_CLOSE = True
446+ SAML_CONFIG = {
447+ "entityid" : "http://localhost:5001/saml2/metadata/" ,
448+ "entity_category" : [],
449+ "service" : {
450+ "sp" : {
451+ "name" : "Pulp CI" ,
452+ "endpoints" : {},
453+ "idp" : {
454+ "https://localhost:8443/sso/saml2/idp/metadata.php" : {},
455+ },
456+ }
457+ },
458+ "key_file" : "/etc/pki/saml2/saml2-private.key" ,
459+ "cert_file" : "/etc/pki/saml2/saml2-public.crt" ,
460+ "xmlsec_binary" : "/usr/bin/xmlsec1" ,
461+ "metadata" : {
462+ # "local": [str(BASE_DIR / "remote_metadata.xml")],
463+ "remote" : [
464+ {
465+ "url" : "https://saml2idp:8443/sso/saml2/idp/metadata.php" ,
466+ },
467+ ],
468+ },
469+ "debug" : 1 ,
470+ # DANGER!
471+ "disable_ssl_certificate_validation" : True ,
472+ }
473+
442474# HERE STARTS DYNACONF EXTENSION LOAD (Keep at the very bottom of settings.py)
443475# Read more at https://www.dynaconf.com/django/
444476
@@ -594,6 +626,15 @@ def otel_middleware_hook(settings):
594626 return data
595627
596628
629+ def saml2_settings_hook (settings ):
630+ data = {"dynaconf_merge" : True }
631+ if "SAML_CONFIG" in settings :
632+ data ["INSTALLED_APPS" ] = ["djangosaml2" ]
633+ data ["MIDDLEWARE" ] = ["djangosaml2.middleware.SamlSessionMiddleware" ]
634+ data ["AUTHENTICATION_BACKENDS" ] = ["djangosaml2.backends.Saml2Backend" ]
635+ return data
636+
637+
597638del preload_settings
598639
599640settings = DjangoDynaconf (
@@ -618,7 +659,7 @@ def otel_middleware_hook(settings):
618659 otel_metrics_dispatch_interval_validator ,
619660 distributed_publication_retention_period_validator ,
620661 ],
621- post_hooks = (otel_middleware_hook ,),
662+ post_hooks = (otel_middleware_hook , saml2_settings_hook ),
622663)
623664
624665_logger = getLogger (__name__ )
0 commit comments