Add middleware for fix "get_host() method fails when the host is behind multiple proxies"
This commit is contained in:
parent
5b53daa14a
commit
9431e9846c
2 changed files with 20 additions and 1 deletions
|
@ -118,6 +118,7 @@ INSTALLED_APPS = (
|
||||||
|
|
||||||
MIDDLEWARE_CLASSES = (
|
MIDDLEWARE_CLASSES = (
|
||||||
'django.contrib.sessions.middleware.SessionMiddleware',
|
'django.contrib.sessions.middleware.SessionMiddleware',
|
||||||
|
'utils.middleware.MultipleProxyMiddleware',
|
||||||
'django.middleware.common.CommonMiddleware',
|
'django.middleware.common.CommonMiddleware',
|
||||||
'django.middleware.csrf.CsrfViewMiddleware',
|
'django.middleware.csrf.CsrfViewMiddleware',
|
||||||
'django.contrib.auth.middleware.AuthenticationMiddleware',
|
'django.contrib.auth.middleware.AuthenticationMiddleware',
|
||||||
|
@ -515,5 +516,6 @@ DCL_SUPPORT_FROM_ADDRESS = env('DCL_SUPPORT_FROM_ADDRESS')
|
||||||
# Settings for Google analytics
|
# Settings for Google analytics
|
||||||
GOOGLE_ANALYTICS_PROPERTY_IDS = {
|
GOOGLE_ANALYTICS_PROPERTY_IDS = {
|
||||||
'datacenterlight.ch': 'UA-62285904-9',
|
'datacenterlight.ch': 'UA-62285904-9',
|
||||||
'digitalglarus.ch': 'UA-62285904-2'
|
'digitalglarus.ch': 'UA-62285904-2',
|
||||||
|
'127.0.0.1:8000': 'test'
|
||||||
}
|
}
|
||||||
|
|
17
utils/middleware.py
Normal file
17
utils/middleware.py
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
class MultipleProxyMiddleware(object):
|
||||||
|
FORWARDED_FOR_FIELDS = [
|
||||||
|
'HTTP_X_FORWARDED_FOR',
|
||||||
|
'HTTP_X_FORWARDED_HOST',
|
||||||
|
'HTTP_X_FORWARDED_SERVER',
|
||||||
|
]
|
||||||
|
|
||||||
|
def process_request(self, request):
|
||||||
|
"""
|
||||||
|
Rewrites the proxy headers so that only the most
|
||||||
|
recent proxy is used.
|
||||||
|
"""
|
||||||
|
for field in self.FORWARDED_FOR_FIELDS:
|
||||||
|
if field in request.META:
|
||||||
|
if ',' in request.META[field]:
|
||||||
|
parts = request.META[field].split(',')
|
||||||
|
request.META[field] = parts[-1].strip()
|
Loading…
Reference in a new issue