From 632eb49fd33462a27f75ed7757d2b2e6636cf183 Mon Sep 17 00:00:00 2001 From: Rahul Rudragoudar Date: Sun, 26 Dec 2021 22:00:22 +0530 Subject: [PATCH] Add config option for maxAttempts field Signed-off-by: Rahul Rudragoudar --- src/main/scala/lc/Main.scala | 2 ++ src/main/scala/lc/core/captchaFields.scala | 1 + src/main/scala/lc/core/config.scala | 2 ++ src/main/scala/lc/database/statements.scala | 2 +- 4 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/scala/lc/Main.scala b/src/main/scala/lc/Main.scala index 66ea2b7..50c1ad7 100644 --- a/src/main/scala/lc/Main.scala +++ b/src/main/scala/lc/Main.scala @@ -3,6 +3,7 @@ package lc import lc.core.{CaptchaProviders, Captcha, Config} import lc.server.Server import lc.background.BackgroundTask +import lc.database.Statements object LCFramework { def main(args: scala.Array[String]): Unit = { @@ -12,6 +13,7 @@ object LCFramework { "data/config.json" } val config = new Config(configFilePath) + Statements.maxAttempts = config.maxAttempts val captchaProviders = new CaptchaProviders(config = config) val captcha = new Captcha(config = config, captchaProviders = captchaProviders) val backgroundTask = new BackgroundTask(config = config, captcha = captcha) diff --git a/src/main/scala/lc/core/captchaFields.scala b/src/main/scala/lc/core/captchaFields.scala index 02a91be..acc9f00 100644 --- a/src/main/scala/lc/core/captchaFields.scala +++ b/src/main/scala/lc/core/captchaFields.scala @@ -26,6 +26,7 @@ object AttributesEnum extends Enumeration { val PLAYGROUND_ENABLED: Value = Value("playgroundEnabled") val CORS_HEADER: Value = Value("corsHeader") val CONFIG: Value = Value("config") + val MAX_ATTEMPTS: Value = Value("maxAttempts") } object ResultEnum extends Enumeration { diff --git a/src/main/scala/lc/core/config.scala b/src/main/scala/lc/core/config.scala index cc63936..83d84e3 100644 --- a/src/main/scala/lc/core/config.scala +++ b/src/main/scala/lc/core/config.scala @@ -47,6 +47,7 @@ class Config(configFilePath: String) { val threadDelay: Int = (configJson \ AttributesEnum.THREAD_DELAY.toString).extract[Int] val playgroundEnabled: Boolean = (configJson \ AttributesEnum.PLAYGROUND_ENABLED.toString).extract[Boolean] val corsHeader: String = (configJson \ AttributesEnum.CORS_HEADER.toString).extract[String] + val maxAttempts: Int = (configJson \ AttributesEnum.MAX_ATTEMPTS.toString).extract[Int] private val captchaConfigJson = (configJson \ "captchas") val captchaConfigTransform: JValue = captchaConfigJson transformField { case JField("config", JObject(config)) => @@ -69,6 +70,7 @@ class Config(configFilePath: String) { (AttributesEnum.THREAD_DELAY.toString -> 2) ~ (AttributesEnum.PLAYGROUND_ENABLED.toString -> true) ~ (AttributesEnum.CORS_HEADER.toString -> "") ~ + (AttributesEnum.MAX_ATTEMPTS.toString -> 10) ~ ("captchas" -> List( ( (AttributesEnum.NAME.toString -> "FilterChallenge") ~ diff --git a/src/main/scala/lc/database/statements.scala b/src/main/scala/lc/database/statements.scala index 2d3d276..3867d80 100644 --- a/src/main/scala/lc/database/statements.scala +++ b/src/main/scala/lc/database/statements.scala @@ -118,6 +118,6 @@ object Statements { ``` */ private val dbConn: DBConn = new DBConn() - private val maxAttempts = 10 + var maxAttempts: Int = 10 val tlStmts: ThreadLocal[Statements] = ThreadLocal.withInitial(() => new Statements(dbConn, maxAttempts)) }