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