Fixed #23295 -- Removed unnecessary fix_location_header request.get_host() check.

This commit is contained in:
Collin Anderson 2014-08-15 12:40:46 -04:00
parent 7ca665c5f5
commit 230393e5e8
2 changed files with 14 additions and 3 deletions

View File

@ -17,7 +17,7 @@ def fix_location_header(request, response):
Code constructing response objects is free to insert relative paths, as Code constructing response objects is free to insert relative paths, as
this function converts them to absolute paths. this function converts them to absolute paths.
""" """
if 'Location' in response and request.get_host(): if 'Location' in response:
response['Location'] = request.build_absolute_uri(response['Location']) response['Location'] = request.build_absolute_uri(response['Location'])
return response return response

View File

@ -3,8 +3,8 @@ from __future__ import unicode_literals
import io import io
import gzip import gzip
from django.http import HttpRequest, HttpResponse, StreamingHttpResponse from django.http import HttpRequest, HttpResponse, HttpResponseRedirect, StreamingHttpResponse
from django.http.utils import conditional_content_removal from django.http.utils import conditional_content_removal, fix_location_header
from django.test import TestCase from django.test import TestCase
@ -69,3 +69,14 @@ class HttpUtilTests(TestCase):
res = StreamingHttpResponse(['abc']) res = StreamingHttpResponse(['abc'])
conditional_content_removal(req, res) conditional_content_removal(req, res)
self.assertEqual(b''.join(res), b'') self.assertEqual(b''.join(res), b'')
def test_fix_location_without_get_host(self):
"""
Tests that you can return an absolute redirect when the request
host is not in ALLOWED_HOSTS. Issue #20472
"""
request = HttpRequest()
def bomb():
self.assertTrue(False)
request.get_host = bomb
fix_location_header(request, HttpResponseRedirect('http://example.com'))