app_gw: Rewrite redirect responses (replace upstream location with server_name)

This commit is contained in:
Langhammer, Jens 2019-07-09 15:28:52 +02:00
parent 1d2be6e68b
commit 3d1fa9f048
2 changed files with 9 additions and 1 deletions

View file

@ -221,5 +221,13 @@ class RequestHandler:
self._set_content_type(proxy_response) self._set_content_type(proxy_response)
response = get_django_response(proxy_response, strict_cookies=False) response = get_django_response(proxy_response, strict_cookies=False)
# If response has a 'Location' header, we rewrite that location as well
if 'Location' in response:
LOGGER.debug("Rewriting Location header")
for server_name in self.app_gw.server_name:
response['Location'] = response['Location'].replace(
self._parsed_url.hostname, server_name)
LOGGER.debug(response['Location'])
# LOGGER.debug("RESPONSE RETURNED: %s", response) # LOGGER.debug("RESPONSE RETURNED: %s", response)
return response return response

View file

@ -9,7 +9,7 @@ from passbook.app_gw.proxy.utils import (cookie_from_string,
#: Default number of bytes that are going to be read in a file lecture #: Default number of bytes that are going to be read in a file lecture
DEFAULT_AMT = 2 ** 16 DEFAULT_AMT = 2 ** 16
logger = logging.getLogger('revproxy.response') logger = logging.getLogger(__name__)
def get_django_response(proxy_response, strict_cookies=False): def get_django_response(proxy_response, strict_cookies=False):