From 16e99a8464c1658bfa457b546234f4aa246ecb95 Mon Sep 17 00:00:00 2001 From: ms Date: Wed, 24 Nov 2021 13:00:29 +0100 Subject: Redirect with relative URL. That allows proxy middleware to adjust/complete the Location header. --- talermerchantdemos/blog/blog.py | 4 +++- talermerchantdemos/donations/donations.py | 4 +++- talermerchantdemos/landing/landing.py | 4 +++- talermerchantdemos/survey/survey.py | 2 ++ 4 files changed, 11 insertions(+), 3 deletions(-) (limited to 'talermerchantdemos') diff --git a/talermerchantdemos/blog/blog.py b/talermerchantdemos/blog/blog.py index 7a1fbf1..5fce6c8 100644 --- a/talermerchantdemos/blog/blog.py +++ b/talermerchantdemos/blog/blog.py @@ -29,6 +29,7 @@ from flask_babel import Babel from flask_babel import refresh from flask_babel import force_locale from flask_babel import gettext +from werkzeug.middleware.proxy_fix import ProxyFix import time import sys from urllib.parse import urljoin, urlencode, urlparse @@ -78,6 +79,7 @@ if not sys.version_info.major == 3 and sys.version_info.minor >= 6: sys.exit(1) app = flask.Flask(__name__, template_folder="../templates", static_folder="../static") +app.wsgi_app = ProxyFix(app.wsgi_app, x_host=1, x_prefix=1) app.debug = True app.secret_key = base64.b64encode(os.urandom(64)).decode("utf-8") @@ -136,7 +138,7 @@ def internal_error(e): def index(): default = "en" target = flask.request.accept_languages.best_match(translations, default) - return flask.redirect("/" + target + "/", code=302) + return flask.redirect(target + "/", code=302) ## diff --git a/talermerchantdemos/donations/donations.py b/talermerchantdemos/donations/donations.py index 01e8f12..dd42713 100644 --- a/talermerchantdemos/donations/donations.py +++ b/talermerchantdemos/donations/donations.py @@ -25,6 +25,7 @@ from flask_babel import Babel from flask_babel import refresh from flask_babel import force_locale from flask_babel import gettext +from werkzeug.middleware.proxy_fix import ProxyFix import os import time import traceback @@ -48,6 +49,7 @@ LOGGER = logging.getLogger(__name__) BASE_DIR = os.path.dirname(os.path.abspath(__file__)) app = flask.Flask(__name__, template_folder="../templates", static_folder="../static") +app.wsgi_app = ProxyFix(app.wsgi_app, x_host=1, x_prefix=1) app.debug = True app.secret_key = base64.b64encode(os.urandom(64)).decode("utf-8") @@ -158,7 +160,7 @@ def favicon(): def index(): default = "en" target = flask.request.accept_languages.best_match(translations, default) - return flask.redirect("/" + target + "/", code=302) + return flask.redirect(target + "/", code=302) ## diff --git a/talermerchantdemos/landing/landing.py b/talermerchantdemos/landing/landing.py index 58b111f..b628deb 100644 --- a/talermerchantdemos/landing/landing.py +++ b/talermerchantdemos/landing/landing.py @@ -27,6 +27,7 @@ from flask_babel import Babel from flask_babel import refresh from flask_babel import force_locale from flask_babel import gettext +from werkzeug.middleware.proxy_fix import ProxyFix import traceback from taler.util.talerconfig import TalerConfig, ConfigurationError from ..httpcommon import ( @@ -48,6 +49,7 @@ if not sys.version_info.major == 3 and sys.version_info.minor >= 6: sys.exit(1) app = flask.Flask(__name__, template_folder="../templates", static_folder="../static") +app.wsgi_app = ProxyFix(app.wsgi_app, x_host=1, x_prefix=1) app.debug = True app.secret_key = base64.b64encode(os.urandom(64)).decode("utf-8") @@ -117,7 +119,7 @@ def favicon(): def index(): default = "en" target = flask.request.accept_languages.best_match(translations, default) - return flask.redirect("/" + target + "/", code=302) + return flask.redirect(target + "/", code=302) ## diff --git a/talermerchantdemos/survey/survey.py b/talermerchantdemos/survey/survey.py index 57acb1d..7c5db1a 100644 --- a/talermerchantdemos/survey/survey.py +++ b/talermerchantdemos/survey/survey.py @@ -28,6 +28,7 @@ from flask_babel import Babel from flask_babel import refresh from flask_babel import force_locale from flask_babel import gettext +from werkzeug.middleware.proxy_fix import ProxyFix import traceback from taler.util.talerconfig import TalerConfig, ConfigurationError from ..httpcommon import ( @@ -50,6 +51,7 @@ if not sys.version_info.major == 3 and sys.version_info.minor >= 6: sys.exit(1) app = flask.Flask(__name__, template_folder="../templates", static_folder="../static") +app.wsgi_app = ProxyFix(app.wsgi_app, x_host=1, x_prefix=1) app.debug = True app.secret_key = base64.b64encode(os.urandom(64)).decode("utf-8") -- cgit v1.2.3