1
0
mirror of https://github.com/dkmstr/openuds.git synced 2024-12-22 13:34:04 +03:00

Merged 1.9 update for behind-proxy support

This commit is contained in:
Adolfo Gómez García 2016-04-22 15:04:36 +02:00
commit 42cbad4117
2 changed files with 9 additions and 0 deletions

View File

@ -282,6 +282,9 @@ class GlobalConfig(object):
# Allow clients to notify their own ip (if set), or use always the request extracted IP
HONOR_CLIENT_IP_NOTIFY = Config.section(SECURITY_SECTION).value('honorClientNotifyIP', '0', type=Config.BOOLEAN_FIELD)
# If there is a proxy in front of us
BEHIND_PROXY = Config.section(SECURITY_SECTION).value('Behind a proxy', '0', type=Config.BOOLEAN_FIELD)
# Clusters related vars
# Maximum desired CPU Load. If cpu is over this value, a migration of a service is "desirable"

View File

@ -90,6 +90,7 @@ class GlobalRequestMiddleware(object):
Returns the obtained IP, that is always be a valid ip address.
'''
behind_proxy = GlobalConfig.BEHIND_PROXY.getBool(False)
try:
request.ip = request.META['REMOTE_ADDR']
except:
@ -98,6 +99,11 @@ class GlobalRequestMiddleware(object):
try:
request.ip_proxy = request.META['HTTP_X_FORWARDED_FOR'].split(",")[0]
if behind_proxy is True:
request.ip = request.ip_proxy
request.ip_proxy = request.META['HTTP_X_FORWARDED_FOR'].split(",")[1] # Try to get next proxy
request.is_proxy = True
except:
request.ip_proxy = request.ip