From 1611f6fcde4effbbf5e524d60404dafb74df80f4 Mon Sep 17 00:00:00 2001 From: gongul Date: Mon, 22 Feb 2021 11:42:47 +0900 Subject: [PATCH] Add document authentication --- drf_spectacular/settings.py | 2 ++ drf_spectacular/views.py | 5 ++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/drf_spectacular/settings.py b/drf_spectacular/settings.py index 29ae8405..13d5453f 100644 --- a/drf_spectacular/settings.py +++ b/drf_spectacular/settings.py @@ -27,6 +27,7 @@ # is the 'SERVE_INCLUDE_SCHEMA': True, 'SERVE_PERMISSIONS': ['rest_framework.permissions.AllowAny'], + 'SERVE_AUTHENTICATION': None, # Dictionary of configurations to pass to the SwaggerUI({ ... }) # https://swagger.io/docs/open-source-tools/swagger-ui/usage/configuration/ @@ -120,6 +121,7 @@ IMPORT_STRINGS = [ 'SCHEMA_AUTHENTICATION_CLASSES', 'DEFAULT_GENERATOR_CLASS', + 'SERVE_AUTHENTICATION', 'SERVE_PERMISSIONS', 'POSTPROCESSING_HOOKS', 'PREPROCESSING_HOOKS', diff --git a/drf_spectacular/views.py b/drf_spectacular/views.py index bb43d0af..81679298 100644 --- a/drf_spectacular/views.py +++ b/drf_spectacular/views.py @@ -8,6 +8,7 @@ from rest_framework.renderers import TemplateHTMLRenderer from rest_framework.response import Response from rest_framework.reverse import reverse +from rest_framework.settings import api_settings from rest_framework.views import APIView from drf_spectacular.plumbing import get_relative_url, set_query_parameters @@ -42,7 +43,7 @@ class SpectacularAPIView(APIView): OpenApiYamlRenderer, OpenApiYamlRenderer2, OpenApiJsonRenderer, OpenApiJsonRenderer2 ] permission_classes = spectacular_settings.SERVE_PERMISSIONS - + authentication_classes = spectacular_settings.SERVE_AUTHENTICATION or api_settings.DEFAULT_AUTHENTICATION_CLASSES generator_class = spectacular_settings.DEFAULT_GENERATOR_CLASS serve_public = spectacular_settings.SERVE_PUBLIC urlconf = spectacular_settings.SERVE_URLCONF @@ -76,6 +77,7 @@ class SpectacularJSONAPIView(SpectacularAPIView): class SpectacularSwaggerView(APIView): renderer_classes = [TemplateHTMLRenderer] permission_classes = spectacular_settings.SERVE_PERMISSIONS + authentication_classes = spectacular_settings.SERVE_AUTHENTICATION or api_settings.DEFAULT_AUTHENTICATION_CLASSES url_name = 'schema' url = None template_name = 'drf_spectacular/swagger_ui.html' @@ -140,6 +142,7 @@ def get(self, request, *args, **kwargs): class SpectacularRedocView(APIView): renderer_classes = [TemplateHTMLRenderer] permission_classes = spectacular_settings.SERVE_PERMISSIONS + authentication_classes = spectacular_settings.SERVE_AUTHENTICATION or api_settings.DEFAULT_AUTHENTICATION_CLASSES url_name = 'schema' url = None template_name = 'drf_spectacular/redoc.html'