v0.34.0_7

This commit is contained in:
Mateusz Gruszczyński committed 2026-10-18 07:48:59 +02:00
1 parent 47ce1f18c2
commit b6a3e12225
21 files changed
+471 -84

No files matched your search

+35
View File
@@ -229,4 +229,39 @@ mod tests {
assert_eq!(context.values["x-forwarded-port"], "8080");
assert_eq!(context.values["x-forwarded-uri"], "/s?q=1");
}
#[test]
fn original_url_is_omitted_only_when_unneeded_and_forwarding_is_identical() {
for (trusted, peer, local) in [
(false, "192.0.2.9:5000", "10.0.0.1:8080"),
(true, "10.0.0.4:5000", "10.0.0.1:8080"),
(false, "[2001:db8::a]:5010", "[2001:db8::b]:8080"),
] {
let settings = Settings {
trusted_proxies: if trusted { vec!["10.0.0.0/8".into()] } else { vec![] },
trust_forwarded_proto: true,
}.compile().unwrap();
let mut incoming = HeaderMap::new();
incoming.insert("x-forwarded-for", "192.0.2.15".parse().unwrap());
incoming.insert("x-forwarded-proto", "http".parse().unwrap());
let peer: SocketAddr = peer.parse().unwrap();
let local: SocketAddr = local.parse().unwrap();
let host: HeaderValue = "app.example:8443".parse().unwrap();
let uri: Uri = "/route?q=hello".parse().unwrap();
let full = settings.context(&incoming, peer, local, true, &host, &uri).unwrap();
let compact = settings.context_with_original_url(
&incoming, peer, local, true, &host, &uri, false,
).unwrap();
assert!(!full.original_url.is_empty());
assert!(compact.original_url.is_empty());
assert_eq!(full.client_ip, compact.client_ip);
assert_eq!(full.scheme, compact.scheme);
assert_eq!(full.values, compact.values);
let mut full_headers = incoming.clone();
let mut compact_headers = incoming.clone();
full.apply(&mut full_headers);
compact.apply(&mut compact_headers);
assert_eq!(full_headers, compact_headers);
}
}
}