root: extract custom setup code (#15150)

This commit is contained in:
Marc 'risson' Schmitt
2025-06-19 15:56:35 +02:00
committed by GitHub
parent 6a367d4ddf
commit d043dacece
4 changed files with 34 additions and 28 deletions

View File

@ -9,13 +9,14 @@ https://docs.djangoproject.com/en/3.0/howto/deployment/asgi/
import django import django
from channels.routing import ProtocolTypeRouter, URLRouter from channels.routing import ProtocolTypeRouter, URLRouter
from defusedxml import defuse_stdlib
from django.core.asgi import get_asgi_application from django.core.asgi import get_asgi_application
from sentry_sdk.integrations.asgi import SentryAsgiMiddleware from sentry_sdk.integrations.asgi import SentryAsgiMiddleware
from authentik.root.setup import setup
# DJANGO_SETTINGS_MODULE is set in gunicorn.conf.py # DJANGO_SETTINGS_MODULE is set in gunicorn.conf.py
defuse_stdlib() setup()
django.setup() django.setup()

26
authentik/root/setup.py Normal file
View File

@ -0,0 +1,26 @@
import os
import warnings
from cryptography.hazmat.backends.openssl.backend import backend
from defusedxml import defuse_stdlib
from authentik.lib.config import CONFIG
def setup():
warnings.filterwarnings("ignore", "SelectableGroups dict interface")
warnings.filterwarnings(
"ignore",
"defusedxml.lxml is no longer supported and will be removed in a future release.",
)
warnings.filterwarnings(
"ignore",
"defusedxml.cElementTree is deprecated, import from defusedxml.ElementTree instead.",
)
defuse_stdlib()
if CONFIG.get_bool("compliance.fips.enabled", False):
backend._enable_fips()
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "authentik.root.settings")

View File

@ -7,8 +7,6 @@ from pathlib import Path
from tempfile import gettempdir from tempfile import gettempdir
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
from cryptography.hazmat.backends.openssl.backend import backend
from defusedxml import defuse_stdlib
from prometheus_client.values import MultiProcessValue from prometheus_client.values import MultiProcessValue
from authentik import get_full_version from authentik import get_full_version
@ -18,6 +16,7 @@ from authentik.lib.logging import get_logger_config
from authentik.lib.utils.http import get_http_session from authentik.lib.utils.http import get_http_session
from authentik.lib.utils.reflection import get_env from authentik.lib.utils.reflection import get_env
from authentik.root.install_id import get_install_id_raw from authentik.root.install_id import get_install_id_raw
from authentik.root.setup import setup
from lifecycle.migrate import run_migrations from lifecycle.migrate import run_migrations
from lifecycle.wait_for_db import wait_for_db from lifecycle.wait_for_db import wait_for_db
from lifecycle.worker import DjangoUvicornWorker from lifecycle.worker import DjangoUvicornWorker
@ -28,10 +27,7 @@ if TYPE_CHECKING:
from authentik.root.asgi import AuthentikAsgi from authentik.root.asgi import AuthentikAsgi
defuse_stdlib() setup()
if CONFIG.get_bool("compliance.fips.enabled", False):
backend._enable_fips()
wait_for_db() wait_for_db()

View File

@ -1,35 +1,18 @@
#!/usr/bin/env python #!/usr/bin/env python
"""Django manage.py""" """Django manage.py"""
import os import os
import sys import sys
import warnings
from authentik.lib.config import CONFIG
from cryptography.hazmat.backends.openssl.backend import backend
from defusedxml import defuse_stdlib
from django.utils.autoreload import DJANGO_AUTORELOAD_ENV from django.utils.autoreload import DJANGO_AUTORELOAD_ENV
from authentik.root.setup import setup
from lifecycle.migrate import run_migrations from lifecycle.migrate import run_migrations
from lifecycle.wait_for_db import wait_for_db from lifecycle.wait_for_db import wait_for_db
warnings.filterwarnings("ignore", "SelectableGroups dict interface") setup()
warnings.filterwarnings(
"ignore",
"defusedxml.lxml is no longer supported and will be removed in a future release.",
)
warnings.filterwarnings(
"ignore",
"defusedxml.cElementTree is deprecated, import from defusedxml.ElementTree instead.",
)
defuse_stdlib()
if CONFIG.get_bool("compliance.fips.enabled", False):
backend._enable_fips()
if __name__ == "__main__": if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "authentik.root.settings")
wait_for_db() wait_for_db()
if ( if (
len(sys.argv) > 1 len(sys.argv) > 1