taler-merchant-demos

Python-based Frontends for the Demonstration Web site
Log | Files | Refs | Submodules | README | LICENSE

commit fe8061f4494decabef75eb4076c362dc2c93ed73
parent 16e99a8464c1658bfa457b546234f4aa246ecb95
Author: ms <ms@taler.net>
Date:   Thu, 25 Nov 2021 21:42:27 +0100

fix cookie path for a proxied blog

Diffstat:
Mtalermerchantdemos/blog/blog.py | 28++++++++++++++++++++++++----
Mtalermerchantdemos/blog/content.py | 3++-
2 files changed, 26 insertions(+), 5 deletions(-)

diff --git a/talermerchantdemos/blog/blog.py b/talermerchantdemos/blog/blog.py @@ -392,18 +392,38 @@ def article(article_name, lang=None, data=None): if ai is not None and au is not None: response = flask.redirect(au) response.set_cookie( - "order_id", ai, path=urllib.parse.quote(f"/essay/{article_name}") + "order_id", + ai, + path=urllib.parse.quote( + flask.request.environ["SCRIPT_NAME"] + f"/essay/{article_name}" + ) ) response.set_cookie( - "order_id", ai, path=urllib.parse.quote(f"/{lang}/essay/{article_name}") + "order_id", + ai, + path=urllib.parse.quote( + flask.request.environ["SCRIPT_NAME"] + f"/{lang}/essay/{article_name}" + ) ) return response # Redirect the browser to a page where the wallet can # run the payment protocol. response = flask.redirect(pay_status["order_status_url"]) - response.set_cookie("order_id", order_id, path=f"/essay/{article_name}") - response.set_cookie("order_id", order_id, path=f"/{lang}/essay/{article_name}") + response.set_cookie( + "order_id", + order_id, + path=urllib.parse.quote( + flask.request.environ["SCRIPT_NAME"] + f"/essay/{article_name}" + ) + ) + response.set_cookie( + "order_id", + order_id, + path=urllib.parse.quote( + flask.request.environ["SCRIPT_NAME"] + f"/{lang}/essay/{article_name}" + ) + ) return response diff --git a/talermerchantdemos/blog/content.py b/talermerchantdemos/blog/content.py @@ -99,7 +99,8 @@ def add_from_html(resource_name, lang): title = resource_name else: title = title_el.get_text().strip() - slug = quote(title.replace(" ", "_"), safe="") + slug = title.replace(" ", "_") + # slug = quote(title.replace(" ", "_"), safe="") teaser = soup.find("p", attrs={"id": ["teaser"]}) if teaser is None: