X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=holmes-actions%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fholmes%2Fcommon%2Futils%2FHttpsUtils.java;h=8b4be573e366088eb3be5bb1f6354bd59bf8c71e;hb=619728f21ddd45497da236d1dbdae4e21a36e5c2;hp=2df4d5518e79a8c81af59577d73720fcaa92336c;hpb=3356fb82b20ebe7209522e4e009dd6aea5ed1802;p=holmes%2Fcommon.git diff --git a/holmes-actions/src/main/java/org/onap/holmes/common/utils/HttpsUtils.java b/holmes-actions/src/main/java/org/onap/holmes/common/utils/HttpsUtils.java index 2df4d55..8b4be57 100644 --- a/holmes-actions/src/main/java/org/onap/holmes/common/utils/HttpsUtils.java +++ b/holmes-actions/src/main/java/org/onap/holmes/common/utils/HttpsUtils.java @@ -1,11 +1,11 @@ /** * Copyright 2017 ZTE Corporation. - * + *

* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at - * + *

* http://www.apache.org/licenses/LICENSE-2.0 - * + *

* Unless required by applicable law or agreed to in writing, software distributed under the License * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express * or implied. See the License for the specific language governing permissions and limitations under @@ -14,27 +14,11 @@ package org.onap.holmes.common.utils; -import java.io.IOException; -import java.security.cert.CertificateException; -import java.security.cert.X509Certificate; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; import lombok.extern.slf4j.Slf4j; -import org.apache.http.Consts; -import org.apache.http.HttpEntity; -import org.apache.http.HttpResponse; -import org.apache.http.HttpStatus; -import org.apache.http.NameValuePair; +import org.apache.http.*; import org.apache.http.client.config.RequestConfig; import org.apache.http.client.entity.UrlEncodedFormEntity; -import org.apache.http.client.methods.HttpDelete; -import org.apache.http.client.methods.HttpEntityEnclosingRequestBase; -import org.apache.http.client.methods.HttpGet; -import org.apache.http.client.methods.HttpPost; -import org.apache.http.client.methods.HttpPut; -import org.apache.http.client.methods.HttpRequestBase; +import org.apache.http.client.methods.*; import org.apache.http.config.Registry; import org.apache.http.config.RegistryBuilder; import org.apache.http.conn.socket.ConnectionSocketFactory; @@ -43,14 +27,23 @@ import org.apache.http.conn.ssl.NoopHostnameVerifier; import org.apache.http.conn.ssl.SSLConnectionSocketFactory; import org.apache.http.conn.ssl.TrustStrategy; 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.impl.conn.PoolingHttpClientConnectionManager; import org.apache.http.message.BasicNameValuePair; import org.apache.http.ssl.SSLContextBuilder; import org.apache.http.util.EntityUtils; import org.jvnet.hk2.annotations.Service; +import org.onap.holmes.common.config.MicroServiceConfig; import org.onap.holmes.common.exception.CorrelationException; +import java.io.IOException; +import java.security.cert.CertificateException; +import java.security.cert.X509Certificate; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + @Slf4j @Service public class HttpsUtils { @@ -61,7 +54,7 @@ public class HttpsUtils { private static SSLContextBuilder sslContextBuilder = null; public static final int DEFUALT_TIMEOUT = 30000; - static{ + static { try { sslContextBuilder = new SSLContextBuilder(); sslContextBuilder.loadTrustMaterial(null, new TrustStrategy() { @@ -89,12 +82,12 @@ public class HttpsUtils { } public static HttpResponse post(HttpPost httpPost, Map header, Map param, - HttpEntity entity, CloseableHttpClient httpClient) throws CorrelationException { + HttpEntity entity, CloseableHttpClient httpClient) throws CorrelationException { return getPostAndPutResponse(httpPost, header, param, entity, httpClient); } public static HttpResponse put(HttpPut httpPut, Map header, Map param, - HttpEntity entity, CloseableHttpClient httpClient) throws CorrelationException { + HttpEntity entity, CloseableHttpClient httpClient) throws CorrelationException { return getPostAndPutResponse(httpPut, header, param, entity, httpClient); } @@ -124,8 +117,8 @@ public class HttpsUtils { } private static HttpResponse getPostAndPutResponse(HttpEntityEnclosingRequestBase requestBase, - Map header, Map param, HttpEntity entity, - CloseableHttpClient httpClient) throws CorrelationException { + Map header, Map param, HttpEntity entity, + CloseableHttpClient httpClient) throws CorrelationException { try { addHeaders(header, requestBase); addParams(param, requestBase); @@ -139,7 +132,7 @@ public class HttpsUtils { } private static HttpResponse getGetAndDeleteResponse(HttpRequestBase requestBase, - Map header, CloseableHttpClient httpClient) throws CorrelationException { + Map header, CloseableHttpClient httpClient) throws CorrelationException { try { addHeaders(header, requestBase); return executeRequest(httpClient, requestBase); @@ -169,23 +162,39 @@ public class HttpsUtils { try { httpResponse = httpClient.execute(httpRequest); } catch (Exception e) { - throw new CorrelationException("Failed to get data from server" ,e); + throw new CorrelationException("Failed to get data from server", e); } return httpResponse; } - public static CloseableHttpClient getHttpClient(int timeout) { + public static CloseableHttpClient getConditionalHttpsClient(int timeout) { + HttpClientBuilder builder = getHttpClientBuilder(timeout); + if (isHttpsEnabled()) { + builder.setSSLSocketFactory(sslConnectionSocketFactory); + } + + return builder.build(); + } + + public static CloseableHttpClient getHttpsClient(int timeout) { + HttpClientBuilder builder = getHttpClientBuilder(timeout); + return builder.setSSLSocketFactory(sslConnectionSocketFactory).build(); + } + + private static HttpClientBuilder getHttpClientBuilder(int timeout) { RequestConfig defaultRequestConfig = RequestConfig.custom() .setSocketTimeout(timeout) .setConnectTimeout(timeout) .setConnectionRequestTimeout(timeout) .build(); - CloseableHttpClient httpClient = HttpClients.custom() + + return HttpClients.custom() .setDefaultRequestConfig(defaultRequestConfig) - .setSSLSocketFactory(sslConnectionSocketFactory) .setConnectionManager(connectionManager) - .setConnectionManagerShared(true) - .build(); - return httpClient; + .setConnectionManagerShared(true); + } + + public static boolean isHttpsEnabled() { + return Boolean.valueOf(MicroServiceConfig.getEnv("ENABLE_ENCRYPT")); } }