Skip to content

Commit

Permalink
Added support for CSV x-forwarded-proto header in ProxyFix
Browse files Browse the repository at this point in the history
  • Loading branch information
Marcin Paciulan authored and davidism committed May 24, 2018
1 parent a935563 commit a6a619e
Showing 1 changed file with 3 additions and 2 deletions.
5 changes: 3 additions & 2 deletions werkzeug/contrib/fixers.py
Expand Up @@ -133,7 +133,7 @@ def get_remote_addr(self, forwarded_for):

def __call__(self, environ, start_response):
getter = environ.get
forwarded_proto = getter('HTTP_X_FORWARDED_PROTO', '')
forwarded_proto = getter('HTTP_X_FORWARDED_PROTO', '').split(',')
forwarded_for = getter('HTTP_X_FORWARDED_FOR', '').split(',')
forwarded_host = getter('HTTP_X_FORWARDED_HOST', '')
forwarded_port = getter('HTTP_X_FORWARDED_PORT', '')
Expand All @@ -146,6 +146,7 @@ def __call__(self, environ, start_response):
'werkzeug.proxy_fix.orig_script_name': getter('SCRIPT_NAME'),
})
forwarded_for = [x for x in [x.strip() for x in forwarded_for] if x]
forwarded_proto = [x for x in [x.strip() for x in forwarded_proto] if x]
remote_addr = self.get_remote_addr(forwarded_for)
if remote_addr is not None:
environ['REMOTE_ADDR'] = remote_addr
Expand All @@ -161,7 +162,7 @@ def __call__(self, environ, start_response):
else:
environ['SERVER_PORT'] = forwarded_port
if forwarded_proto:
environ['wsgi.url_scheme'] = forwarded_proto
environ['wsgi.url_scheme'] = forwarded_proto[0]
if forwarded_prefix:
environ['SCRIPT_NAME'] = forwarded_prefix
return self.app(environ, start_response)
Expand Down

0 comments on commit a6a619e

Please sign in to comment.