mirror of https://github.com/authelia/authelia.git
42 lines
2.0 KiB
Go
42 lines
2.0 KiB
Go
package validator
|
|
|
|
import (
|
|
"errors"
|
|
"fmt"
|
|
|
|
"github.com/authelia/authelia/v4/internal/configuration/schema"
|
|
"github.com/authelia/authelia/v4/internal/utils"
|
|
)
|
|
|
|
// ValidateIdentityValidation validates and updates the IdentityValidation configuration.
|
|
func ValidateIdentityValidation(config *schema.Configuration, validator *schema.StructValidator) {
|
|
if config.IdentityValidation.ResetPassword.JWTExpiration <= 0 {
|
|
config.IdentityValidation.ResetPassword.JWTExpiration = schema.DefaultIdentityValidation.ResetPassword.JWTExpiration
|
|
}
|
|
|
|
switch {
|
|
case len(config.IdentityValidation.ResetPassword.JWTAlgorithm) == 0:
|
|
config.IdentityValidation.ResetPassword.JWTAlgorithm = schema.DefaultIdentityValidation.ResetPassword.JWTAlgorithm
|
|
case !utils.IsStringInSlice(config.IdentityValidation.ResetPassword.JWTAlgorithm, validIdentityValidationJWTAlgorithms):
|
|
validator.Push(fmt.Errorf(errFmtIdentityValidationResetPasswordJWTAlgorithm, utils.StringJoinOr(validIdentityValidationJWTAlgorithms), config.IdentityValidation.ResetPassword.JWTAlgorithm))
|
|
}
|
|
|
|
if !config.AuthenticationBackend.PasswordReset.Disable && len(config.IdentityValidation.ResetPassword.JWTSecret) == 0 {
|
|
validator.Push(errors.New(errFmtIdentityValidationResetPasswordJWTSecret))
|
|
}
|
|
|
|
if config.IdentityValidation.ElevatedSession.CodeLifespan <= 0 {
|
|
config.IdentityValidation.ElevatedSession.CodeLifespan = schema.DefaultIdentityValidation.ElevatedSession.CodeLifespan
|
|
}
|
|
|
|
if config.IdentityValidation.ElevatedSession.ElevationLifespan <= 0 {
|
|
config.IdentityValidation.ElevatedSession.ElevationLifespan = schema.DefaultIdentityValidation.ElevatedSession.ElevationLifespan
|
|
}
|
|
|
|
if config.IdentityValidation.ElevatedSession.Characters <= 0 {
|
|
config.IdentityValidation.ElevatedSession.Characters = schema.DefaultIdentityValidation.ElevatedSession.Characters
|
|
} else if config.IdentityValidation.ElevatedSession.Characters > 20 {
|
|
validator.Push(fmt.Errorf(errFmtIdentityValidationElevatedSessionCharacterLength, config.IdentityValidation.ElevatedSession.Characters))
|
|
}
|
|
}
|