From bcb89ef009d7017266eb0002cb99b71441b0c846 Mon Sep 17 00:00:00 2001 From: 0xboobface <0xboobface@gmail.com> Date: Mon, 10 Dec 2018 15:44:15 +0100 Subject: [PATCH] Add event processing system to the server Similar to the events and actions in the client you can add event listeners on the server. Easiest way to create them is to run ctbrec in standalone mode and then create the event on the settings tab. Afterwards you can copy the event handler from the client settings file to the server settings. --- .../java/ctbrec/recorder/server/HttpServer.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/server/src/main/java/ctbrec/recorder/server/HttpServer.java b/server/src/main/java/ctbrec/recorder/server/HttpServer.java index ab07dabc..60c2dadc 100644 --- a/server/src/main/java/ctbrec/recorder/server/HttpServer.java +++ b/server/src/main/java/ctbrec/recorder/server/HttpServer.java @@ -17,6 +17,9 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import ctbrec.Config; +import ctbrec.event.EventBusHolder; +import ctbrec.event.EventHandler; +import ctbrec.event.EventHandlerConfiguration; import ctbrec.recorder.LocalRecorder; import ctbrec.recorder.OnlineMonitor; import ctbrec.recorder.Recorder; @@ -51,6 +54,8 @@ public class HttpServer { addShutdownHook(); // for graceful termination + registerAlertSystem(); + config = Config.getInstance(); if(config.getSettings().key != null) { LOG.info("HMAC authentication is enabled"); @@ -133,6 +138,15 @@ public class HttpServer { } } + private void registerAlertSystem() { + for (EventHandlerConfiguration config : Config.getInstance().getSettings().eventHandlers) { + EventHandler handler = new EventHandler(config); + EventBusHolder.register(handler); + LOG.debug("Registered event handler for {} {}", config.getEvent(), config.getName()); + } + LOG.debug("Alert System registered"); + } + public static void main(String[] args) throws Exception { new HttpServer(); }