Validate config for session-valid

Closes: #2309
This commit is contained in:
eikek
2024-01-28 09:56:16 +01:00
parent 3894ef1e80
commit 40cb0a8a76

View File

@ -14,6 +14,7 @@ import fs2.io.file.Files
import docspell.backend.auth.Login import docspell.backend.auth.Login
import docspell.backend.signup.{Config => SignupConfig} import docspell.backend.signup.{Config => SignupConfig}
import docspell.common.Duration
import docspell.config.Implicits._ import docspell.config.Implicits._
import docspell.config.{ConfigFactory, FtsType, Validation} import docspell.config.{ConfigFactory, FtsType, Validation}
import docspell.oidc.{ProviderConfig, SignatureAlgo} import docspell.oidc.{ProviderConfig, SignatureAlgo}
@ -38,7 +39,8 @@ object ConfigFile {
generateSecretIfEmpty, generateSecretIfEmpty,
duplicateOpenIdProvider, duplicateOpenIdProvider,
signKeyVsUserUrl, signKeyVsUserUrl,
filesValidate filesValidate,
sessionValidValidate
) )
ConfigFactory ConfigFactory
.default[F, Config](logger, "docspell.server")(args, validate) .default[F, Config](logger, "docspell.server")(args, validate)
@ -127,4 +129,11 @@ object ConfigFile {
s"PostgreSQL defined fulltext search backend with default-connection, which is not a PostgreSQL connection!" s"PostgreSQL defined fulltext search backend with default-connection, which is not a PostgreSQL connection!"
) )
def sessionValidValidate: Validation[Config] =
Validation.failWhen(
cfg =>
cfg.auth.sessionValid > Duration.hours(48) || cfg.auth.sessionValid < Duration
.minutes(1),
s"The value for session-valued must be between 1min and 48h"
)
} }