diff --git a/cmd/crowdsec-cli/require/require.go b/cmd/crowdsec-cli/require/require.go index 6daf397c8..7a29ccd36 100644 --- a/cmd/crowdsec-cli/require/require.go +++ b/cmd/crowdsec-cli/require/require.go @@ -26,14 +26,6 @@ func CAPI(c *csconfig.Config) error { } func PAPI(c *csconfig.Config) error { - if err := LAPI(c); err != nil { - return err - } - - if err := CAPI(c); err != nil { - return err - } - if c.API.Server.OnlineClient.Credentials.PapiURL == "" { return fmt.Errorf("no PAPI URL in configuration") } @@ -41,10 +33,6 @@ func PAPI(c *csconfig.Config) error { } func Enrolled(c *csconfig.Config) error { - if err := CAPI(c); err != nil { - return err - } - if c.API.Server.OnlineClient.Credentials == nil { return fmt.Errorf("the Central API (CAPI) must be configured with 'cscli capi register'") } @@ -60,10 +48,6 @@ func DB(c *csconfig.Config) error { } func Profiles(c *csconfig.Config) error { - if err := LAPI(c); err != nil { - return err - } - if err := c.API.Server.LoadProfiles(); err != nil { return fmt.Errorf("while loading profiles: %w", err) } @@ -72,10 +56,6 @@ func Profiles(c *csconfig.Config) error { } func Notifications(c *csconfig.Config) error { - if err := LAPI(c); err != nil { - return err - } - if c.ConfigPaths.NotificationDir == "" { return fmt.Errorf("config_paths.notification_dir is not set in crowdsec config") } diff --git a/pkg/csconfig/api.go b/pkg/csconfig/api.go index 00792f47c..b6b17678d 100644 --- a/pkg/csconfig/api.go +++ b/pkg/csconfig/api.go @@ -268,9 +268,11 @@ func (c *Config) LoadAPIServer() error { return fmt.Errorf("loading online client credentials: %w", err) } } + if c.API.Server.OnlineClient == nil || c.API.Server.OnlineClient.Credentials == nil { log.Printf("push and pull to Central API disabled") } + if err := c.LoadDBConfig(); err != nil { return err } @@ -286,37 +288,34 @@ func (c *Config) LoadAPIServer() error { if err := c.LoadCommon(); err != nil { return fmt.Errorf("loading common configuration: %s", err) } + c.API.Server.LogDir = c.Common.LogDir c.API.Server.LogMedia = c.Common.LogMedia c.API.Server.CompressLogs = c.Common.CompressLogs c.API.Server.LogMaxSize = c.Common.LogMaxSize c.API.Server.LogMaxAge = c.Common.LogMaxAge c.API.Server.LogMaxFiles = c.Common.LogMaxFiles + if c.API.Server.UseForwardedForHeaders && c.API.Server.TrustedProxies == nil { c.API.Server.TrustedProxies = &[]string{"0.0.0.0/0"} } + if c.API.Server.TrustedProxies != nil { c.API.Server.UseForwardedForHeaders = true } + if err := c.API.Server.LoadProfiles(); err != nil { return fmt.Errorf("while loading profiles for LAPI: %w", err) } + if c.API.Server.ConsoleConfigPath == "" { c.API.Server.ConsoleConfigPath = DefaultConsoleConfigFilePath } + if err := c.API.Server.LoadConsoleConfig(); err != nil { return fmt.Errorf("while loading console options: %w", err) } - if c.API.Server.OnlineClient != nil && c.API.Server.OnlineClient.CredentialsFilePath != "" { - if err := c.API.Server.OnlineClient.Load(); err != nil { - return fmt.Errorf("loading online client credentials: %w", err) - } - } - if c.API.Server.OnlineClient == nil || c.API.Server.OnlineClient.Credentials == nil { - log.Printf("push and pull to Central API disabled") - } - if c.API.CTI != nil { if err := c.API.CTI.Load(); err != nil { return fmt.Errorf("loading CTI configuration: %w", err)