From 07d463f4f002e2ba2f90c43339dff00fb9dc876e Mon Sep 17 00:00:00 2001 From: Sebastien Blot Date: Fri, 10 Nov 2023 17:56:04 +0100 Subject: [PATCH] up --- cmd/crowdsec/crowdsec.go | 2 +- pkg/acquisition/modules/waap/waap.go | 9 +-------- pkg/waf/loader.go | 10 +++++----- pkg/waf/waap.go | 11 +++++------ pkg/waf/waap_rules_collection.go | 8 -------- 5 files changed, 12 insertions(+), 28 deletions(-) diff --git a/cmd/crowdsec/crowdsec.go b/cmd/crowdsec/crowdsec.go index 39378fab5..686d32f20 100644 --- a/cmd/crowdsec/crowdsec.go +++ b/cmd/crowdsec/crowdsec.go @@ -34,7 +34,7 @@ func initCrowdsec(cConfig *csconfig.Config, hub *cwhub.Hub) (*parser.Parsers, er return nil, fmt.Errorf("while loading scenarios: %w", err) } - if err := waf.LoadWaapRules(); err != nil { + if err := waf.LoadWaapRules(hub); err != nil { return nil, fmt.Errorf("while loading waap rules: %w", err) } diff --git a/pkg/acquisition/modules/waap/waap.go b/pkg/acquisition/modules/waap/waap.go index 9561d8959..92363b2e3 100644 --- a/pkg/acquisition/modules/waap/waap.go +++ b/pkg/acquisition/modules/waap/waap.go @@ -7,7 +7,6 @@ import ( "net/http" "github.com/crowdsecurity/crowdsec/pkg/acquisition/configuration" - "github.com/crowdsecurity/crowdsec/pkg/cwhub" "github.com/crowdsecurity/crowdsec/pkg/types" "github.com/crowdsecurity/crowdsec/pkg/waf" "github.com/crowdsecurity/go-cs-lib/trace" @@ -159,12 +158,6 @@ func (w *WaapSource) Configure(yamlConfig []byte, logger *log.Entry) error { w.WaapRunners = make([]WaapRunner, w.config.Routines) - hub, err := cwhub.GetHub() - - if err != nil { - return fmt.Errorf("unable to load hub : %s", err) - } - for nbRoutine := 0; nbRoutine < w.config.Routines; nbRoutine++ { wafUUID := uuid.New().String() @@ -178,7 +171,7 @@ func (w *WaapSource) Configure(yamlConfig []byte, logger *log.Entry) error { }), WaapRuntime: &wrt, } - err := runner.Init(hub.GetDataDir()) + err := runner.Init(waapCfg.GetDataDir()) if err != nil { return fmt.Errorf("unable to initialize runner : %s", err) } diff --git a/pkg/waf/loader.go b/pkg/waf/loader.go index 5acc136fc..ffddea121 100644 --- a/pkg/waf/loader.go +++ b/pkg/waf/loader.go @@ -11,11 +11,11 @@ import ( var waapRules map[string]WaapCollectionConfig = make(map[string]WaapCollectionConfig) //FIXME: would probably be better to have a struct for this -func LoadWaapRules() error { - hub, err := cwhub.GetHub() - if err != nil { - return fmt.Errorf("unable to load hub : %s", err) - } +var hub *cwhub.Hub //FIXME: this is a temporary hack to make the hub available in the package + +func LoadWaapRules(hubInstance *cwhub.Hub) error { + + hub = hubInstance for _, hubWafRuleItem := range hub.GetItemMap(cwhub.WAAP_RULES) { //log.Infof("loading %s", hubWafRuleItem.LocalPath) diff --git a/pkg/waf/waap.go b/pkg/waf/waap.go index 7cede9df2..5dfa7a62c 100644 --- a/pkg/waf/waap.go +++ b/pkg/waf/waap.go @@ -149,11 +149,6 @@ func (wc *WaapConfig) LoadByPath(file string) error { } func (wc *WaapConfig) Load(configName string) error { - hub, err := cwhub.GetHub() - if err != nil { - return fmt.Errorf("unable to load hub : %s", err) - } - waapConfigs := hub.GetItemMap(cwhub.WAAP_CONFIGS) for _, hubWaapConfigItem := range waapConfigs { @@ -164,7 +159,7 @@ func (wc *WaapConfig) Load(configName string) error { continue } wc.Logger.Infof("loading %s", hubWaapConfigItem.LocalPath) - err = wc.LoadByPath(hubWaapConfigItem.LocalPath) + err := wc.LoadByPath(hubWaapConfigItem.LocalPath) if err != nil { return fmt.Errorf("unable to load waap-config %s : %s", hubWaapConfigItem.LocalPath, err) } @@ -174,6 +169,10 @@ func (wc *WaapConfig) Load(configName string) error { return fmt.Errorf("no waap-config found for %s", configName) } +func (wc *WaapConfig) GetDataDir() string { + return hub.GetDataDir() +} + func (wc *WaapConfig) Build() (*WaapRuntimeConfig, error) { ret := &WaapRuntimeConfig{} ret.Name = wc.Name diff --git a/pkg/waf/waap_rules_collection.go b/pkg/waf/waap_rules_collection.go index 7d96549ff..472cd494c 100644 --- a/pkg/waf/waap_rules_collection.go +++ b/pkg/waf/waap_rules_collection.go @@ -1,13 +1,11 @@ package waf import ( - "fmt" "os" "path/filepath" "strings" corazatypes "github.com/crowdsecurity/coraza/v3/types" - "github.com/crowdsecurity/crowdsec/pkg/cwhub" "github.com/crowdsecurity/crowdsec/pkg/waf/waap_rule" log "github.com/sirupsen/logrus" @@ -48,12 +46,6 @@ type RulesDetails struct { var WaapRulesDetails = make(map[int]RulesDetails) func LoadCollection(pattern string) ([]WaapCollection, error) { - - hub, err := cwhub.GetHub() - if err != nil { - return nil, fmt.Errorf("unable to load hub : %s", err) - } - ret := make([]WaapCollection, 0) for _, waapRule := range waapRules {