From 40cb0a8a76a6b61f6dc037f8d9f9ad28b8d9c244 Mon Sep 17 00:00:00 2001 From: eikek Date: Sun, 28 Jan 2024 09:56:16 +0100 Subject: [PATCH] Validate config for session-valid Closes: #2309 --- .../main/scala/docspell/restserver/ConfigFile.scala | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/modules/restserver/src/main/scala/docspell/restserver/ConfigFile.scala b/modules/restserver/src/main/scala/docspell/restserver/ConfigFile.scala index 154be914..da989179 100644 --- a/modules/restserver/src/main/scala/docspell/restserver/ConfigFile.scala +++ b/modules/restserver/src/main/scala/docspell/restserver/ConfigFile.scala @@ -14,6 +14,7 @@ import fs2.io.file.Files import docspell.backend.auth.Login import docspell.backend.signup.{Config => SignupConfig} +import docspell.common.Duration import docspell.config.Implicits._ import docspell.config.{ConfigFactory, FtsType, Validation} import docspell.oidc.{ProviderConfig, SignatureAlgo} @@ -38,7 +39,8 @@ object ConfigFile { generateSecretIfEmpty, duplicateOpenIdProvider, signKeyVsUserUrl, - filesValidate + filesValidate, + sessionValidValidate ) ConfigFactory .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!" ) + 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" + ) }