INNER CODE UNIT · Rust
audit_middleware
ovexro/dockpanel · panel/agent/src/routes/mod.rs:252
pub async fn audit_middleware(
request: Request,
next: Next,
) -> Response {
let method = request.method().clone();
// Only audit state-modifying methods
if method != Method::POST && method != Method::PUT && method != Method::DELETE {
return next.run(request).await;
}
let path = request.uri().path().to_string();
let source_ip = request
.headers()
.get("x-forwarded-for")
.or_else(|| request.headers().get("x-real-ip"))
.and_then(|v| v.to_str().ok())
.unwrap_or("unknown")