gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-deployment] branch master updated: fix X-Forwarded-* headers inse


From: gnunet
Subject: [taler-deployment] branch master updated: fix X-Forwarded-* headers insertion
Date: Wed, 13 Oct 2021 12:03:21 +0200

This is an automated email from the git hooks/post-receive script.

ms pushed a commit to branch master
in repository deployment.

The following commit(s) were added to refs/heads/master by this push:
     new 577d02d  fix X-Forwarded-* headers insertion
577d02d is described below

commit 577d02d3e2876578d9a0d9a904ba27170114c868
Author: ms <ms@taler.net>
AuthorDate: Wed Oct 13 12:03:09 2021 +0200

    fix X-Forwarded-* headers insertion
---
 bin/WIP/taler-local | 30 +++++++++++++++++++++++-------
 1 file changed, 23 insertions(+), 7 deletions(-)

diff --git a/bin/WIP/taler-local b/bin/WIP/taler-local
index 2ef61e2..9ed5a53 100755
--- a/bin/WIP/taler-local
+++ b/bin/WIP/taler-local
@@ -433,7 +433,13 @@ def bootstrap(list_repos, repos) -> None:
     checkout_repos(load_repos(reposList))
 
 class TalerReverseProxy(Flask):
-    def __init__(self, log_dir, unix_sockets_dir):
+    def __init__(
+        self,
+        log_dir,
+        unix_sockets_dir,
+        proxy_proto,
+        proxy_netloc
+    ):
         super().__init__("taler-proxy")
         all_methods = [
             "GET", "POST", "HEAD",
@@ -441,6 +447,8 @@ class TalerReverseProxy(Flask):
         ]
         self.log_dir = log_dir
         self.unix_sockets_dir = unix_sockets_dir
+        self.proxy_proto = proxy_proto
+        self.proxy_netloc = proxy_netloc
         self.add_url_rule("/", view_func=self.index)
         self.add_url_rule("/<component>", view_func=self.proxy, 
methods=all_methods)
         self.add_url_rule("/<component>/", view_func=self.proxy, 
methods=all_methods)
@@ -498,9 +506,16 @@ class TalerReverseProxy(Flask):
                 method = s.put
             if request.method == "DELETE":
                 method = s.delete
+            proxied_headers = {
+                "X-Forwarded-Host": self.proxy_netloc,
+                "X-Forwarded-Proto": self.proxy_proto,
+                "X-Forwarded-Prefix": f"/{component}"
+            }
+            for k, v in request.headers.items():
+                proxied_headers[k] = v
             resp = method(
                 uri,
-                headers=request.headers,
+                headers=proxied_headers,
                 data=raw_data,
             )
         except Exception as error:
@@ -509,10 +524,6 @@ class TalerReverseProxy(Flask):
         self.logger.debug(f"Upstream responds: {resp.text}")
 
         headers = Headers()
-        headers.add("X-Forwarded-Host", REV_PROXY_NETLOC)
-        headers.add("X-Forwarded-Proto", REV_PROXY_PROTO)
-        headers.add("X-Forwarded-Prefix", f"/{component}")
-
         for k in resp.headers.keys():
             # This version does not send chunked responses, so
             # remove that header when it's found.  Content-Length
@@ -1154,7 +1165,12 @@ def prepare():
     ).run()
     print(" OK")
     print_nn("Launching the reverse proxy...")
-    rev_proxy = TalerReverseProxy(LOG_DIR, UNIX_SOCKETS_DIR)
+    rev_proxy = TalerReverseProxy(
+        LOG_DIR,
+        UNIX_SOCKETS_DIR,
+        REV_PROXY_PROTO,
+        REV_PROXY_NETLOC
+    )
     rev_proxy.start()
     if not Command.is_serving(REV_PROXY_URL + "/"):
         fail(f"Reverse proxy did not start correctly.  \

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]