Skip to content

Commit 50fc258

Browse files
authored
Merge pull request #110 from UncoderIO/gis-cortex-add-escape-slash
Cortex XSIAM, add escape to equal_modifier method
2 parents 4b2c89c + a6d985f commit 50fc258

File tree

2 files changed

+14
-11
lines changed

2 files changed

+14
-11
lines changed

uncoder-core/app/translator/platforms/palo_alto/escape_manager.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@
77

88
class XQLEscapeManager(EscapeManager):
99
escape_map: ClassVar[dict[str, list[EscapeDetails]]] = {
10-
ValueType.value: [EscapeDetails(pattern=r'([_!@#$%^&*=+()\[\]{}|;:\'",.<>?/`~\-\s\\])', escape_symbols=r"\\\1")]
10+
ValueType.regex_value: [EscapeDetails(pattern=r'([_!@#$%^&*=+()\[\]{}|;:\'",.<>?/`~\-\s\\])', escape_symbols=r"\\\1")],
11+
ValueType.value: [EscapeDetails(pattern=r'([\\])', escape_symbols=r"\\\1")],
12+
1113
}
1214

1315

uncoder-core/app/translator/platforms/palo_alto/renders/cortex_xsiam.py

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
from typing import Union
2020

2121
from app.translator.const import DEFAULT_VALUE_TYPE
22+
from app.translator.core.custom_types.values import ValueType
2223
from app.translator.core.exceptions.render import UnsupportedRenderMethod
2324
from app.translator.core.models.platform_details import PlatformDetails
2425
from app.translator.core.render import BaseQueryFieldValue, PlatformQueryRender
@@ -38,11 +39,11 @@ class CortexXSIAMFieldValue(BaseQueryFieldValue):
3839

3940
def equal_modifier(self, field: str, value: DEFAULT_VALUE_TYPE) -> str:
4041
if isinstance(value, list):
41-
values = ", ".join(f'"{v}"' for v in value)
42+
values = ", ".join(f'"{self.apply_value(v)}"' for v in value)
4243
return f"{field} in ({values})"
4344
if isinstance(value, int):
4445
return f"{field} = {value}"
45-
return f'{field} = "{value}"'
46+
return f'{field} = "{self.apply_value(value)}"'
4647

4748
def less_modifier(self, field: str, value: Union[int, str]) -> str:
4849
return f"{field} < {value}"
@@ -59,30 +60,30 @@ def greater_or_equal_modifier(self, field: str, value: Union[int, str]) -> str:
5960
def not_equal_modifier(self, field: str, value: DEFAULT_VALUE_TYPE) -> str:
6061
if isinstance(value, list):
6162
return f"({self.or_token.join([self.not_equal_modifier(field=field, value=v) for v in value])})"
62-
return f'{field} != "{value}"'
63+
return f'{field} != "{self.apply_value(value)}"'
6364

6465
def contains_modifier(self, field: str, value: DEFAULT_VALUE_TYPE) -> str:
6566
if isinstance(value, list):
6667
return f"({self.or_token.join(self.contains_modifier(field=field, value=v) for v in value)})"
67-
return f'{field} contains "{value}"'
68+
return f'{field} contains "{self.apply_value(value)}"'
6869

6970
def endswith_modifier(self, field: str, value: DEFAULT_VALUE_TYPE) -> str:
7071
if isinstance(value, list):
7172
return (
72-
f"({self.or_token.join(self.endswith_modifier(field=field, value=self.apply_value(v)) for v in value)})"
73+
f"({self.or_token.join(self.endswith_modifier(field=field, value=v) for v in value)})"
7374
)
74-
return f'{field} ~= ".*{self.apply_value(value)}"'
75+
return f'{field} ~= ".*{self.apply_value(value, value_type=ValueType.regex_value)}"'
7576

7677
def startswith_modifier(self, field: str, value: DEFAULT_VALUE_TYPE) -> str:
7778
if isinstance(value, list):
78-
clause = self.or_token.join(self.startswith_modifier(field=field, value=self.apply_value(v)) for v in value)
79+
clause = self.or_token.join(self.startswith_modifier(field=field, value=v) for v in value)
7980
return f"({clause})"
80-
return f'{field} ~= "{self.apply_value(value)}.*"'
81+
return f'{field} ~= "{self.apply_value(value, value_type=ValueType.regex_value)}.*"'
8182

8283
def regex_modifier(self, field: str, value: DEFAULT_VALUE_TYPE) -> str:
8384
if isinstance(value, list):
84-
return f"({self.or_token.join(self.regex_modifier(field=field, value=self.apply_value(v)) for v in value)})"
85-
return f'{field} ~= "{self.apply_value(value)}"'
85+
return f"({self.or_token.join(self.regex_modifier(field=field, value=v) for v in value)})"
86+
return f'{field} ~= "{self.apply_value(value, value_type=ValueType.regex_value)}"'
8687

8788
def is_none(self, field: str, value: DEFAULT_VALUE_TYPE) -> str:
8889
if isinstance(value, list):

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy