diff options
author | Alex Auvolat <lx@deuxfleurs.fr> | 2025-01-28 18:15:36 +0100 |
---|---|---|
committer | Alex Auvolat <lx@deuxfleurs.fr> | 2025-01-29 19:26:16 +0100 |
commit | 4cb45bd398afd7966cec5d4dfa4dd325c114f93c (patch) | |
tree | 26373ab1007c21ff6fe810b64f74559710e115ad /src/api/admin/api_server.rs | |
parent | d5ad797ad762dee4fc1244ad15fbee208ae58480 (diff) | |
download | garage-4cb45bd398afd7966cec5d4dfa4dd325c114f93c.tar.gz garage-4cb45bd398afd7966cec5d4dfa4dd325c114f93c.zip |
admin api: fix CORS to work in browser
Diffstat (limited to 'src/api/admin/api_server.rs')
-rw-r--r-- | src/api/admin/api_server.rs | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/api/admin/api_server.rs b/src/api/admin/api_server.rs index 82337b7e..92da3245 100644 --- a/src/api/admin/api_server.rs +++ b/src/api/admin/api_server.rs @@ -4,7 +4,7 @@ use std::sync::Arc; use argon2::password_hash::PasswordHash; use async_trait::async_trait; -use http::header::AUTHORIZATION; +use http::header::{HeaderValue, ACCESS_CONTROL_ALLOW_ORIGIN, AUTHORIZATION}; use hyper::{body::Incoming as IncomingBody, Request, Response, StatusCode}; use tokio::sync::watch; @@ -134,6 +134,8 @@ impl ApiHandler for AdminApiServer { Endpoint::New(_) => AdminApiRequest::from_request(req).await?, }; + info!("Admin request: {}", request.name()); + let required_auth_hash = match request.authorization_type() { Authorization::None => None, @@ -162,7 +164,10 @@ impl ApiHandler for AdminApiServer { AdminApiRequest::Metrics(_req) => self.handle_metrics(), req => { let res = req.handle(&self.garage).await?; - json_ok_response(&res) + let mut res = json_ok_response(&res)?; + res.headers_mut() + .insert(ACCESS_CONTROL_ALLOW_ORIGIN, HeaderValue::from_static("*")); + Ok(res) } } } |