added IP whitelisting

This commit is contained in:
Turbootzz committed 2025-10-24 19:30:56 +02:00
1 parent 3055c413ef
commit e48098090d
5 files changed
+295 -14

No files matched your search

+15 -1
View File
@@ -5,6 +5,7 @@ import (
"os"
"os/signal"
"syscall"
"time"
"github.com/gofiber/fiber/v2"
"github.com/gofiber/fiber/v2/middleware/compress"
@@ -15,6 +16,7 @@ import (
"github.com/thijsherman/vaultwarden-api/internal/auth"
"github.com/thijsherman/vaultwarden-api/internal/config"
"github.com/thijsherman/vaultwarden-api/internal/handlers"
"github.com/thijsherman/vaultwarden-api/internal/ipwhitelist"
"github.com/thijsherman/vaultwarden-api/internal/vaultwarden"
"github.com/thijsherman/vaultwarden-api/pkg/logger"
)
@@ -46,12 +48,23 @@ func main() {
logger.Warn.Println("Using provided session token (will expire)")
vaultClient = vaultwarden.NewClient(cfg.VaultwardenURL, cfg.VaultwardenToken, cfg.CacheTTL)
} else {
logger.Error.Fatal("No authentication configured. Set VAULTWARDEN_CLIENT_ID+VAULTWARDEN_CLIENT_SECRET+VAULTWARDEN_PASSWORD")
logger.Error.Fatal("No authentication configured. Set either (VAULTWARDEN_CLIENT_ID + VAULTWARDEN_CLIENT_SECRET + VAULTWARDEN_PASSWORD) or VAULTWARDEN_ACCESS_TOKEN")
}
// Initialize handlers
h := handlers.NewHandler(vaultClient)
// Initialize IP whitelist
ipWhitelist, err := ipwhitelist.New(cfg.AllowedIPs, cfg.EnableGitHubIPRanges)
if err != nil {
logger.Error.Fatalf("Failed to initialize IP whitelist: %v", err)
}
// Start periodic GitHub IP range updates (every 24 hours)
if cfg.EnableGitHubIPRanges {
ipWhitelist.StartPeriodicUpdate(24 * time.Hour)
}
// Create Fiber app with security configurations
app := fiber.New(fiber.Config{
AppName: "Vaultwarden API v1.0",
@@ -66,6 +79,7 @@ func main() {
app.Use(helmet.New())
app.Use(recover.New())
app.Use(ipWhitelist.Middleware())
app.Use(compress.New(compress.Config{
Level: compress.LevelBestSpeed,
}))