diff options
Diffstat (limited to 'ecomp-sdk/epsdk-fw/src/main/java/org/openecomp/portalsdk/core/onboarding/rest/RestWebServiceClient.java')
-rw-r--r-- | ecomp-sdk/epsdk-fw/src/main/java/org/openecomp/portalsdk/core/onboarding/rest/RestWebServiceClient.java | 511 |
1 files changed, 0 insertions, 511 deletions
diff --git a/ecomp-sdk/epsdk-fw/src/main/java/org/openecomp/portalsdk/core/onboarding/rest/RestWebServiceClient.java b/ecomp-sdk/epsdk-fw/src/main/java/org/openecomp/portalsdk/core/onboarding/rest/RestWebServiceClient.java deleted file mode 100644 index 44177466..00000000 --- a/ecomp-sdk/epsdk-fw/src/main/java/org/openecomp/portalsdk/core/onboarding/rest/RestWebServiceClient.java +++ /dev/null @@ -1,511 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * 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 the License. - * ================================================================================ - */ -package org.openecomp.portalsdk.core.onboarding.rest; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.net.HttpURLConnection; -import java.net.URL; -import java.util.Base64; -import java.util.UUID; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.openecomp.portalsdk.core.onboarding.util.PortalApiConstants; -import org.openecomp.portalsdk.core.onboarding.util.PortalApiProperties; - -/** - * Simple REST client for GET-ing content from and POST-ing content , Delete to the - * Portal application. - */ -public class RestWebServiceClient { - - private final Log logger = LogFactory.getLog(RestWebServiceClient.class); - - /** - * Singleton instance - */ - private static RestWebServiceClient instance = null; - - /** - * Constructor is private. Clients should obtain an instance via - * getInstance(). - */ - private RestWebServiceClient() { - } - - /** - * Gets the static instance of RestWebServiceClient; creates it if - * necessary. Synchronized to be thread safe. - * - * @return Static instance of RestWebServiceClient. - */ - public static synchronized RestWebServiceClient getInstance() { - if (instance == null) - instance = new RestWebServiceClient(); - return instance; - } - - /** - * Convenience method that fetches the URL for the Portal REST API endpoint - * and the application UEB key, then calls - * {@link #get(String, String, String, String, String, String, String)} to - * access the Portal's REST endpoint. - * - * @param restPath - * Partial path of the endpoint; e.g., "/specialRestService" - * @param userId - * userId for the user originating the request - * @param appName - * Application Name for logging. - * @param requestId - * 128-bit UUID value to uniquely identify the transaction. - * @param appUserName - * REST API user name for Portal to authenticate the request - * @param appPassword - * REST API password (in the clear, not encrypted) for Portal to - * authenticate the request - * @return Content from REST endpoint - * @throws Exception - * on any failure - */ - public String getPortalContent(String restPath,String userId, String appName, String requestId, String appUserName, String appPassword, boolean isBasicAuth) throws Exception { - String restURL = PortalApiProperties.getProperty(PortalApiConstants.ECOMP_REST_URL); - - if (restURL == null) { - // should never happen - String msg = "getPortalContent: failed to get property " + PortalApiConstants.ECOMP_REST_URL; - logger.error(msg); - throw new Exception(msg); - } - String appUebKey = PortalApiProperties.getProperty(PortalApiConstants.UEB_APP_KEY); - - if (appUebKey == null) { - // should never happen - String msg = "getPortalContent: failed to get property " + PortalApiConstants.UEB_APP_KEY; - - logger.error(msg); - throw new Exception(msg); - } - final String restEndpointUrl = restURL + restPath; - if(isBasicAuth) - { - return get(restEndpointUrl, userId,appName, requestId, appUebKey, appUserName, appPassword,isBasicAuth); - } - return get(restEndpointUrl, userId,appName, requestId, appUebKey, appUserName, appPassword); - } - - - /** - * Makes a call to a Portal REST API using the specified URL and parameters. - * - * @param url - * Complete URL of the REST endpoint. - * @param loginId - * User that it should be fetching the data - * @param appName - * Application name for logging; if null or empty, defaulted to - * Unknown. - * @param requestId - * 128-bit UUID value to uniquely identify the transaction; if - * null or empty, one is generated. - * @param appUebKey - * Unique key for the application, used by Portal to authenticate - * the request - * @param appUserName - * REST API user name, used by Portal to authenticate the request - * @param appPassword - * REST API password, used by Portal to authenticate the request - * @return Content from REST endpoint - * @throws Exception - * On any failure; e.g., unknown host. - */ - - public String get(String url, String loginId, String appName, String requestId, String appUebKey, - String appUserName, String appPassword) throws Exception { - return get(url, loginId, appName,requestId, appUebKey, appUserName, appPassword, false); - } - - - /** - * Makes a call to a Portal REST API using the specified URL and parameters. - * - * @param url - * Complete URL of the REST endpoint. - * @param loginId - * User that it should be fetching the data - * @param appName - * Application name for logging; if null or empty, defaulted to - * Unknown. - * @param requestId - * 128-bit UUID value to uniquely identify the transaction; if - * null or empty, one is generated. - * @param appUebKey - * Unique key for the application, used by Portal to authenticate - * the request - * @param appUserName - * REST API user name, used by Portal to authenticate the request - * @param appPassword - * REST API password, used by Portal to authenticate the request - * @return Content from REST endpoint - * @throws Exception - * On any failure; e.g., unknown host. - */ - public String get(String url, String loginId, String appName, String requestId, String appUebKey, - String appUserName, String appPassword, Boolean useBasicAuth) throws Exception { - - logger.debug("RestWebServiceClient.get (" + url + ") operation is started."); - - if (appName == null || appName.trim().length() == 0) - appName = "Unknown"; - if (requestId == null || requestId.trim().length() == 0) - requestId = UUID.randomUUID().toString(); - - URL obj = new URL(url); - // Create the connection object - HttpURLConnection con = (HttpURLConnection) obj.openConnection(); - con.setRequestMethod("GET"); - - con.setConnectTimeout(3000); - // if the portal property is set then gets the timeout value from portal properties - if(PortalApiProperties.getProperty(PortalApiConstants.EXT_REQUEST_CONNECTION_TIMEOUT)!= null){ - con.setConnectTimeout(Integer.parseInt(PortalApiProperties.getProperty(PortalApiConstants.EXT_REQUEST_CONNECTION_TIMEOUT))); - } - con.setReadTimeout(8000); - if(PortalApiProperties.getProperty(PortalApiConstants.EXT_REQUEST_READ_TIMEOUT)!= null){ - con.setReadTimeout(Integer.parseInt(PortalApiProperties.getProperty(PortalApiConstants.EXT_REQUEST_READ_TIMEOUT))); - } - - // add request header - con.setRequestProperty("uebkey", appUebKey); - con.setRequestProperty("LoginId", loginId); - con.setRequestProperty("user-agent", appName); - con.setRequestProperty("X-ECOMP-RequestID", requestId); - con.setRequestProperty("username", appUserName); - con.setRequestProperty("password", appPassword); - - if(useBasicAuth){ - String encoding = Base64.getEncoder().encodeToString((appUserName + ":" + appPassword).getBytes()); - con.setRequestProperty("Authorization", "Basic "+ encoding); - } - - int responseCode = con.getResponseCode(); - logger.debug("get: received response code '" + responseCode + "' while getting the '" + url + "' for user: " - + loginId); - - StringBuffer sb = new StringBuffer(); - BufferedReader in = null; - try { - in = new BufferedReader(new InputStreamReader(con.getInputStream(), "UTF-8")); - String inputLine = null; - while ((inputLine = in.readLine()) != null) - sb.append(inputLine); - } finally { - try { - if (in != null) - in.close(); - } catch (IOException ex) { - logger.error("get: failed to close reader", ex); - } - } - - final String response = sb.toString(); - if (logger.isDebugEnabled()) - logger.debug("get: url " + url + " yielded " + response); - return response; - } - - /** - * Convenience method that fetches the URL for the Portal REST API endpoint - * and the application UEB key, then calls - * {@link #post(String, String, String, String, String, String, String, String, String)} - * to access the Portal's REST endpoint. - * - * @param restPath - * Partial path of the endpoint; e.g., "/specialRestService" - * @param userId - * ID for the user originating the request - * @param appName - * Application Name for logging. - * @param requestId - * 128-bit UUID value to uniquely identify the transaction. - * @param appUserName - * REST API user name for Portal to authenticate the request; - * ignored if null - * @param appPassword - * REST API password (in the clear, not encrypted) for Portal to - * authenticate the request; ignored if null - * @param contentType - * content type for header - * @param content - * String to post - * @return Content from REST endpoint - * @throws Exception - * on any failure - */ - public String postPortalContent(String restPath, String userId, String appName, String requestId, - String appUserName, String appPassword, String contentType, String content, boolean isBasicAuth) throws Exception { - String restURL = PortalApiProperties.getProperty(PortalApiConstants.ECOMP_REST_URL); - - - if (restURL == null) { - // should never happen - String msg = "getPortalContent: failed to get property " + PortalApiConstants.ECOMP_REST_URL; - - logger.error(msg); - throw new Exception(msg); - } - String appUebKey = PortalApiProperties.getProperty(PortalApiConstants.UEB_APP_KEY); - - if (appUebKey == null) { - // should never happen - String msg = "getPortalContent: failed to get property " + PortalApiConstants.UEB_APP_KEY; - - logger.error(msg); - throw new Exception(msg); - } - final String separator = restURL.endsWith("/") || restPath.startsWith("/") ? "" : "/"; - final String restEndpointUrl = restURL + separator + restPath; - return post(restEndpointUrl, userId, appName, requestId, appUebKey, appUserName, appPassword, contentType, - content,isBasicAuth); - } - - /** - * Makes a POST call to a Portal REST API using the specified URL and - * parameters. - * - * @param url - * Complete URL of the REST endpoint. - * @param loginId - * User who is fetching the data - * @param appName - * Application name for logging; if null or empty, defaulted to - * Unknown. - * @param requestId - * 128-bit UUID value to uniquely identify the transaction; if - * null or empty, one is generated. - * @param appUebKey - * Unique key for the application, used by Portal to authenticate - * the request - * @param appUserName - * REST API user name used by Portal to authenticate the request; - * ignored if null - * @param appPassword - * REST API password used by Portal to authenticate the request; - * ignored if null - * @param contentType - * MIME header - * @param content - * Content to POST - * @return Any content read from the endpoint - * @throws Exception - * On any error - */ - public String post(String url, String loginId, String appName, String requestId, String appUebKey, - String appUserName, String appPassword, String contentType, String content, boolean isBasicAuth) throws Exception { - - if (logger.isDebugEnabled()) - logger.debug("RestWebServiceClient.post to URL " + url); - if (appName == null || appName.trim().length() == 0) - appName = "Unknown"; - if (requestId == null || requestId.trim().length() == 0) - requestId = UUID.randomUUID().toString(); - - URL obj = new URL(url); - // Create the connection object - HttpURLConnection con = (HttpURLConnection) obj.openConnection(); - con.setRequestMethod("POST"); - - con.setConnectTimeout(3000); - // if the portal property is set then gets the timeout value from portal properties - if(PortalApiProperties.getProperty(PortalApiConstants.EXT_REQUEST_CONNECTION_TIMEOUT)!= null){ - con.setConnectTimeout(Integer.parseInt(PortalApiProperties.getProperty(PortalApiConstants.EXT_REQUEST_CONNECTION_TIMEOUT))); - } - con.setReadTimeout(15000); - if(PortalApiProperties.getProperty(PortalApiConstants.EXT_REQUEST_READ_TIMEOUT)!= null){ - con.setReadTimeout(Integer.parseInt(PortalApiProperties.getProperty(PortalApiConstants.EXT_REQUEST_READ_TIMEOUT))); - } - - // add request header - con.setRequestProperty("uebkey", appUebKey); - if (appUserName != null) - con.setRequestProperty("username", appUserName); - if (appPassword != null) - con.setRequestProperty("password", appPassword); - con.setRequestProperty("LoginId", loginId); - con.setRequestProperty("user-agent", appName); - con.setRequestProperty("X-ECOMP-RequestID", requestId); - con.setRequestProperty("Content-Type", contentType); - if(isBasicAuth){ - String encoding = Base64.getEncoder().encodeToString((appUserName + ":" + appPassword).getBytes()); - con.setRequestProperty("Authorization", "Basic "+ encoding); - } - - con.setDoInput(true); - con.setDoOutput(true); - if( content != null) - { - con.getOutputStream().write(content.getBytes()); - } - con.getOutputStream().flush(); - con.getOutputStream().close(); - - int responseCode = con.getResponseCode(); - logger.debug("Response Code : " + responseCode); - - StringBuffer sb = new StringBuffer(); - InputStreamReader in = null; - char[] buf = new char[8196]; - int bytes; - try { - in = new InputStreamReader(con.getInputStream(), "UTF-8"); - while ((bytes = in.read(buf)) > 0) - sb.append(new String(buf, 0, bytes)); - } finally { - try { - if (in != null) - in.close(); - } catch (IOException ex) { - logger.warn("get: failed to close reader", ex); - } - } - - return sb.toString(); - } - - - public String deletePortalContent(String restPath, String userId, String appName, String requestId, - String appUserName, String appPassword, String contentType, String content, boolean isBasicAuth) throws Exception { - String restURL = PortalApiProperties.getProperty(PortalApiConstants.ECOMP_REST_URL); - - if (restURL == null) { - // should never happen - String msg = "getPortalContent: failed to get property " + PortalApiConstants.ECOMP_REST_URL; - - logger.error(msg); - throw new Exception(msg); - } - String appUebKey = PortalApiProperties.getProperty(PortalApiConstants.UEB_APP_KEY); - - if (appUebKey == null) { - // should never happen - String msg = "getPortalContent: failed to get property " + PortalApiConstants.UEB_APP_KEY; - - logger.error(msg); - throw new Exception(msg); - } - final String separator = restURL.endsWith("/") || restPath.startsWith("/") ? "" : "/"; - final String restEndpointUrl = restURL + separator + restPath; - return delete(restEndpointUrl, userId, appName, requestId, appUebKey, appUserName, appPassword, contentType, - content,isBasicAuth); - } - - public String delete(String url, String loginId, String appName, String requestId, String appUebKey, - String appUserName, String appPassword, String contentType, String content,boolean isBasicAuth) throws Exception { - - if (logger.isDebugEnabled()) - logger.debug("RestWebServiceClient.post to URL " + url); - if (appName == null || appName.trim().length() == 0) - appName = "Unknown"; - if (requestId == null || requestId.trim().length() == 0) - requestId = UUID.randomUUID().toString(); - - URL obj = new URL(url); - // Create the connection object - HttpURLConnection con = (HttpURLConnection) obj.openConnection(); - con.setRequestMethod("DELETE"); - con.setConnectTimeout(3000); - // if the portal property is set then gets the timeout value from portal properties - if(PortalApiProperties.getProperty(PortalApiConstants.EXT_REQUEST_CONNECTION_TIMEOUT)!= null){ - con.setConnectTimeout(Integer.parseInt(PortalApiProperties.getProperty(PortalApiConstants.EXT_REQUEST_CONNECTION_TIMEOUT))); - } - con.setReadTimeout(15000); - if(PortalApiProperties.getProperty(PortalApiConstants.EXT_REQUEST_READ_TIMEOUT)!= null){ - con.setReadTimeout(Integer.parseInt(PortalApiProperties.getProperty(PortalApiConstants.EXT_REQUEST_READ_TIMEOUT))); - } - // add request header - con.setRequestProperty("uebkey", appUebKey); - if (appUserName != null) - con.setRequestProperty("username", appUserName); - if (appPassword != null) - con.setRequestProperty("password", appPassword); - con.setRequestProperty("LoginId", loginId); - con.setRequestProperty("user-agent", appName); - con.setRequestProperty("X-ECOMP-RequestID", requestId); - con.setRequestProperty("Content-Type", contentType); - if(isBasicAuth){ - String encoding = Base64.getEncoder().encodeToString((appUserName + ":" + appPassword).getBytes()); - con.setRequestProperty("Authorization", "Basic "+ encoding); - } - - con.setDoInput(true); - con.setDoOutput(true); - if( content != null) - { - con.getOutputStream().write(content.getBytes()); - } - con.getOutputStream().flush(); - con.getOutputStream().close(); - - int responseCode = con.getResponseCode(); - logger.debug("Response Code : " + responseCode); - - StringBuffer sb = new StringBuffer(); - InputStreamReader in = null; - char[] buf = new char[8196]; - int bytes; - try { - in = new InputStreamReader(con.getInputStream(), "UTF-8"); - while ((bytes = in.read(buf)) > 0) - sb.append(new String(buf, 0, bytes)); - } finally { - try { - if (in != null) - in.close(); - } catch (IOException ex) { - logger.warn("get: failed to close reader", ex); - } - } - - return sb.toString(); - } - - - /** - * Basic unit test for the client to call Portal app on localhost. - * - * @param args - * Ignored - * @throws Exception - */ - public static void main(String[] args) throws Exception { - RestWebServiceClient client = RestWebServiceClient.getInstance(); - final String getUrl = "http://www.ecomp.openecomp.org:8080/ecompportal/auxapi/analytics"; - String get = client.get(getUrl, "userId", "appName", null, "appUebKey", "appUserName", "appPassword", null); - System.out.println("Get result:\n" + get); - final String postUrl = "http://www.ecomp.openecomp.org:8080/ecompportal/auxapi/storeAnalytics"; - final String content = " { " + " \"action\" : \"test1\", " + " \"page\" : \"test2\", " - + " \"function\" : \"test3\", " + " \"userid\" : \"ab1234\" " + "}"; - String post = client.post(postUrl, "userId", "appName", null, "appUebKey", "appUserName", "appPassword", - "application/json", content, true); - System.out.println("Post result:\n" + post); - } -} |