From 72bca853f7ae100f800792fa5b30bbd85e7c8816 Mon Sep 17 00:00:00 2001 From: Firstyear Date: Sat, 8 Jul 2023 16:37:15 +1000 Subject: [PATCH] Cleanup spa handling (#1825) --- server/core/src/https/oauth2.rs | 30 ++++++++++++++++++++++- server/web_ui/pkg/kanidmd_web_ui_bg.wasm | Bin 1794253 -> 1794487 bytes server/web_ui/src/oauth2.rs | 7 ++++++ 3 files changed, 36 insertions(+), 1 deletion(-) diff --git a/server/core/src/https/oauth2.rs b/server/core/src/https/oauth2.rs index 88eae89c6..32888dc51 100644 --- a/server/core/src/https/oauth2.rs +++ b/server/core/src/https/oauth2.rs @@ -603,7 +603,35 @@ pub async fn oauth2_openid_discovery_get( .qe_r_ref .handle_oauth2_openid_discovery(client_id, kopid.eventid) .await; - to_axum_response(res) + + match res { + Ok(dsc) => { + // Humans may look at this so we pretty it. + #[allow(clippy::unwrap_used)] + let body = serde_json::to_string_pretty(&dsc).unwrap(); + #[allow(clippy::unwrap_used)] + Response::builder() + .status(StatusCode::OK) + .header(ACCESS_CONTROL_ALLOW_ORIGIN, "*") + .body(Body::from(body)) + .unwrap() + } + Err(e) => { + error!(err = ?e, "Unable to access discovery info"); + let body = match serde_json::to_string(&e) { + Ok(val) => val, + Err(e) => { + format!("{:?}", e) + } + }; + #[allow(clippy::unwrap_used)] + Response::builder() + .status(StatusCode::BAD_REQUEST) + .header(ACCESS_CONTROL_ALLOW_ORIGIN, "*") + .body(Body::from(body)) + .unwrap() + } + } } pub async fn oauth2_openid_userinfo_get( diff --git a/server/web_ui/pkg/kanidmd_web_ui_bg.wasm b/server/web_ui/pkg/kanidmd_web_ui_bg.wasm index 38a5486edbb2ccee36c73b35ff71a96cf1089dd3..175596e58ee66154d2bb07e14b55fa83c971347d 100644 GIT binary patch delta 23797 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 D(N<;G diff --git a/server/web_ui/src/oauth2.rs b/server/web_ui/src/oauth2.rs index 342c4bbf1..ef8e40fbc 100644 --- a/server/web_ui/src/oauth2.rs +++ b/server/web_ui/src/oauth2.rs @@ -151,6 +151,13 @@ impl Oauth2App { .set("content-type", "application/json") .expect_throw("failed to set header"); + if let Some(bearer_token) = models::get_bearer_token() { + request + .headers() + .set("authorization", &bearer_token) + .expect_throw("failed to set authorisation header"); + } + let window = utils::window(); let resp_value = JsFuture::from(window.fetch_with_request(&request)).await?; let resp: Response = resp_value.dyn_into().expect_throw("Invalid response type");