From 169e39a4a952eb0ccb9141ca8cfe7803e088c2a5 Mon Sep 17 00:00:00 2001 From: Sebastien Blot Date: Tue, 5 Dec 2023 17:22:51 +0100 Subject: [PATCH] fix log level propagation + log requests to the appsec engine --- pkg/acquisition/modules/appsec/appsec.go | 10 +++------- pkg/appsec/appsec.go | 4 ++-- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/pkg/acquisition/modules/appsec/appsec.go b/pkg/acquisition/modules/appsec/appsec.go index 47ebf2e75..e30f0e35e 100644 --- a/pkg/acquisition/modules/appsec/appsec.go +++ b/pkg/acquisition/modules/appsec/appsec.go @@ -97,11 +97,6 @@ func (wc *AppsecSource) UnmarshalConfig(yamlConfig []byte) error { return errors.Wrap(err, "Cannot parse appsec configuration") } - if wc.config.LogLevel == nil { - level := new(log.Level) - *level = log.InfoLevel - wc.config.LogLevel = level - } if wc.config.ListenAddr == "" { wc.config.ListenAddr = "127.0.0.1:7422" } @@ -152,7 +147,6 @@ func (w *AppsecSource) Configure(yamlConfig []byte, logger *log.Entry) error { return errors.Wrap(err, "unable to parse appsec configuration") } w.logger = logger - w.logger.Logger.SetLevel(*w.config.LogLevel) w.logger.Tracef("Appsec configuration: %+v", w.config) @@ -222,7 +216,6 @@ func (w *AppsecSource) Configure(yamlConfig []byte, logger *log.Entry) error { //We donĀ“t use the wrapper provided by coraza because we want to fully control what happens when a rule match to send the information in crowdsec w.mux.HandleFunc(w.config.Path, w.appsecHandler) - return nil } @@ -316,6 +309,9 @@ func (w *AppsecSource) IsAuth(apiKey string) bool { // should this be in the runner ? func (w *AppsecSource) appsecHandler(rw http.ResponseWriter, r *http.Request) { + + w.logger.Debugf("Received request from '%s' on %s", r.RemoteAddr, r.URL.Path) + apiKey := r.Header.Get(appsec.APIKeyHeaderName) clientIP := r.Header.Get(appsec.IPHeaderName) remoteIP := r.RemoteAddr diff --git a/pkg/appsec/appsec.go b/pkg/appsec/appsec.go index 7f8cba53e..8fe1412f7 100644 --- a/pkg/appsec/appsec.go +++ b/pkg/appsec/appsec.go @@ -157,10 +157,10 @@ func (wc *AppsecConfig) LoadByPath(file string) error { return fmt.Errorf("name cannot be empty") } if wc.LogLevel == nil { - lvl := log.InfoLevel + lvl := wc.Logger.Logger.GetLevel() wc.LogLevel = &lvl } - wc.Logger = wc.Logger.WithField("name", wc.Name) + wc.Logger = wc.Logger.Dup().WithField("name", wc.Name) wc.Logger.Logger.SetLevel(*wc.LogLevel) if wc.DefaultRemediation == "" { return fmt.Errorf("default_remediation cannot be empty")