diff --git a/data-share/data-share-service/src/main/java/io/mosip/datashare/util/RestUtil.java b/data-share/data-share-service/src/main/java/io/mosip/datashare/util/RestUtil.java index 43485de3..65753b62 100644 --- a/data-share/data-share-service/src/main/java/io/mosip/datashare/util/RestUtil.java +++ b/data-share/data-share-service/src/main/java/io/mosip/datashare/util/RestUtil.java @@ -4,26 +4,22 @@ import java.security.KeyManagementException; import java.security.KeyStoreException; import java.security.NoSuchAlgorithmException; -import java.security.cert.X509Certificate; import java.util.Iterator; import java.util.List; import java.util.Map; import javax.annotation.PostConstruct; -import javax.net.ssl.SSLContext; import org.apache.http.Header; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpPost; -import org.apache.http.conn.ssl.SSLConnectionSocketFactory; import org.apache.http.entity.StringEntity; -import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClientBuilder; import org.apache.http.impl.client.HttpClients; -import org.apache.http.ssl.TrustStrategy; import org.apache.http.util.EntityUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.core.env.Environment; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; @@ -63,6 +59,12 @@ public class RestUtil { /** The Constant AUTHORIZATION. */ private static final String AUTHORIZATION = "Authorization="; private RestTemplate localRestTemplate; + + @Value("${datashare.httpclient.connections.max.per.host:20}") + private int maxConnectionPerRoute; + + @Value("${datashare.httpclient.connections.max:100}") + private int totalMaxConnection; @PostConstruct private void loadRestTemplate() throws KeyManagementException, NoSuchAlgorithmException, KeyStoreException { @@ -212,13 +214,11 @@ public T getApi(ApiName apiName, Map pathsegments, Class */ public RestTemplate getRestTemplate() throws KeyManagementException, NoSuchAlgorithmException, KeyStoreException { if (localRestTemplate == null) { - TrustStrategy acceptingTrustStrategy = (X509Certificate[] chain, String authType) -> true; - SSLContext sslContext = org.apache.http.ssl.SSLContexts.custom() - .loadTrustMaterial(null, acceptingTrustStrategy).build(); - SSLConnectionSocketFactory csf = new SSLConnectionSocketFactory(sslContext); - CloseableHttpClient httpClient = HttpClients.custom().setSSLSocketFactory(csf).build(); - HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(); - requestFactory.setHttpClient(httpClient); + HttpClientBuilder httpClientBuilder = HttpClients.custom() + .setMaxConnPerRoute(maxConnectionPerRoute) + .setMaxConnTotal(totalMaxConnection).disableCookieManagement(); + HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(); + requestFactory.setHttpClient(httpClientBuilder.build()); localRestTemplate = new RestTemplate(requestFactory); } return localRestTemplate;