Skip to content

Commit

Permalink
feat: allow using no auth, or bearer auth too
Browse files Browse the repository at this point in the history
  • Loading branch information
ctron committed Jul 8, 2022
1 parent d7ff069 commit 9c016c0
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 14 deletions.
8 changes: 4 additions & 4 deletions src/config.rs
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,8 @@ pub struct KafkaConfig {
pub struct WebsocketConfig {
pub drogue_endpoint: String,
pub drogue_app: String,
pub drogue_user: String,
pub drogue_token: String,
pub drogue_user: Option<String>,
pub drogue_token: Option<String>,
}

#[derive(Clone, Debug, Deserialize)]
Expand Down Expand Up @@ -175,8 +175,8 @@ mod test {
Mode::Websocket(WebsocketConfig {
drogue_app: "app".into(),
drogue_endpoint: "endpoint".into(),
drogue_user: "user".into(),
drogue_token: "token".into(),
drogue_user: Some("user".into()),
drogue_token: Some("token".into()),
})
);
}
Expand Down
28 changes: 18 additions & 10 deletions src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -126,16 +126,24 @@ async fn kafka(config: KafkaConfig, sender: Sender) -> Result<()> {
async fn websocket(config: WebsocketConfig, sender: Sender) -> Result<()> {
let url = format!("{}/{}", config.drogue_endpoint, config.drogue_app);

let request = Request::builder()
.uri(url)
.header(
header::AUTHORIZATION,
format!(
"Basic {}",
base64::encode(format!("{}:{}", config.drogue_user, config.drogue_token))
),
)
.body(())?;
let mut request = Request::builder().uri(url);
match (&config.drogue_user, &config.drogue_token) {
(Some(user), Some(token)) => {
request = request.header(
header::AUTHORIZATION,
format!("Basic {}", base64::encode(format!("{}:{}", user, token))),
);
}
(None, Some(token)) => {
request = request.header(header::AUTHORIZATION, format!("Bearer {}", token));
}
(None, None) => {}
(Some(_), None) => {
bail!("Invalid combination: username present, but password is missing. You can set an empty password by providing an empty string.");
}
}

let request = request.body(())?;

log::info!("Connecting to websocket with request : {:?}", request);
let (mut socket, response) =
Expand Down

0 comments on commit 9c016c0

Please sign in to comment.