2017-06-30 05:44:39 +00:00
|
|
|
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(',')
|
2017-07-03 21:53:37 +00:00
|
|
|
request.META[field] = parts[-1].strip()
|