diff options
author | Alex Auvolat <alex@adnab.me> | 2021-12-08 17:27:27 +0100 |
---|---|---|
committer | Alex Auvolat <alex@adnab.me> | 2021-12-08 17:27:27 +0100 |
commit | 8d47bef9d45a767fcc166d26b75fc51937116bcd (patch) | |
tree | d51526af4ebdfc076b43284f537d05ca211420d2 | |
parent | c49b2075a30460a319ce53da300e4943d45d5add (diff) | |
download | tricot-8d47bef9d45a767fcc166d26b75fc51937116bcd.tar.gz tricot-8d47bef9d45a767fcc166d26b75fc51937116bcd.zip |
Fix path prefixes
-rw-r--r-- | src/proxy_config.rs | 2 | ||||
-rw-r--r-- | src/reverse_proxy.rs | 6 |
2 files changed, 5 insertions, 3 deletions
diff --git a/src/proxy_config.rs b/src/proxy_config.rs index a15c143..29493b2 100644 --- a/src/proxy_config.rs +++ b/src/proxy_config.rs @@ -99,7 +99,7 @@ fn parse_tricot_tag( } let (host, path_prefix) = match splits[1].split_once('/') { - Some((h, p)) => (h, Some(p.to_string())), + Some((h, p)) => (h, Some(format!("/{}", p))), None => (splits[1], None), }; diff --git a/src/reverse_proxy.rs b/src/reverse_proxy.rs index 3d2a1fc..1768724 100644 --- a/src/reverse_proxy.rs +++ b/src/reverse_proxy.rs @@ -72,10 +72,9 @@ fn create_proxied_request<B>( *builder.headers_mut().unwrap() = remove_hop_headers(request.headers()); - let host_header_name = "host"; - let x_forwarded_for_header_name = "x-forwarded-for"; // If request does not have host header, add it from original URI authority + let host_header_name = "host"; if let Some(authority) = request.uri().authority() { if let hyper::header::Entry::Vacant(entry) = builder.headers_mut().unwrap().entry(host_header_name) @@ -85,6 +84,7 @@ fn create_proxied_request<B>( } // Add forwarding information in the headers + let x_forwarded_for_header_name = "x-forwarded-for"; match builder .headers_mut() .unwrap() @@ -100,6 +100,8 @@ fn create_proxied_request<B>( } } + builder.headers_mut().unwrap().insert(HeaderName::from_bytes(b"x-forwarded-proto")?, "https".try_into()?); + if let Some(conn) = request.headers().get("connection") { if conn.to_str()?.to_lowercase() == "upgrade" { if let Some(upgrade) = request.headers().get("upgrade") { |