diff --git a/src/parser.rs b/src/parser.rs index b663776..44e3571 100644 --- a/src/parser.rs +++ b/src/parser.rs @@ -67,8 +67,11 @@ impl MessageParser for SignatureParser { return None; } - // Skip WEB_CLIENT messages - if line.contains("msg=\"signature:WEB_CLIENT") { + // Skip non-mobile client messages + if line.contains("msg=\"signature:WEB_CLIENT") + || line.contains("msg=\"signature:SYNC_CLIENT") + || line.contains("msg=\"signature:BROWSER_EXTENSION") + { return None; } @@ -575,6 +578,22 @@ mod tests { assert!(registry.parse(line).is_none()); } + #[test] + fn test_sync_client_signature_is_skipped() { + let line = r#"Jan 21 00:00:06 tom013 m1s-kv dt="2026-01-21 00:00:06,154", sessionId=test-789, msg="signature:SYNC_CLIENT/1.2.0/ details:platform:Windows,OS:10.0 user-agent:test", ex=""#; + + let registry = ParserRegistry::new(); + assert!(registry.parse(line).is_none()); + } + + #[test] + fn test_browser_extension_signature_is_skipped() { + let line = r#"Jan 21 00:00:06 tom013 m1s-kv dt="2026-01-21 00:00:06,154", sessionId=test-abc, msg="signature:BROWSER_EXTENSION/3.0.1/ details:browser:Firefox,OS:MacOS user-agent:test", ex=""#; + + let registry = ParserRegistry::new(); + assert!(registry.parse(line).is_none()); + } + #[test] fn test_parse_mobile_client_ios() { let line = r#"Jan 21 00:01:55 tom012.prodfrnt.dsw.loc m1s-kv dt="2026-01-21 00:01:55,573", ll=INFO, lc=com.dswiss.apigateway.domains.user.controllers.UserControllerV1, correlationId=aXAJY9JuqalC5uxAaB6EsgAAALo, applicationName=ApiGateway, msg="MOBILE_CLIENT_LOG: signature:com.dswiss.securesafepass/2.1.0/738D8CD5-28BC-490C-AB02-2C309FA64875 details:sdk-client:IOS,sdk-version:1.4.0,app-name:SecureSafePass,device:iOS,model:iPhone14,4,os:26.2 user-agent:26.2", ex=""#;