From a8b16a66b110ebe03bb330cda2600226a3a862d7 Mon Sep 17 00:00:00 2001 From: registergoofy <70151212+registergoofy@users.noreply.github.com> Date: Tue, 2 Mar 2021 09:25:12 +0100 Subject: [PATCH] truely don't try to send anything with empty online credentials configuration file (#657) * truely don't try to send anything with empty online credentials config file Co-authored-by: AlteredCoder --- pkg/apiserver/apiserver.go | 2 +- pkg/csconfig/config.go | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/pkg/apiserver/apiserver.go b/pkg/apiserver/apiserver.go index 2f7d1e7c4..c4de4bd0a 100644 --- a/pkg/apiserver/apiserver.go +++ b/pkg/apiserver/apiserver.go @@ -118,7 +118,7 @@ func NewServer(config *csconfig.LocalApiServerCfg) (*APIServer, error) { var apiClient *apic - if config.OnlineClient != nil { + if config.OnlineClient != nil && config.OnlineClient.Credentials != nil { log.Printf("Loading CAPI pusher") apiClient, err = NewAPIC(config.OnlineClient, dbClient) if err != nil { diff --git a/pkg/csconfig/config.go b/pkg/csconfig/config.go index 7dd6144a7..1ce89abbd 100644 --- a/pkg/csconfig/config.go +++ b/pkg/csconfig/config.go @@ -81,7 +81,6 @@ func (c *GlobalConfig) LoadConfiguration() error { if err := c.LoadSimulation(); err != nil { return err } - if c.Crowdsec != nil { if c.Crowdsec.AcquisitionFilePath != "" { log.Debugf("non-empty acquisition file path %s", c.Crowdsec.AcquisitionFilePath) @@ -157,7 +156,6 @@ func (c *GlobalConfig) LoadConfiguration() error { apiclient.InsecureSkipVerify = *c.API.Client.InsecureSkipVerify } } - if c.API.Server != nil && !c.DisableAPI { c.API.Server.DbConfig = c.DbConfig c.API.Server.LogDir = c.Common.LogDir @@ -175,10 +173,14 @@ func (c *GlobalConfig) LoadConfiguration() error { if err != nil { return errors.Wrap(err, fmt.Sprintf("failed unmarshaling api server credentials configuration file '%s'", c.API.Server.OnlineClient.CredentialsFilePath)) } - if c.API.Server.OnlineClient.Credentials == nil { - log.Debugf("online credentials not found in '%s', will not use crowdsec api", c.API.Server.OnlineClient.CredentialsFilePath) + if c.API.Server.OnlineClient.Credentials.Login == "" || c.API.Server.OnlineClient.Credentials.Password == "" || c.API.Server.OnlineClient.Credentials.URL == "" { + log.Debugf("can't load CAPI credentials from '%s' (missing field)", c.API.Server.OnlineClient.CredentialsFilePath) + c.API.Server.OnlineClient.Credentials = nil } } + if c.API.Server.OnlineClient == nil || c.API.Server.OnlineClient.Credentials == nil { + log.Printf("push and pull to crowdsec API disabled") + } } return nil