From 5243570137ae49628cb387fff5611eea0add33bf Mon Sep 17 00:00:00 2001 From: Anthony Ramine <123095+nox@users.noreply.github.com> Date: Sat, 17 Jul 2021 00:48:45 +0200 Subject: [PATCH] fix(http2): preserve `proxy-authenticate` and `proxy-authorization` headers (#2597) That Proxy-Authenticate and Proxy-Authorization are forbidden over h2 is not actually specified anywhere, plus h2 also supports CONNECT requests, which are specifically made to do requests over a proxy, and those proxies may require authentication, sometimes through Proxy-Authorization. Note that there is an openwebdocs project that just started to clear up any MDN-induced confusion in implementations: https://github.com/openwebdocs/project/issues/43 --- src/proto/h2/mod.rs | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/proto/h2/mod.rs b/src/proto/h2/mod.rs index 4b66b1880f..ed8fbef74a 100644 --- a/src/proto/h2/mod.rs +++ b/src/proto/h2/mod.rs @@ -1,9 +1,6 @@ use bytes::{Buf, Bytes}; use h2::{RecvStream, SendStream}; -use http::header::{ - HeaderName, CONNECTION, PROXY_AUTHENTICATE, PROXY_AUTHORIZATION, TE, TRAILER, - TRANSFER_ENCODING, UPGRADE, -}; +use http::header::{HeaderName, CONNECTION, TE, TRAILER, TRANSFER_ENCODING, UPGRADE}; use http::HeaderMap; use pin_project_lite::pin_project; use std::error::Error as StdError; @@ -40,8 +37,6 @@ fn strip_connection_headers(headers: &mut HeaderMap, is_request: bool) { let connection_headers = [ HeaderName::from_lowercase(b"keep-alive").unwrap(), HeaderName::from_lowercase(b"proxy-connection").unwrap(), - PROXY_AUTHENTICATE, - PROXY_AUTHORIZATION, TRAILER, TRANSFER_ENCODING, UPGRADE,