diff --git a/signer/src/main/resources/reference.conf b/signer/src/main/resources/reference.conf index 3525151c..0c0d2c94 100644 --- a/signer/src/main/resources/reference.conf +++ b/signer/src/main/resources/reference.conf @@ -2,4 +2,5 @@ interop-commons.kms { max-concurrency = 50 + max-acquisition-timeout = "10 seconds" } \ No newline at end of file diff --git a/signer/src/main/scala/it/pagopa/interop/commons/signer/SignerConfiguration.scala b/signer/src/main/scala/it/pagopa/interop/commons/signer/SignerConfiguration.scala index b5249549..4b4bc6e6 100644 --- a/signer/src/main/scala/it/pagopa/interop/commons/signer/SignerConfiguration.scala +++ b/signer/src/main/scala/it/pagopa/interop/commons/signer/SignerConfiguration.scala @@ -3,6 +3,7 @@ package it.pagopa.interop.commons.signer import com.typesafe.config.{Config, ConfigFactory} import java.net.URI +import java.time.Duration final case class VaultConfig(address: String, token: String, sslEnabled: Boolean, signatureRoute: String) { def encryptionEndpoint(keyId: String) = new URI(s"$address/$signatureRoute/$keyId").normalize().toString @@ -14,6 +15,7 @@ object SignerConfiguration { private val config: Config = ConfigFactory.load() - val maxConcurrency: Int = config.getInt("interop-commons.kms.max-concurrency") + val maxConcurrency: Int = config.getInt("interop-commons.kms.max-concurrency") + val maxAcquisitionTimeout: Duration = config.getDuration("interop-commons.kms.max-acquisition-timeout") } diff --git a/signer/src/main/scala/it/pagopa/interop/commons/signer/service/impl/KMSSignerService.scala b/signer/src/main/scala/it/pagopa/interop/commons/signer/service/impl/KMSSignerService.scala index 54cd4d2a..e5b36148 100644 --- a/signer/src/main/scala/it/pagopa/interop/commons/signer/service/impl/KMSSignerService.scala +++ b/signer/src/main/scala/it/pagopa/interop/commons/signer/service/impl/KMSSignerService.scala @@ -24,7 +24,11 @@ final class KMSSignerService(blockingEc: ExecutionContextExecutor) extends Signe implicit val ec: ExecutionContext = blockingEc private val asyncHttpClient: SdkAsyncHttpClient = - NettyNioAsyncHttpClient.builder().maxConcurrency(SignerConfiguration.maxConcurrency).build() + NettyNioAsyncHttpClient + .builder() + .connectionAcquisitionTimeout(SignerConfiguration.maxAcquisitionTimeout) + .maxConcurrency(SignerConfiguration.maxConcurrency) + .build() private val asyncConfiguration: ClientAsyncConfiguration = ClientAsyncConfiguration .builder()