summaryrefslogtreecommitdiffstats
path: root/components/slice-analysis-ms/src/main/java/org/onap/slice/analysis/ms/restclients/RestClient.java
diff options
context:
space:
mode:
Diffstat (limited to 'components/slice-analysis-ms/src/main/java/org/onap/slice/analysis/ms/restclients/RestClient.java')
-rw-r--r--components/slice-analysis-ms/src/main/java/org/onap/slice/analysis/ms/restclients/RestClient.java52
1 files changed, 46 insertions, 6 deletions
diff --git a/components/slice-analysis-ms/src/main/java/org/onap/slice/analysis/ms/restclients/RestClient.java b/components/slice-analysis-ms/src/main/java/org/onap/slice/analysis/ms/restclients/RestClient.java
index 65de9838..3be3fc65 100644
--- a/components/slice-analysis-ms/src/main/java/org/onap/slice/analysis/ms/restclients/RestClient.java
+++ b/components/slice-analysis-ms/src/main/java/org/onap/slice/analysis/ms/restclients/RestClient.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* slice-analysis-ms
* ================================================================================
- * Copyright (C) 2020 Wipro Limited.
+ * Copyright (C) 2020-2021 Wipro Limited.
* ==============================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -21,6 +21,22 @@
package org.onap.slice.analysis.ms.restclients;
+import java.security.KeyStoreException;
+import java.security.KeyManagementException;
+import java.security.NoSuchAlgorithmException;
+
+import javax.net.ssl.SSLContext;
+import org.apache.http.config.Registry;
+import org.apache.http.config.RegistryBuilder;
+import org.apache.http.conn.socket.ConnectionSocketFactory;
+import org.apache.http.conn.socket.PlainConnectionSocketFactory;
+import org.apache.http.conn.ssl.NoopHostnameVerifier;
+import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.http.impl.conn.BasicHttpClientConnectionManager;
+import org.apache.http.ssl.TrustStrategy;
+import org.apache.http.ssl.SSLContexts;
import org.slf4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.ParameterizedTypeReference;
@@ -29,20 +45,22 @@ import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
+import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
import org.springframework.stereotype.Component;
import org.springframework.web.client.RestTemplate;
-/**
- * This class is for base rest client
+/**
+ * This class is for base rest client
*/
@Component
public class RestClient {
private static final String EXCEPTION_MSG = "Exception caught during request {}";
private static final Logger log = org.slf4j.LoggerFactory.getLogger(RestClient.class);
-
+
@Autowired
private RestTemplate restTemplate;
+
protected RestClient() {
}
@@ -66,15 +84,37 @@ public class RestClient {
* Get Request Template.
*/
- public <T> ResponseEntity<T> sendGetRequest(HttpHeaders headers, String requestUrl, ParameterizedTypeReference<T> responseType) {
+ public <T> ResponseEntity<T> sendGetRequest(HttpHeaders headers, String requestUrl,
+ ParameterizedTypeReference<T> responseType) {
HttpEntity<Void> requestEntity = new HttpEntity<>(headers);
try {
+ RestTemplate restTemplate = new RestTemplate(useApacheHttpClientWithSelfSignedSupport());
return restTemplate.exchange(requestUrl, HttpMethod.GET, requestEntity, responseType);
} catch (Exception e) {
- log.debug(EXCEPTION_MSG, e.getMessage());
+ log.info(EXCEPTION_MSG, e.getMessage());
return new ResponseEntity<>(HttpStatus.NOT_FOUND);
}
}
+ private static HttpComponentsClientHttpRequestFactory useApacheHttpClientWithSelfSignedSupport() {
+
+ TrustStrategy acceptingTrustStrategy = (cert, authType) -> true;
+ SSLContext sslContext = null;
+ try {
+ sslContext = SSLContexts.custom().loadTrustMaterial(null, acceptingTrustStrategy).build();
+ } catch (KeyManagementException | NoSuchAlgorithmException | KeyStoreException e) {
+ log.error(EXCEPTION_MSG, e);
+ }
+ SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
+ Registry<ConnectionSocketFactory> socketFactoryRegistry = RegistryBuilder.<ConnectionSocketFactory>create()
+ .register("https", sslsf).register("http", new PlainConnectionSocketFactory()).build();
+ BasicHttpClientConnectionManager connectionManager = new BasicHttpClientConnectionManager(
+ socketFactoryRegistry);
+ CloseableHttpClient httpClient = HttpClients.custom().setSSLSocketFactory(sslsf)
+ .setConnectionManager(connectionManager).build();
+ HttpComponentsClientHttpRequestFactory useApacheHttpClient = new HttpComponentsClientHttpRequestFactory();
+ useApacheHttpClient.setHttpClient(httpClient);
+ return useApacheHttpClient;
+ }
}