authentik.root.urls

authentik URL Configuration

 1"""authentik URL Configuration"""
 2
 3from django.urls import include, path
 4from structlog.stdlib import get_logger
 5
 6from authentik.core.views import error
 7from authentik.lib.config import CONFIG
 8from authentik.lib.utils.reflection import get_apps
 9from authentik.root.monitoring import LiveView, MetricsView, ReadyView
10
11LOGGER = get_logger()
12
13handler400 = error.BadRequestView.as_view()
14handler403 = error.ForbiddenView.as_view()
15handler404 = error.NotFoundView.as_view()
16handler500 = error.ServerErrorView.as_view()
17
18_urlpatterns = []
19
20for _authentik_app in get_apps():
21    mountpoints = None
22    base_url_module = _authentik_app.name + ".urls"
23    if hasattr(_authentik_app, "mountpoint"):
24        mountpoint = _authentik_app.mountpoint
25        mountpoints = {base_url_module: mountpoint}
26    if hasattr(_authentik_app, "mountpoints"):
27        mountpoints = _authentik_app.mountpoints
28    if not mountpoints:
29        continue
30    for module, mountpoint in mountpoints.items():
31        namespace = _authentik_app.label + module.replace(base_url_module, "")
32        _path = path(
33            mountpoint,
34            include(
35                (module, _authentik_app.label),
36                namespace=namespace,
37            ),
38        )
39        _urlpatterns.append(_path)
40        LOGGER.debug(
41            "Mounted URLs",
42            app_name=_authentik_app.name,
43            app_mountpoint=mountpoint,
44            namespace=namespace,
45        )
46
47_urlpatterns += [
48    path("-/metrics/", MetricsView.as_view(), name="metrics"),
49    path("-/health/live/", LiveView.as_view(), name="health-live"),
50    path("-/health/ready/", ReadyView.as_view(), name="health-ready"),
51]
52
53urlpatterns = [path(CONFIG.get("web.path", "/")[1:], include(_urlpatterns))]
LOGGER = <BoundLoggerLazyProxy(logger=None, wrapper_class=None, processors=None, context_class=None, initial_values={}, logger_factory_args=())>
def handler400(request, *args, **kwargs):
 98        def view(request, *args, **kwargs):
 99            self = cls(**initkwargs)
100            self.setup(request, *args, **kwargs)
101            if not hasattr(self, "request"):
102                raise AttributeError(
103                    "%s instance has no 'request' attribute. Did you override "
104                    "setup() and forget to call super()?" % cls.__name__
105                )
106            return self.dispatch(request, *args, **kwargs)

Show Bad Request message

def handler403(request, *args, **kwargs):
 98        def view(request, *args, **kwargs):
 99            self = cls(**initkwargs)
100            self.setup(request, *args, **kwargs)
101            if not hasattr(self, "request"):
102                raise AttributeError(
103                    "%s instance has no 'request' attribute. Did you override "
104                    "setup() and forget to call super()?" % cls.__name__
105                )
106            return self.dispatch(request, *args, **kwargs)

Show Forbidden message

def handler404(request, *args, **kwargs):
 98        def view(request, *args, **kwargs):
 99            self = cls(**initkwargs)
100            self.setup(request, *args, **kwargs)
101            if not hasattr(self, "request"):
102                raise AttributeError(
103                    "%s instance has no 'request' attribute. Did you override "
104                    "setup() and forget to call super()?" % cls.__name__
105                )
106            return self.dispatch(request, *args, **kwargs)

Show Not Found message

def handler500(request, *args, **kwargs):
 98        def view(request, *args, **kwargs):
 99            self = cls(**initkwargs)
100            self.setup(request, *args, **kwargs)
101            if not hasattr(self, "request"):
102                raise AttributeError(
103                    "%s instance has no 'request' attribute. Did you override "
104                    "setup() and forget to call super()?" % cls.__name__
105                )
106            return self.dispatch(request, *args, **kwargs)

Show Server Error message

urlpatterns = [<URLResolver <URLResolver list> (None:None) ''>]