| 
									
										
										
										
											2017-06-30 08:44:39 +03: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 23:53:37 +02:00
										 |  |  |                     request.META[field] = parts[-1].strip() |