diff --git a/src/transports/ws.rs b/src/transports/ws.rs index 7c2b7381..84f66094 100644 --- a/src/transports/ws.rs +++ b/src/transports/ws.rs @@ -139,6 +139,27 @@ impl WsServerTask { resource ); let mut client = Client::new(socket, host, &resource); + let maybe_encoded = url.password().map(|password| { + use headers::authorization::{Authorization, Credentials}; + Authorization::basic(url.username(), password) + .0 + .encode() + .as_bytes() + .to_vec() + }); + + let headers = if let Some(ref head) = maybe_encoded { + Some([soketto::handshake::client::Header { + name: "Authorization", + value: &head, + }]) + } else { + None + }; + + if let Some(ref head) = headers { + client.set_headers(head); + } let handshake = client.handshake(); let (sender, receiver) = match handshake.await? { ServerResponse::Accepted { .. } => client.into_builder().finish(),