40 lines
1.2 KiB
Python
40 lines
1.2 KiB
Python
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"
|
|
firewall_log = True
|
|
|
|
status_code = 200
|
|
outputs["firewall_allowed"] = []
|
|
for item in outputs[listener.recursive["source"]]:
|
|
resolved = resolveItem(listener, item)
|
|
|
|
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
|
|
from core.execution.createthread import buildThread
|
|
|
|
#response = executeRequest(filter["execute"], outputs, resolved)
|
|
thread = buildThread(filter["execute"])
|
|
|
|
if firewall_log:
|
|
logging.info(filter.get("print"))
|
|
logging.info(f"Returning status_code: {status_code}")
|
|
continue
|
|
|
|
outputs["firewall_allowed"].append(item)
|
|
|
|
if outputs["firewall_allowed"] != []:
|
|
return True, status_code
|
|
|
|
#Needs to be present to prevent TypeError
|
|
return False, status_code |