Changeset View
Changeset View
Standalone View
Standalone View
swh/web/settings/common.py
# Copyright (C) 2017-2020 The Software Heritage developers | # Copyright (C) 2017-2020 The Software Heritage developers | ||||
# See the AUTHORS file at the top-level directory of this distribution | # See the AUTHORS file at the top-level directory of this distribution | ||||
# License: GNU Affero General Public License version 3, or any later version | # License: GNU Affero General Public License version 3, or any later version | ||||
# See top-level LICENSE file for more information | # See top-level LICENSE file for more information | ||||
""" | """ | ||||
Django common settings for swh-web. | Django common settings for swh-web. | ||||
""" | """ | ||||
import os | import os | ||||
import sys | import sys | ||||
from typing import Any, Dict | from typing import Any, Dict | ||||
from swh.web.auth.utils import OIDC_SWH_WEB_CLIENT_ID | |||||
from swh.web.config import get_config | from swh.web.config import get_config | ||||
swh_web_config = get_config() | swh_web_config = get_config() | ||||
# Build paths inside the project like this: os.path.join(BASE_DIR, ...) | # Build paths inside the project like this: os.path.join(BASE_DIR, ...) | ||||
PROJECT_DIR = os.path.dirname(os.path.abspath(__file__)) | PROJECT_DIR = os.path.dirname(os.path.abspath(__file__)) | ||||
# Quick-start development settings - unsuitable for production | # Quick-start development settings - unsuitable for production | ||||
Show All 29 Lines | |||||
MIDDLEWARE = [ | MIDDLEWARE = [ | ||||
"django.middleware.security.SecurityMiddleware", | "django.middleware.security.SecurityMiddleware", | ||||
"django.contrib.sessions.middleware.SessionMiddleware", | "django.contrib.sessions.middleware.SessionMiddleware", | ||||
"corsheaders.middleware.CorsMiddleware", | "corsheaders.middleware.CorsMiddleware", | ||||
"django.middleware.common.CommonMiddleware", | "django.middleware.common.CommonMiddleware", | ||||
"django.middleware.csrf.CsrfViewMiddleware", | "django.middleware.csrf.CsrfViewMiddleware", | ||||
"django.contrib.auth.middleware.AuthenticationMiddleware", | "django.contrib.auth.middleware.AuthenticationMiddleware", | ||||
"swh.web.auth.middlewares.OIDCSessionExpiredMiddleware", | "swh.auth.django.middlewares.OIDCSessionExpiredMiddleware", | ||||
"django.contrib.messages.middleware.MessageMiddleware", | "django.contrib.messages.middleware.MessageMiddleware", | ||||
"django.middleware.clickjacking.XFrameOptionsMiddleware", | "django.middleware.clickjacking.XFrameOptionsMiddleware", | ||||
"swh.web.common.middlewares.ThrottlingHeadersMiddleware", | "swh.web.common.middlewares.ThrottlingHeadersMiddleware", | ||||
"swh.web.common.middlewares.ExceptionMiddleware", | "swh.web.common.middlewares.ExceptionMiddleware", | ||||
] | ] | ||||
# Compress all assets (static ones and dynamically generated html) | # Compress all assets (static ones and dynamically generated html) | ||||
# served by django in a local development environment context. | # served by django in a local development environment context. | ||||
▲ Show 20 Lines • Show All 92 Lines • ▼ Show 20 Lines | "DEFAULT_RENDERER_CLASSES": ( | ||||
"rest_framework.renderers.JSONRenderer", | "rest_framework.renderers.JSONRenderer", | ||||
"swh.web.api.renderers.YAMLRenderer", | "swh.web.api.renderers.YAMLRenderer", | ||||
"rest_framework.renderers.TemplateHTMLRenderer", | "rest_framework.renderers.TemplateHTMLRenderer", | ||||
), | ), | ||||
"DEFAULT_THROTTLE_CLASSES": ("swh.web.api.throttling.SwhWebRateThrottle",), | "DEFAULT_THROTTLE_CLASSES": ("swh.web.api.throttling.SwhWebRateThrottle",), | ||||
"DEFAULT_THROTTLE_RATES": throttle_rates, | "DEFAULT_THROTTLE_RATES": throttle_rates, | ||||
"DEFAULT_AUTHENTICATION_CLASSES": [ | "DEFAULT_AUTHENTICATION_CLASSES": [ | ||||
"rest_framework.authentication.SessionAuthentication", | "rest_framework.authentication.SessionAuthentication", | ||||
"swh.web.auth.backends.OIDCBearerTokenAuthentication", | "swh.auth.django.backends.OIDCBearerTokenAuthentication", | ||||
], | ], | ||||
"EXCEPTION_HANDLER": "swh.web.api.apiresponse.error_response_handler", | "EXCEPTION_HANDLER": "swh.web.api.apiresponse.error_response_handler", | ||||
} | } | ||||
LOGGING = { | LOGGING = { | ||||
"version": 1, | "version": 1, | ||||
"disable_existing_loggers": False, | "disable_existing_loggers": False, | ||||
"filters": { | "filters": { | ||||
▲ Show 20 Lines • Show All 95 Lines • ▼ Show 20 Lines | |||||
JS_REVERSE_JS_MINIFY = False | JS_REVERSE_JS_MINIFY = False | ||||
CORS_ORIGIN_ALLOW_ALL = True | CORS_ORIGIN_ALLOW_ALL = True | ||||
CORS_URLS_REGEX = r"^/(badge|api)/.*$" | CORS_URLS_REGEX = r"^/(badge|api)/.*$" | ||||
AUTHENTICATION_BACKENDS = [ | AUTHENTICATION_BACKENDS = [ | ||||
"django.contrib.auth.backends.ModelBackend", | "django.contrib.auth.backends.ModelBackend", | ||||
"swh.web.auth.backends.OIDCAuthorizationCodePKCEBackend", | "swh.auth.django.backends.OIDCAuthorizationCodePKCEBackend", | ||||
] | ] | ||||
SWH_AUTH_SERVER_URL = swh_web_config["keycloak"]["server_url"] | |||||
SWH_AUTH_REALM_NAME = swh_web_config["keycloak"]["realm_name"] | |||||
SWH_AUTH_CLIENT_ID = OIDC_SWH_WEB_CLIENT_ID | |||||
SWH_AUTH_SESSION_EXPIRED_REDIRECT_VIEW = "logout" |