Trust any certificate by API tests 04/104504/1
authorIttay Stern <ittay.stern@att.com>
Thu, 26 Mar 2020 14:47:08 +0000 (16:47 +0200)
committerIttay Stern <ittay.stern@att.com>
Thu, 26 Mar 2020 14:47:08 +0000 (16:47 +0200)
Issue-ID: VID-647

Change-Id: I7ecfe746c57d6a178704b4f3616a637005f8f7c4
Signed-off-by: Ittay Stern <ittay.stern@att.com>
vid-automation/src/main/java/vid/automation/test/utils/InsecureHttpsClient.java

index 6106ae4..68ebeb1 100644 (file)
@@ -1,25 +1,44 @@
 package vid.automation.test.utils;
 
+import javax.net.ssl.SSLContext;
 import javax.ws.rs.client.Client;
 import javax.ws.rs.client.ClientBuilder;
+import org.apache.commons.lang3.exception.ExceptionUtils;
 import org.apache.http.conn.ssl.NoopHostnameVerifier;
+import org.apache.http.conn.ssl.TrustAllStrategy;
 import org.apache.http.impl.client.CloseableHttpClient;
 import org.apache.http.impl.client.HttpClients;
+import org.apache.http.ssl.SSLContextBuilder;
 import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
 import org.springframework.web.client.RestTemplate;
 
 public class InsecureHttpsClient {
 
     public static RestTemplate newRestTemplate() {
-        CloseableHttpClient insecureTLSHttpClient
-            = HttpClients.custom().setSSLHostnameVerifier(NoopHostnameVerifier.INSTANCE).build();
+
+        CloseableHttpClient insecureTLSHttpClient = HttpClients.custom()
+            .setSSLHostnameVerifier(NoopHostnameVerifier.INSTANCE)
+            .setSSLContext(trustAllCertificates())
+            .build();
+
         HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory(insecureTLSHttpClient);
         return new RestTemplate(factory);
     }
 
+    private static SSLContext trustAllCertificates() {
+        try {
+            return new SSLContextBuilder()
+                .loadTrustMaterial(null, TrustAllStrategy.INSTANCE)
+                .build();
+        } catch (Exception e) {
+            return ExceptionUtils.rethrow(e);
+        }
+    }
+
     public static Client newJaxrsClient() {
         return ClientBuilder.newBuilder()
             .hostnameVerifier(NoopHostnameVerifier.INSTANCE)
+            .sslContext(trustAllCertificates())
             .build();
     }