Fix absolute urls for swagger-ui oauth settings

This commit is contained in:
Cristi Vîjdea
2018-12-21 12:40:31 +02:00
parent 9d933a9745
commit de950461c7
7 changed files with 15 additions and 22 deletions
-1
View File
@@ -3,7 +3,6 @@ import six
import collections
import logging
import re
import sys
from collections import OrderedDict
from coreapi.compat import urlparse
+9 -1
View File
@@ -2,6 +2,7 @@ import six
from django.shortcuts import resolve_url
from django.template.loader import render_to_string
from django.utils.encoding import force_text
from django.utils.functional import Promise
from rest_framework.renderers import BaseRenderer, JSONRenderer, TemplateHTMLRenderer
from rest_framework.utils import encoders, json
@@ -120,7 +121,14 @@ class SwaggerUIRenderer(_UIRenderer):
def set_context(self, renderer_context, swagger=None):
super(SwaggerUIRenderer, self).set_context(renderer_context, swagger)
renderer_context['swagger_settings'] = json.dumps(self.get_swagger_ui_settings(), cls=encoders.JSONEncoder)
swagger_ui_settings = self.get_swagger_ui_settings()
request = renderer_context['request']
oauth_redirect_url = force_text(swagger_ui_settings.get('oauth2RedirectUrl', ''))
if request and oauth_redirect_url:
swagger_ui_settings['oauth2RedirectUrl'] = request.build_absolute_uri(oauth_redirect_url)
renderer_context['swagger_settings'] = json.dumps(swagger_ui_settings, cls=encoders.JSONEncoder)
def get_swagger_ui_settings(self):
data = {
@@ -192,7 +192,6 @@ function initSwaggerUiConfig(swaggerSettings, oauth2Settings) {
var oldResponseInterceptor = swaggerUiConfig.responseInterceptor;
swaggerUiConfig.responseInterceptor = function (response) {
var absUrl = new URL(response.url, currentPath);
console.log("response", response);
if (absUrl.href in specRequestsInFlight) {
var setToUrl = specRequestsInFlight[absUrl.href];
delete specRequestsInFlight[absUrl.href];