From 78f780910eef870815e25bf615c1ee1699194d6b Mon Sep 17 00:00:00 2001 From: Firstyear Date: Thu, 20 May 2021 07:58:11 +1000 Subject: [PATCH] Fix proxy usage in tests (#443) --- .gitignore | 1 + kanidm_client/src/lib.rs | 25 +++++++++++++++++++++++ kanidm_client/tests/common.rs | 1 + kanidm_unix_int/tests/cache_layer_test.rs | 3 +++ 4 files changed, 30 insertions(+) diff --git a/.gitignore b/.gitignore index c456f2afb..7803d7699 100644 --- a/.gitignore +++ b/.gitignore @@ -12,4 +12,5 @@ kanidm_rlm_python/test_data/ca.pem loc.sh todo.sh vendor.tar.* +*.patch diff --git a/kanidm_client/src/lib.rs b/kanidm_client/src/lib.rs index 9af3805f7..1a02d4fc6 100644 --- a/kanidm_client/src/lib.rs +++ b/kanidm_client/src/lib.rs @@ -72,6 +72,7 @@ pub struct KanidmClientBuilder { verify_hostnames: bool, ca: Option, connect_timeout: Option, + use_system_proxies: bool, } fn read_file_metadata>(path: &P) -> Result { @@ -92,6 +93,7 @@ impl KanidmClientBuilder { verify_hostnames: true, ca: None, connect_timeout: None, + use_system_proxies: true, } } @@ -125,6 +127,7 @@ impl KanidmClientBuilder { verify_hostnames, ca, connect_timeout, + use_system_proxies, } = self; // Process and apply all our options if they exist. let address = match kcc.uri { @@ -144,6 +147,7 @@ impl KanidmClientBuilder { verify_hostnames, ca, connect_timeout, + use_system_proxies, }) } @@ -197,6 +201,7 @@ impl KanidmClientBuilder { verify_hostnames: self.verify_hostnames, ca: self.ca, connect_timeout: self.connect_timeout, + use_system_proxies: self.use_system_proxies, } } @@ -208,6 +213,7 @@ impl KanidmClientBuilder { verify_hostnames: !accept_invalid_hostnames, ca: self.ca, connect_timeout: self.connect_timeout, + use_system_proxies: self.use_system_proxies, } } @@ -219,6 +225,7 @@ impl KanidmClientBuilder { verify_hostnames: self.verify_hostnames, ca: self.ca, connect_timeout: self.connect_timeout, + use_system_proxies: self.use_system_proxies, } } @@ -229,6 +236,18 @@ impl KanidmClientBuilder { verify_hostnames: self.verify_hostnames, ca: self.ca, connect_timeout: Some(secs), + use_system_proxies: self.use_system_proxies, + } + } + + pub fn no_proxy(self) -> Self { + KanidmClientBuilder { + address: self.address, + verify_ca: self.verify_ca, + verify_hostnames: self.verify_hostnames, + ca: self.ca, + connect_timeout: self.connect_timeout, + use_system_proxies: false, } } @@ -242,6 +261,7 @@ impl KanidmClientBuilder { verify_hostnames: self.verify_hostnames, ca: Some(ca), connect_timeout: self.connect_timeout, + use_system_proxies: self.use_system_proxies, }) } @@ -283,6 +303,11 @@ impl KanidmClientBuilder { .danger_accept_invalid_hostnames(!self.verify_hostnames) .danger_accept_invalid_certs(!self.verify_ca); + let client_builder = match self.use_system_proxies { + true => client_builder, + false => client_builder.no_proxy(), + }; + let client_builder = match &self.ca { Some(cert) => client_builder.add_root_certificate(cert.clone()), None => client_builder, diff --git a/kanidm_client/tests/common.rs b/kanidm_client/tests/common.rs index 657184cf1..aa7137fab 100644 --- a/kanidm_client/tests/common.rs +++ b/kanidm_client/tests/common.rs @@ -92,6 +92,7 @@ pub fn run_test(test_fn: fn(KanidmClient) -> ()) { let addr = format!("http://127.0.0.1:{}", port); let rsclient = KanidmClientBuilder::new() .address(addr) + .no_proxy() .build() .expect("Failed to build client"); diff --git a/kanidm_unix_int/tests/cache_layer_test.rs b/kanidm_unix_int/tests/cache_layer_test.rs index 3f14be96e..516befb1a 100644 --- a/kanidm_unix_int/tests/cache_layer_test.rs +++ b/kanidm_unix_int/tests/cache_layer_test.rs @@ -97,17 +97,20 @@ fn run_test(fix_fn: fn(&KanidmClient) -> (), test_fn: fn(CacheLayer, KanidmAsync // Run fixtures let adminclient = KanidmClientBuilder::new() .address(addr.clone()) + .no_proxy() .build() .expect("Failed to build sync client"); fix_fn(&adminclient); let client = KanidmClientBuilder::new() .address(addr.clone()) + .no_proxy() .build_async() .expect("Failed to build async admin client"); let rsclient = KanidmClientBuilder::new() .address(addr) + .no_proxy() .build_async() .expect("Failed to build client");