From 93f882e460db7ac20dcf08f94b554ca3a1a5d6b1 Mon Sep 17 00:00:00 2001 From: Stavros Date: Wed, 24 Jun 2026 12:48:22 +0300 Subject: [PATCH] fix: don't allow the reserved provider names to be used in oauth --- internal/bootstrap/app_bootstrap.go | 5 +++++ internal/model/constants.go | 2 ++ 2 files changed, 7 insertions(+) diff --git a/internal/bootstrap/app_bootstrap.go b/internal/bootstrap/app_bootstrap.go index c24638f5..698c019e 100644 --- a/internal/bootstrap/app_bootstrap.go +++ b/internal/bootstrap/app_bootstrap.go @@ -11,6 +11,7 @@ import ( "net/url" "os" "os/signal" + "slices" "sort" "strings" "syscall" @@ -131,6 +132,10 @@ func (app *BootstrapApp) Setup() error { app.runtime.OAuthProviders = app.config.OAuth.Providers for id, provider := range app.runtime.OAuthProviders { + if slices.Contains(model.ReservedProviderNames, id) { + return fmt.Errorf("provider id %s is reserved and cannot be used", id) + } + providerWhitelist, err := utils.GetStringList(provider.Whitelist, provider.WhitelistFile) if err != nil { return fmt.Errorf("failed to load oauth whitelist for provider %s: %w", id, err) diff --git a/internal/model/constants.go b/internal/model/constants.go index d5885dcf..ff44a729 100644 --- a/internal/model/constants.go +++ b/internal/model/constants.go @@ -17,6 +17,8 @@ var OverrideProviders = map[string]string{ "github": "GitHub", } +var ReservedProviderNames = []string{"local", "ldap", "tailscale"} + const SessionCookieName = "tinyauth-session" const CSRFCookieName = "tinyauth-csrf" const RedirectCookieName = "tinyauth-redirect"