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.
This commit is contained in:
Max 2025-11-03 08:16:41 +08:00
parent 7bbd0d08ca
commit 3b26873d56

View file

@ -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...)