2022-05-24 14:11:49 +02:00
|
|
|
<?php
|
|
|
|
include_once APP . 'Model/WorkflowModules/WorkflowBaseModule.php';
|
|
|
|
|
|
|
|
class Module_misp_module extends WorkflowBaseModule
|
|
|
|
{
|
2022-06-01 08:22:26 +02:00
|
|
|
public $is_misp_module = true;
|
2022-05-24 14:11:49 +02:00
|
|
|
public $id = 'misp-module';
|
|
|
|
public $name = 'misp-module';
|
|
|
|
public $description = 'misp-module';
|
|
|
|
public $icon = 'python';
|
|
|
|
public $icon_class = 'fab';
|
|
|
|
public $inputs = 1;
|
|
|
|
public $outputs = 0;
|
|
|
|
public $params = [];
|
|
|
|
|
|
|
|
/** @var Module */
|
|
|
|
private $Module;
|
|
|
|
private $misp_module_config;
|
|
|
|
|
|
|
|
public function __construct($misp_module_config)
|
|
|
|
{
|
|
|
|
parent::__construct();
|
2022-05-30 14:34:45 +02:00
|
|
|
$this->id = Inflector::underscore($misp_module_config['name']);
|
2022-05-24 14:11:49 +02:00
|
|
|
$this->name = $misp_module_config['name'];
|
|
|
|
$this->description = $misp_module_config['meta']['description'];
|
|
|
|
if (!empty($misp_module_config['meta']['icon'])) {
|
|
|
|
$this->icon = $misp_module_config['meta']['icon'];
|
|
|
|
}
|
|
|
|
$this->icon_class = $misp_module_config['meta']['icon_class'] ?? '';
|
|
|
|
if (!empty($misp_module_config['meta']['inputs'])) {
|
|
|
|
$this->inputs = (int)$misp_module_config['meta']['inputs'];
|
|
|
|
}
|
|
|
|
if (!empty($misp_module_config['meta']['outputs'])) {
|
|
|
|
$this->inputs = (int)$misp_module_config['meta']['outputs'];
|
|
|
|
}
|
|
|
|
if (!empty($misp_module_config['meta']['config'])) {
|
|
|
|
$this->params = $misp_module_config['meta']['config'];
|
|
|
|
}
|
|
|
|
$this->Module = ClassRegistry::init('Module');
|
|
|
|
}
|
|
|
|
|
2022-05-30 14:34:45 +02:00
|
|
|
public function exec(array $node, WorkflowRoamingData $roamingData, array &$errors=[]): bool
|
2022-05-24 14:11:49 +02:00
|
|
|
{
|
2022-05-25 16:25:00 +02:00
|
|
|
parent::exec($node, $roamingData);
|
2022-05-24 15:25:58 +02:00
|
|
|
$postData = ['module' => $this->name];
|
|
|
|
$postData['data'] = ['post-data' => 'test-' . time()];
|
2022-05-24 14:11:49 +02:00
|
|
|
$result = $this->Module->queryModuleServer($postData, false, 'Action', false);
|
2022-05-24 15:25:58 +02:00
|
|
|
$message = [
|
|
|
|
"Got result from $this->name" => json_encode($result)
|
|
|
|
];
|
|
|
|
$this->push_zmq($message);
|
2022-05-24 15:59:41 +02:00
|
|
|
return true;
|
2022-05-24 14:11:49 +02:00
|
|
|
}
|
|
|
|
}
|