mirror of
https://github.com/0rangebananaspy/authelia.git
synced 2024-09-14 22:47:21 +07:00
158783a9d4
This change adjusts several global options moving them into the server block. It additionally notes other breaking changes in the configuration. BREAKING CHANGE: Several configuration options have been changed and moved into other sections. Migration instructions are documented here: https://authelia.com/docs/configuration/migration.html#4.30.0
69 lines
2.0 KiB
Go
69 lines
2.0 KiB
Go
package validator
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
|
|
"github.com/authelia/authelia/internal/configuration/schema"
|
|
"github.com/authelia/authelia/internal/utils"
|
|
)
|
|
|
|
// ValidateConfiguration and adapt the configuration read from file.
|
|
func ValidateConfiguration(configuration *schema.Configuration, validator *schema.StructValidator) {
|
|
if configuration.CertificatesDirectory != "" {
|
|
info, err := os.Stat(configuration.CertificatesDirectory)
|
|
if err != nil {
|
|
validator.Push(fmt.Errorf("Error checking certificate directory: %v", err))
|
|
} else if !info.IsDir() {
|
|
validator.Push(fmt.Errorf("The path %s specified for certificate_directory is not a directory", configuration.CertificatesDirectory))
|
|
}
|
|
}
|
|
|
|
if configuration.JWTSecret == "" {
|
|
validator.Push(fmt.Errorf("Provide a JWT secret using \"jwt_secret\" key"))
|
|
}
|
|
|
|
if configuration.DefaultRedirectionURL != "" {
|
|
err := utils.IsStringAbsURL(configuration.DefaultRedirectionURL)
|
|
if err != nil {
|
|
validator.Push(fmt.Errorf("Value for \"default_redirection_url\" is invalid: %+v", err))
|
|
}
|
|
}
|
|
|
|
ValidateTheme(configuration, validator)
|
|
|
|
if configuration.TOTP == nil {
|
|
configuration.TOTP = &schema.DefaultTOTPConfiguration
|
|
}
|
|
|
|
ValidateLogging(configuration, validator)
|
|
|
|
ValidateTOTP(configuration.TOTP, validator)
|
|
|
|
ValidateAuthenticationBackend(&configuration.AuthenticationBackend, validator)
|
|
|
|
ValidateAccessControl(&configuration.AccessControl, validator)
|
|
|
|
ValidateRules(configuration.AccessControl, validator)
|
|
|
|
ValidateSession(&configuration.Session, validator)
|
|
|
|
if configuration.Regulation == nil {
|
|
configuration.Regulation = &schema.DefaultRegulationConfiguration
|
|
}
|
|
|
|
ValidateRegulation(configuration.Regulation, validator)
|
|
|
|
ValidateServer(configuration, validator)
|
|
|
|
ValidateStorage(configuration.Storage, validator)
|
|
|
|
if configuration.Notifier == nil {
|
|
validator.Push(fmt.Errorf("A notifier configuration must be provided"))
|
|
} else {
|
|
ValidateNotifier(configuration.Notifier, validator)
|
|
}
|
|
|
|
ValidateIdentityProviders(&configuration.IdentityProviders, validator)
|
|
}
|