Преглед изворни кода

HUE-8836 [core] request.get_host() is broken when HTTP_X_FORWARDED_HOST contains multiple hosts

(cherry picked from commit 4f7449cbf105f0ccc3568017dd998354b11f0c1d)
Prakash Ranade пре 6 година
родитељ
комит
814e57b365
1 измењених фајлова са 3 додато и 0 уклоњено
  1. 3 0
      desktop/core/ext-py/Django-1.11.20/django/http/request.py

+ 3 - 0
desktop/core/ext-py/Django-1.11.20/django/http/request.py

@@ -82,6 +82,9 @@ class HttpRequest(object):
         if settings.USE_X_FORWARDED_HOST and (
         if settings.USE_X_FORWARDED_HOST and (
                 'HTTP_X_FORWARDED_HOST' in self.META):
                 'HTTP_X_FORWARDED_HOST' in self.META):
             host = self.META['HTTP_X_FORWARDED_HOST']
             host = self.META['HTTP_X_FORWARDED_HOST']
+            # Django 1.11 does not handle case where HTTP_X_FORWARDED_HOST contains multiple hosts
+            if host.find(','):
+                host = host.split(',')[-1].strip()
         elif 'HTTP_HOST' in self.META:
         elif 'HTTP_HOST' in self.META:
             host = self.META['HTTP_HOST']
             host = self.META['HTTP_HOST']
         else:
         else: