INNER CODE UNIT · Rust
enforce_bearer
gluesql/glues · server/src/lib.rs:161
async fn enforce_bearer(
token: Arc<String>,
req: Request<Body>,
next: Next,
) -> Result<Response, StatusCode> {
if req.method() == Method::OPTIONS {
return Ok(next.run(req).await);
}
let Some(header) = req.headers().get(AUTHORIZATION) else {
return Err(StatusCode::UNAUTHORIZED);
};
let Ok(value) = header.to_str() else {
return Err(StatusCode::UNAUTHORIZED);
};
let Some(provided) = value.strip_prefix("Bearer ").map(str::trim) else {
return Err(StatusCode::UNAUTHORIZED);
};