chore: empty feature rustls
This commit is contained in:
parent
2a48c64ff4
commit
f58ce97f1a
3 changed files with 61 additions and 14 deletions
|
|
@ -21,6 +21,7 @@ native-roots = ["rpxy-lib/native-roots"]
|
||||||
[dependencies]
|
[dependencies]
|
||||||
rpxy-lib = { path = "../rpxy-lib/", default-features = false, features = [
|
rpxy-lib = { path = "../rpxy-lib/", default-features = false, features = [
|
||||||
"sticky-cookie",
|
"sticky-cookie",
|
||||||
|
"native-tls-backend",
|
||||||
] }
|
] }
|
||||||
|
|
||||||
anyhow = "1.0.75"
|
anyhow = "1.0.75"
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ publish = false
|
||||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
default = ["http3-quinn", "sticky-cookie", "cache"]
|
default = ["http3-quinn", "sticky-cookie", "cache", "native-tls-backend"]
|
||||||
http3-quinn = ["socket2", "quinn", "h3", "h3-quinn"]
|
http3-quinn = ["socket2", "quinn", "h3", "h3-quinn"]
|
||||||
http3-s2n = [
|
http3-s2n = [
|
||||||
"h3",
|
"h3",
|
||||||
|
|
@ -22,6 +22,8 @@ http3-s2n = [
|
||||||
"s2n-quic-h3",
|
"s2n-quic-h3",
|
||||||
]
|
]
|
||||||
sticky-cookie = ["base64", "sha2", "chrono"]
|
sticky-cookie = ["base64", "sha2", "chrono"]
|
||||||
|
native-tls-backend = ["hyper-tls"]
|
||||||
|
rustls-backend = []
|
||||||
cache = [] #"http-cache-semantics", "lru"]
|
cache = [] #"http-cache-semantics", "lru"]
|
||||||
native-roots = [] #"hyper-rustls/native-tokio"]
|
native-roots = [] #"hyper-rustls/native-tokio"]
|
||||||
|
|
||||||
|
|
@ -53,8 +55,8 @@ hyper-util = { version = "0.1.1", features = ["full"] }
|
||||||
futures-util = { version = "0.3.29", default-features = false }
|
futures-util = { version = "0.3.29", default-features = false }
|
||||||
futures-channel = { version = "0.3.29", default-features = false }
|
futures-channel = { version = "0.3.29", default-features = false }
|
||||||
|
|
||||||
# http client
|
# http client for upstream
|
||||||
hyper-tls = { version = "0.6.0", features = ["alpn"] }
|
hyper-tls = { version = "0.6.0", features = ["alpn"], optional = true }
|
||||||
# hyper-rustls = { version = "0.24.2", default-features = false, features = [
|
# hyper-rustls = { version = "0.24.2", default-features = false, features = [
|
||||||
# "tokio-runtime",
|
# "tokio-runtime",
|
||||||
# "webpki-tokio",
|
# "webpki-tokio",
|
||||||
|
|
|
||||||
|
|
@ -5,11 +5,11 @@ use crate::{
|
||||||
body::{wrap_incoming_body_response, IncomingOr},
|
body::{wrap_incoming_body_response, IncomingOr},
|
||||||
rt::LocalExecutor,
|
rt::LocalExecutor,
|
||||||
},
|
},
|
||||||
|
log::*,
|
||||||
};
|
};
|
||||||
use async_trait::async_trait;
|
use async_trait::async_trait;
|
||||||
use http::{Request, Response, Version};
|
use http::{Request, Response, Version};
|
||||||
use hyper::body::Body;
|
use hyper::body::Body;
|
||||||
use hyper_tls::HttpsConnector;
|
|
||||||
use hyper_util::client::legacy::{
|
use hyper_util::client::legacy::{
|
||||||
connect::{Connect, HttpConnector},
|
connect::{Connect, HttpConnector},
|
||||||
Client,
|
Client,
|
||||||
|
|
@ -66,8 +66,38 @@ where
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(not(any(feature = "native-tls-backend", feature = "rustls-backend")))]
|
||||||
|
impl<B> Forwarder<HttpConnector, B>
|
||||||
|
where
|
||||||
|
B: Body + Send + Unpin + 'static,
|
||||||
|
<B as Body>::Data: Send,
|
||||||
|
<B as Body>::Error: Into<Box<(dyn std::error::Error + Send + Sync + 'static)>>,
|
||||||
|
{
|
||||||
|
/// Build inner client with http
|
||||||
|
pub fn try_new(_globals: &Arc<Globals>) -> RpxyResult<Self> {
|
||||||
|
warn!(
|
||||||
|
"
|
||||||
|
--------------------------------------------------------------------------------------------------
|
||||||
|
Request forwarder is working without TLS support!!!
|
||||||
|
We recommend to use this just for testing.
|
||||||
|
Please enable native-tls-backend or rustls-backend feature to enable TLS support.
|
||||||
|
--------------------------------------------------------------------------------------------------"
|
||||||
|
);
|
||||||
|
let executor = LocalExecutor::new(_globals.runtime_handle.clone());
|
||||||
|
let mut http = HttpConnector::new();
|
||||||
|
http.set_reuse_address(true);
|
||||||
|
let inner = Client::builder(executor).build::<_, B>(http);
|
||||||
|
|
||||||
|
Ok(Self {
|
||||||
|
inner,
|
||||||
|
inner_h2: inner.clone(),
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(feature = "native-tls-backend")]
|
||||||
/// Build forwarder with hyper-tls (native-tls)
|
/// Build forwarder with hyper-tls (native-tls)
|
||||||
impl<B1> Forwarder<HttpsConnector<HttpConnector>, B1>
|
impl<B1> Forwarder<hyper_tls::HttpsConnector<HttpConnector>, B1>
|
||||||
where
|
where
|
||||||
B1: Body + Send + Unpin + 'static,
|
B1: Body + Send + Unpin + 'static,
|
||||||
<B1 as Body>::Data: Send,
|
<B1 as Body>::Data: Send,
|
||||||
|
|
@ -76,6 +106,7 @@ where
|
||||||
/// Build forwarder
|
/// Build forwarder
|
||||||
pub async fn try_new(_globals: &Arc<Globals>) -> RpxyResult<Self> {
|
pub async fn try_new(_globals: &Arc<Globals>) -> RpxyResult<Self> {
|
||||||
// build hyper client with hyper-tls
|
// build hyper client with hyper-tls
|
||||||
|
info!("Native TLS support is enabled for the connection to backend applications");
|
||||||
let executor = LocalExecutor::new(_globals.runtime_handle.clone());
|
let executor = LocalExecutor::new(_globals.runtime_handle.clone());
|
||||||
|
|
||||||
let try_build_connector = |alpns: &[&str]| {
|
let try_build_connector = |alpns: &[&str]| {
|
||||||
|
|
@ -87,7 +118,7 @@ where
|
||||||
let mut http = HttpConnector::new();
|
let mut http = HttpConnector::new();
|
||||||
http.enforce_http(false);
|
http.enforce_http(false);
|
||||||
http.set_reuse_address(true);
|
http.set_reuse_address(true);
|
||||||
HttpsConnector::from((http, tls.into()))
|
hyper_tls::HttpsConnector::from((http, tls.into()))
|
||||||
})
|
})
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -99,6 +130,27 @@ where
|
||||||
.http2_only(true)
|
.http2_only(true)
|
||||||
.build::<_, B1>(connector_h2);
|
.build::<_, B1>(connector_h2);
|
||||||
|
|
||||||
|
// #[cfg(feature = "cache")]
|
||||||
|
// {
|
||||||
|
// let cache = RpxyCache::new(_globals).await;
|
||||||
|
// Self { inner, inner_h2, cache }
|
||||||
|
// }
|
||||||
|
// #[cfg(not(feature = "cache"))]
|
||||||
|
Ok(Self { inner, inner_h2 })
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(feature = "rustls-backend")]
|
||||||
|
/// Build forwarder with hyper-rustls (rustls)
|
||||||
|
impl<B1> Forwarder<hyper_tls::HttpsConnector<HttpConnector>, B1>
|
||||||
|
where
|
||||||
|
B1: Body + Send + Unpin + 'static,
|
||||||
|
<B1 as Body>::Data: Send,
|
||||||
|
<B1 as Body>::Error: Into<Box<(dyn std::error::Error + Send + Sync + 'static)>>,
|
||||||
|
{
|
||||||
|
/// Build forwarder
|
||||||
|
pub async fn try_new(_globals: &Arc<Globals>) -> RpxyResult<Self> {
|
||||||
|
todo!("Not implemented yet. Please use native-tls-backend feature for now.");
|
||||||
// #[cfg(feature = "native-roots")]
|
// #[cfg(feature = "native-roots")]
|
||||||
// let builder = hyper_rustls::HttpsConnectorBuilder::new().with_native_roots();
|
// let builder = hyper_rustls::HttpsConnectorBuilder::new().with_native_roots();
|
||||||
// #[cfg(feature = "native-roots")]
|
// #[cfg(feature = "native-roots")]
|
||||||
|
|
@ -118,13 +170,5 @@ where
|
||||||
|
|
||||||
// let inner = Client::builder().build::<_, Body>(connector);
|
// let inner = Client::builder().build::<_, Body>(connector);
|
||||||
// let inner_h2 = Client::builder().http2_only(true).build::<_, Body>(connector_h2);
|
// let inner_h2 = Client::builder().http2_only(true).build::<_, Body>(connector_h2);
|
||||||
|
|
||||||
// #[cfg(feature = "cache")]
|
|
||||||
// {
|
|
||||||
// let cache = RpxyCache::new(_globals).await;
|
|
||||||
// Self { inner, inner_h2, cache }
|
|
||||||
// }
|
|
||||||
// #[cfg(not(feature = "cache"))]
|
|
||||||
Ok(Self { inner, inner_h2 })
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue