Add middleware for fix "get_host() method fails when the host is behind multiple proxies"
This commit is contained in:
		
					parent
					
						
							
								5b53daa14a
							
						
					
				
			
			
				commit
				
					
						9431e9846c
					
				
			
		
					 2 changed files with 20 additions and 1 deletions
				
			
		|  | @ -118,6 +118,7 @@ INSTALLED_APPS = ( | ||||||
| 
 | 
 | ||||||
| MIDDLEWARE_CLASSES = ( | MIDDLEWARE_CLASSES = ( | ||||||
|     'django.contrib.sessions.middleware.SessionMiddleware', |     'django.contrib.sessions.middleware.SessionMiddleware', | ||||||
|  |     'utils.middleware.MultipleProxyMiddleware', | ||||||
|     'django.middleware.common.CommonMiddleware', |     'django.middleware.common.CommonMiddleware', | ||||||
|     'django.middleware.csrf.CsrfViewMiddleware', |     'django.middleware.csrf.CsrfViewMiddleware', | ||||||
|     'django.contrib.auth.middleware.AuthenticationMiddleware', |     'django.contrib.auth.middleware.AuthenticationMiddleware', | ||||||
|  | @ -515,5 +516,6 @@ DCL_SUPPORT_FROM_ADDRESS = env('DCL_SUPPORT_FROM_ADDRESS') | ||||||
| # Settings for Google analytics | # Settings for Google analytics | ||||||
| GOOGLE_ANALYTICS_PROPERTY_IDS = { | GOOGLE_ANALYTICS_PROPERTY_IDS = { | ||||||
|     'datacenterlight.ch': 'UA-62285904-9', |     'datacenterlight.ch': 'UA-62285904-9', | ||||||
|     'digitalglarus.ch': 'UA-62285904-2' |     'digitalglarus.ch': 'UA-62285904-2', | ||||||
|  |     '127.0.0.1:8000': 'test' | ||||||
| } | } | ||||||
|  |  | ||||||
							
								
								
									
										17
									
								
								utils/middleware.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								utils/middleware.py
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,17 @@ | ||||||
|  | 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() | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue