浏览代码

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 (
                 'HTTP_X_FORWARDED_HOST' in self.META):
             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:
             host = self.META['HTTP_HOST']
         else: