|
19 | 19 | from django.core.exceptions import ImproperlyConfigured |
20 | 20 | from dynaconf import DjangoDynaconf, Dynaconf, Validator |
21 | 21 | from dynaconf.base import Settings |
22 | | -from dynaconf.utils.functional import empty |
23 | 22 |
|
24 | 23 | from pulpcore import constants |
25 | 24 |
|
@@ -606,8 +605,24 @@ def otel_middleware_hook(settings): |
606 | 605 | return data |
607 | 606 |
|
608 | 607 |
|
| 608 | +def saml2_settings_hook(settings): |
| 609 | + data = {"dynaconf_merge": True} |
| 610 | + if "SAML_CONFIG" in settings: |
| 611 | + data["INSTALLED_APPS"] = ["djangosaml2"] |
| 612 | + data["MIDDLEWARE"] = ["djangosaml2.middleware.SamlSessionMiddleware"] |
| 613 | + data["AUTHENTICATION_BACKENDS"] = ["djangosaml2.backends.Saml2Backend"] |
| 614 | + if "LOGIN_URL" not in settings: |
| 615 | + data["LOGIN_URL"] = "/saml2/login/" |
| 616 | + if "SESSION_COOKIE_SECURE" not in settings: |
| 617 | + data["SESSION_COOKIE_SECURE"] = True |
| 618 | + if "SESSION_EXPIRE_AT_BROWSER_CLOSE" not in settings: |
| 619 | + data["SESSION_EXPIRE_AT_BROWSER_CLOSE"] = True |
| 620 | + return data |
| 621 | + |
| 622 | + |
609 | 623 | del preload_settings |
610 | 624 |
|
| 625 | + |
611 | 626 | class PulpSettings(Settings): |
612 | 627 | def _ready(self): |
613 | 628 | self._store = self._store.to_dict() |
@@ -637,7 +652,7 @@ def _ready(self): |
637 | 652 | otel_metrics_dispatch_interval_validator, |
638 | 653 | distributed_publication_retention_period_validator, |
639 | 654 | ], |
640 | | - post_hooks=(otel_middleware_hook,), |
| 655 | + post_hooks=(otel_middleware_hook, saml2_settings_hook), |
641 | 656 | ) |
642 | 657 |
|
643 | 658 | _logger = getLogger(__name__) |
|
0 commit comments