use crate::context::RequestContext; use axum::extract::Request; use axum::middleware::Next; use axum::response::Response; pub async fn inject_request_context(mut request: Request, next: Next) -> Response { let context = RequestContext::from_http_parts(request.method(), request.uri(), request.headers()); request.extensions_mut().insert(context.clone()); let mut response = next.run(request).await; if context.trace.path == "/api/auth" { context.apply_trace_response_headers(response.headers_mut()); } else { context.apply_response_headers(response.headers_mut()); } response }