mirror of
				https://github.com/juspay/hyperswitch.git
				synced 2025-10-31 10:06:32 +08:00 
			
		
		
		
	fix(router): handle empty body parse failures in bad request logger middleware (#3541)
This commit is contained in:
		 Sai Harsha Vardhan
					Sai Harsha Vardhan
				
			
				
					committed by
					
						 GitHub
						GitHub
					
				
			
			
				
	
			
			
			 GitHub
						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