Browse Source

增强 MessageValidationStep 异常处理:1) 将 throw 替换为 PipelineException 2) 添加 input.Data 安全验证和字符串转换 3) 增强错误日志记录

feature/x1-web-request
root 1 week ago
parent
commit
f5d08d8d90
  1. 18
      src/X1.WebSocket/Pipeline/Steps/MessageValidationStep.cs

18
src/X1.WebSocket/Pipeline/Steps/MessageValidationStep.cs

@ -28,8 +28,22 @@ public class MessageValidationStep : IPipelineStep<WebSocketMessage, WebSocketMe
}
catch (Exception ex)
{
_logger.LogError(ex, "Message validation failed for connection {ConnectionId}", input.ConnectionId);
throw;
var messageData = "null or empty";
if (input.Data != null && input.Data.Length > 0)
{
try
{
messageData = System.Text.Encoding.UTF8.GetString(input.Data);
}
catch (Exception encodingEx)
{
messageData = $"Encoding error: {encodingEx.Message}";
}
}
_logger.LogError(ex, "Message validation failed for connection {ConnectionId}, message data: {MessageData}",
input.ConnectionId, messageData);
throw new PipelineException($"Message validation failed: {ex.Message}", ex);
}
}

Loading…
Cancel
Save