- Updated `crowdsec_handler.go` to log inaccessible paths during config export and handle permission errors gracefully. - Modified `emergency_handler.go` to clear admin whitelist during security reset and ensure proper updates to security configurations. - Enhanced user password update functionality in `user_handler.go` to reset failed login attempts and lockout status. - Introduced rate limiting middleware in `cerberus` to manage request rates and prevent abuse, with comprehensive tests for various scenarios. - Added validation for proxy host entries in `proxyhost_service.go` to ensure valid hostnames and IP addresses, including tests for various cases. - Improved IP matching logic in `whitelist.go` to support both IPv4 and IPv6 loopback addresses. - Updated configuration loading in `config.go` to include rate limiting parameters from environment variables. - Added tests for new functionalities and validations to ensure robustness and reliability.
39 lines
688 B
Go
39 lines
688 B
Go
//go:build ignore
|
|
// +build ignore
|
|
|
|
package main
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
"testing"
|
|
)
|
|
|
|
func TestSeedMain_CreatesDatabaseFile(t *testing.T) {
|
|
wd, err := os.Getwd()
|
|
if err != nil {
|
|
t.Fatalf("getwd: %v", err)
|
|
}
|
|
|
|
tmp := t.TempDir()
|
|
if err := os.Chdir(tmp); err != nil {
|
|
t.Fatalf("chdir: %v", err)
|
|
}
|
|
t.Cleanup(func() { _ = os.Chdir(wd) })
|
|
|
|
if err := os.MkdirAll("data", 0o755); err != nil {
|
|
t.Fatalf("mkdir data: %v", err)
|
|
}
|
|
|
|
main()
|
|
|
|
dbPath := filepath.Join("data", "charon.db")
|
|
info, err := os.Stat(dbPath)
|
|
if err != nil {
|
|
t.Fatalf("expected db file to exist at %s: %v", dbPath, err)
|
|
}
|
|
if info.Size() == 0 {
|
|
t.Fatalf("expected db file to be non-empty")
|
|
}
|
|
}
|