diff --git a/src/client/request.rs b/src/client/request.rs index 76fb1be59..73a805528 100644 --- a/src/client/request.rs +++ b/src/client/request.rs @@ -12,6 +12,7 @@ use serde::Serialize; use serde_json; use serde_urlencoded; use url::Url; +use base64::encode; use super::connector::{ClientConnector, Connection}; use super::pipeline::SendRequest; @@ -484,6 +485,29 @@ impl ClientRequestBuilder { self } + /// Set HTTP basic authorization + pub fn basic_auth(&mut self, username: U, password: Option
) -> &mut Self
+ where
+ U: fmt::Display,
+ P: fmt::Display,
+ {
+ let auth = match password {
+ Some(password) => format!("{}:{}", username, password),
+ None => format!("{}", username)
+ };
+ let header_value = format!("Basic {}", encode(&auth));
+ self.header(header::AUTHORIZATION, &*header_value)
+ }
+
+ /// Set HTTP bearer authentication
+ pub fn bearer_auth