From 3b26873d565251d909ba423746bae94ff0991835 Mon Sep 17 00:00:00 2001 From: Max Date: Mon, 3 Nov 2025 08:16:41 +0800 Subject: [PATCH] Enhance environment variable processing in EntryConfig - Added functionality to process SuccessURL, FailureURL, and LogoutRedirect fields in EntryConfig for environment variable substitution. - Implemented checks to ensure that referenced environment variables exist, collecting any missing variables for further handling. - Improved overall configuration handling by ensuring URLs are properly replaced with their corresponding environment variable values. --- openapi/user/config.go | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/openapi/user/config.go b/openapi/user/config.go index 162437e8..ecf64b5c 100644 --- a/openapi/user/config.go +++ b/openapi/user/config.go @@ -567,6 +567,31 @@ func processEntryConfigENVVariables(config *EntryConfig) { } config.ClientSecret = replaceENVVar(config.ClientSecret) + // Process URL configurations + if strings.HasPrefix(config.SuccessURL, "$ENV.") { + envVar := strings.TrimPrefix(config.SuccessURL, "$ENV.") + if _, exists := os.LookupEnv(envVar); !exists { + missingEnvVars = append(missingEnvVars, envVar) + } + } + config.SuccessURL = replaceENVVar(config.SuccessURL) + + if strings.HasPrefix(config.FailureURL, "$ENV.") { + envVar := strings.TrimPrefix(config.FailureURL, "$ENV.") + if _, exists := os.LookupEnv(envVar); !exists { + missingEnvVars = append(missingEnvVars, envVar) + } + } + config.FailureURL = replaceENVVar(config.FailureURL) + + if strings.HasPrefix(config.LogoutRedirect, "$ENV.") { + envVar := strings.TrimPrefix(config.LogoutRedirect, "$ENV.") + if _, exists := os.LookupEnv(envVar); !exists { + missingEnvVars = append(missingEnvVars, envVar) + } + } + config.LogoutRedirect = replaceENVVar(config.LogoutRedirect) + // Process form configuration formMissingVars := processFormConfigENVVariables(config.Form) missingEnvVars = append(missingEnvVars, formMissingVars...)