17 lines
		
	
	
	
		
			578 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			17 lines
		
	
	
	
		
			578 B
		
	
	
	
		
			Python
		
	
	
	
	
	
| 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()
 |