mirror of
https://github.com/juspay/hyperswitch.git
synced 2025-10-27 19:46:48 +08:00
fix(router): handle empty body parse failures in bad request logger middleware (#3541)
This commit is contained in:
committed by
GitHub
parent
0d5cd711b2
commit
be22d60dda
@ -258,8 +258,8 @@ pub fn get_application_builder(
|
||||
.wrap(middleware::default_response_headers())
|
||||
.wrap(middleware::RequestId)
|
||||
.wrap(cors::cors())
|
||||
.wrap(middleware::LogSpanInitializer)
|
||||
// this middleware works only for Http1.1 requests
|
||||
.wrap(middleware::Http400RequestDetailsLogger)
|
||||
.wrap(middleware::LogSpanInitializer)
|
||||
.wrap(router_env::tracing_actix_web::TracingLogger::default())
|
||||
}
|
||||
|
||||
@ -258,13 +258,24 @@ where
|
||||
let response = response_fut.await?;
|
||||
// Log the request_details when we receive 400 status from the application
|
||||
if response.status() == 400 {
|
||||
let value: serde_json::Value = serde_json::from_slice(&bytes)?;
|
||||
let request_id = request_id_fut.await?.as_hyphenated().to_string();
|
||||
logger::info!(
|
||||
"request_id: {}, request_details: {}",
|
||||
request_id,
|
||||
get_request_details_from_value(&value, "")
|
||||
);
|
||||
if !bytes.is_empty() {
|
||||
let value_result: Result<serde_json::Value, serde_json::Error> =
|
||||
serde_json::from_slice(&bytes);
|
||||
match value_result {
|
||||
Ok(value) => {
|
||||
logger::info!(
|
||||
"request_id: {request_id}, request_details: {}",
|
||||
get_request_details_from_value(&value, "")
|
||||
);
|
||||
}
|
||||
Err(err) => {
|
||||
logger::warn!("error while parsing the request in json value: {err}");
|
||||
}
|
||||
}
|
||||
} else {
|
||||
logger::info!("request_id: {request_id}, request_details: Empty Body");
|
||||
}
|
||||
}
|
||||
Ok(response)
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user