Refined firewall by adding resolved. Added dictionary vs list handling in resolved.

This commit is contained in:
Lyncoln
2026-10-28 22:01:35 -04:00
parent a6bd89bb7e
commit 8fc85db44a
3 changed files with 41 additions and 5 deletions
+9 -1
View File
@@ -2,6 +2,8 @@ import os
import logging
from core.runtime.applyconditions import applyConditions
from core.runtime.resolver import resolveItem
def buildFirewall(listener, outputs):
#firewall_log = os.environ.get("LOGS_FIREWALL", "false").lower() == "true"
@@ -10,11 +12,17 @@ def buildFirewall(listener, outputs):
status_code = 200
outputs["firewall_allowed"] = []
for item in outputs[listener.recursive["source"]]:
resolved = resolveItem(listener, item)
match, filter = applyConditions(listener, item, outputs)
match, filter = applyConditions(listener, resolved, outputs)
if match:
status_code = filter.get("status_code", 200)
if filter.get("execute", False):
from core.apirequest.execute import executeRequest
response, outputs = executeRequest(filter["execute"], outputs, resolved)
if firewall_log:
logging.info(filter.get("print"))
logging.info(f"Returning status_code: {status_code}")
+7 -3
View File
@@ -1,15 +1,19 @@
import os
def resolveItem(action, item):
resolver_log = os.environ.get("LOGS_RESOLVER", "false").lower() == "true"
#resolver_log = os.environ.get("LOGS_RESOLVER", "false").lower() == "true"
resolver_log = True
resolved = {}
if hasattr(action, "resolve"):
for label, keys in action.resolve["get"].items():
target = item
try:
for key in keys:
target = target[key]
for key in keys:
if isinstance(target, dict):
target = target.get(key)
else:
target = target[key]
except (KeyError, IndexError) as error:
if resolver_log: