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()
 |