v0.34.0_7
This commit is contained in:
1 parent
47ce1f18c2
commit
b6a3e12225
21 files changed
+471
-84
No files matched your search
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user