fixed #747 - don't include port in x-forwarded-for

This commit is contained in:
Eugene Pankov 2023-04-24 08:49:34 -07:00
parent 83be017974
commit f13a22f4d0
No known key found for this signature in database
GPG key ID: 5896FCBBDD1CF4F4

View file

@ -207,11 +207,14 @@ fn copy_server_request<B: SomeRequestBuilder>(req: &Request, mut target: B) -> B
fn inject_forwarding_headers<B: SomeRequestBuilder>(req: &Request, mut target: B) -> Result<B> {
if let Some(host) = req.headers().get(http::header::HOST) {
target = target.header(X_FORWARDED_HOST.clone(), host.to_str()?.to_string());
target = target.header(
X_FORWARDED_HOST.clone(),
host.to_str()?.split(':').next().unwrap().to_string(),
);
}
target = target.header(X_FORWARDED_PROTO.clone(), req.scheme().as_str().to_owned());
if let Some(addr) = req.remote_addr().as_socket_addr() {
target = target.header(X_FORWARDED_FOR.clone(), addr.to_string());
target = target.header(X_FORWARDED_FOR.clone(), addr.ip().to_string());
}
Ok(target)
}