v0.34.0_4
This commit is contained in:
1 parent
f20c8da718
commit
5910e6e901
21 files changed
+377
-51
No files matched your search
@@ -200,4 +200,33 @@ mod tests {
|
||||
.unwrap();
|
||||
assert_eq!(c.values["x-forwarded-for"], "203.0.113.8, 104.16.1.2");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn untrusted_fast_path_preserves_ipv6_and_forwarding_metadata() {
|
||||
let source = Settings {
|
||||
trusted_proxies: vec!["10.0.0.0/8".into()],
|
||||
trust_forwarded_proto: true,
|
||||
}.compile().unwrap();
|
||||
let mut supplied = HeaderMap::new();
|
||||
supplied.insert("forwarded", "for=203.0.113.8".parse().unwrap());
|
||||
supplied.insert("x-forwarded-proto", "http".parse().unwrap());
|
||||
let context = source.context(
|
||||
&supplied,
|
||||
"[2001:db8::5]:5050".parse().unwrap(),
|
||||
"[2001:db8::10]:8080".parse().unwrap(),
|
||||
true,
|
||||
&"app.example:443".parse().unwrap(),
|
||||
&"/s?q=1".parse().unwrap(),
|
||||
).unwrap();
|
||||
assert_eq!(context.client_ip, "2001:db8::5".parse::<IpAddr>().unwrap());
|
||||
assert_eq!(context.scheme, "https");
|
||||
assert_eq!(context.original_url, "https://app.example:443/s?q=1");
|
||||
assert_eq!(context.values["forwarded"],
|
||||
"for=\"[2001:db8::5]\";by=\"[2001:db8::10]\";proto=https;host=\"app.example:443\"");
|
||||
assert_eq!(context.values["x-forwarded-for"], "2001:db8::5");
|
||||
assert_eq!(context.values["x-real-ip"], "2001:db8::5");
|
||||
assert_eq!(context.values["x-forwarded-proto"], "https");
|
||||
assert_eq!(context.values["x-forwarded-port"], "8080");
|
||||
assert_eq!(context.values["x-forwarded-uri"], "/s?q=1");
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user