Skip to content

Commit 5e214b9

Browse files
authored
Merge pull request #23 from certego/exist_filter_bug
fixed bug in exist filter
2 parents 5b33605 + f3b4863 commit 5e214b9

File tree

6 files changed

+85
-2
lines changed

6 files changed

+85
-2
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
## 2.2.x
2+
### 2.2.7
3+
#### Bugfix
4+
* Fixed bug in exist filter
25
### 2.2.6
36
#### Bugfix
47
* Removed error logging in *filters.py*

routing_test.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ def setUp(self):
3939
self.test_event_16 = load_test_data("test_event_16")
4040
self.test_event_17 = load_test_data("test_event_17")
4141
self.test_event_18 = load_test_data("test_event_18")
42+
self.test_event_19 = load_test_data("test_event_19")
4243
self.test_event_with_list_1 = load_test_data("test_event_with_list_1")
4344
self.test_event_with_list_2 = load_test_data("test_event_with_list_2")
4445

@@ -467,6 +468,12 @@ def test_count(self):
467468
self.routing.load_from_dicts(rule_list)
468469
self.assertEqual(self.routing.count(), 5)
469470

471+
def test_exist_source_ip(self):
472+
self.routing.load_from_dicts([load_test_data("test_rule_31_equals_exist")])
473+
match = self.routing.match(self.test_event_19)
474+
self.assertTrue(match)
475+
self.assertDictEqual(match[0].output, {"Workshop": {"workers_needed": 1}})
476+
470477

471478
if __name__ == "__main__":
472479
unittest.main()

routingfilter/filters/filters.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ def match(self, event: DictQuery) -> bool:
6161
:rtype: bool
6262
"""
6363
for key in self._key:
64-
if key in event.keys():
64+
if event.get(key) is not None:
6565
return True
6666
return False
6767

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
setup(
77
name="routingfilter",
8-
version="2.2.6",
8+
version="2.2.7",
99
packages=find_packages(include=["routingfilter", "routingfilter.*"]),
1010
include_package_data=True,
1111
install_requires=["IPy~=1.1", "macaddress~=2.0.2"],

test_data/test_event_19.json

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
{
2+
"tags": [
3+
"elastic_query",
4+
"foobar"
5+
],
6+
"user": {
7+
"name": "mario.rossi"
8+
},
9+
"event": {
10+
"kind": "event",
11+
"type": "start",
12+
"action": "login",
13+
"outcome": "success",
14+
"category": "authentication"
15+
},
16+
"radius": {
17+
"ttl": 17.044188022613525,
18+
"result": "success"
19+
},
20+
"source": {
21+
"ip": "1.1.1.1",
22+
"port": 10402
23+
},
24+
"network": {
25+
"protocol": "radius"
26+
},
27+
"severity": 3,
28+
"reply_msg": "Enter your SecurID OTP or select another method: 1 to Approve on your registered authenticator, 2 for Biometrics"
29+
}
30+
31+
32+
33+
34+
35+
36+
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
{
2+
"streams": {
3+
"rules": {
4+
"elastic_query": [
5+
{
6+
"id": "equals-ffh498",
7+
"filters": [
8+
{
9+
"id": 5540,
10+
"key": [
11+
"tags"
12+
],
13+
"type": "EQUALS",
14+
"value": [
15+
"bar",
16+
"foobar"
17+
]
18+
},
19+
{
20+
"id": 6001,
21+
"key": [
22+
"source.ip"
23+
],
24+
"type": "EXISTS",
25+
"value": []
26+
}
27+
],
28+
"streams": {
29+
"Workshop": {
30+
"workers_needed": 1
31+
}
32+
}
33+
}
34+
]
35+
}
36+
}
37+
}

0 commit comments

Comments
 (0)