diff --git a/src/main/scala/lc/core/captchaProviders.scala b/src/main/scala/lc/core/captchaProviders.scala index eda74f0..453aafc 100644 --- a/src/main/scala/lc/core/captchaProviders.scala +++ b/src/main/scala/lc/core/captchaProviders.scala @@ -23,15 +23,8 @@ object CaptchaProviders { } } - private val seed = Config.seed - private val random = new scala.util.Random(seed) private val config = Config.captchaConfig - private def getNextRandomInt(max: Int): Int = - random.synchronized { - random.nextInt(max) - } - def getProviderById(id: String): ChallengeProvider = { return providers(id) } @@ -58,7 +51,7 @@ object CaptchaProviders { def getProvider(param: Parameters): Option[ChallengeProvider] = { val providerConfig = filterProviderByParam(param).toList if (providerConfig.length > 0) { - val randomIndex = getNextRandomInt(providerConfig.length) + val randomIndex = Config.getNextRandomInt(providerConfig.length) val providerIndex = providerConfig(randomIndex)._1 val selectedProvider = providers(providerIndex) selectedProvider.configure(providerConfig(randomIndex)._2) diff --git a/src/main/scala/lc/core/config.scala b/src/main/scala/lc/core/config.scala index 1ada43f..6e57a89 100644 --- a/src/main/scala/lc/core/config.scala +++ b/src/main/scala/lc/core/config.scala @@ -49,6 +49,13 @@ object Config { val allowedMedia: Set[String] = captchaConfig.flatMap(_.allowedMedia).toSet val allowedInputType: Set[String] = captchaConfig.flatMap(_.allowedInputType).toSet + private val random = new scala.util.Random(seed) + + def getNextRandomInt(max: Int): Int = + random.synchronized { + random.nextInt(max) + } + private def getDefaultConfig(): String = { val defaultConfigMap = (AttributesEnum.RANDOM_SEED.toString -> new ju.Random().nextInt()) ~