summaryrefslogtreecommitdiffstats
path: root/ecomp-sdk/epsdk-fw/src/main/java/org/openecomp/portalsdk/core/onboarding/rest/RestWebServiceClient.java
diff options
context:
space:
mode:
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.java174
1 files changed, 158 insertions, 16 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
index f01590d4..1d4feb07 100644
--- 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
@@ -24,6 +24,7 @@ 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;
@@ -32,7 +33,7 @@ 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 to the
+ * Simple REST client for GET-ing content from and POST-ing content , Delete to the
* Portal application.
*/
public class RestWebServiceClient {
@@ -86,9 +87,9 @@ public class RestWebServiceClient {
* @throws Exception
* on any failure
*/
- public String getPortalContent(String restPath, String userId, String appName, String requestId, String appUserName,
- String appPassword) throws Exception {
- String restURL = PortalApiProperties.getProperty(PortalApiConstants.ECOMP_REST_URL);
+ 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;
@@ -96,17 +97,23 @@ public class RestWebServiceClient {
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;
+ String msg = "getPortalContent: failed to get property " + PortalApiConstants.UEB_APP_KEY;
+
logger.error(msg);
throw new Exception(msg);
}
final String restEndpointUrl = restURL + restPath;
- return get(restEndpointUrl, userId, appName, requestId, appUebKey, appUserName, appPassword);
-
+ 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.
*
@@ -131,8 +138,39 @@ public class RestWebServiceClient {
* @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.");
@@ -150,12 +188,17 @@ public class RestWebServiceClient {
// add request header
con.setRequestProperty("uebkey", appUebKey);
- con.setRequestProperty("username", appUserName);
- con.setRequestProperty("password", appPassword);
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);
@@ -181,7 +224,7 @@ public class RestWebServiceClient {
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
@@ -211,25 +254,30 @@ public class RestWebServiceClient {
* on any failure
*/
public String postPortalContent(String restPath, String userId, String appName, String requestId,
- String appUserName, String appPassword, String contentType, String content) throws Exception {
+ 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);
+ content,isBasicAuth);
}
/**
@@ -264,7 +312,7 @@ public class RestWebServiceClient {
* On any error
*/
public String post(String url, String loginId, String appName, String requestId, String appUebKey,
- String appUserName, String appPassword, String contentType, String content) throws Exception {
+ String appUserName, String appPassword, String contentType, String content, boolean isBasicAuth) throws Exception {
if (logger.isDebugEnabled())
logger.debug("RestWebServiceClient.post to URL " + url);
@@ -290,6 +338,99 @@ public class RestWebServiceClient {
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);
+ 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 ,String filter) 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,filter);
+ }
+
+ public String delete(String url, String loginId, String appName, String requestId, String appUebKey,
+ String appUserName, String appPassword, String contentType, String content,boolean isBasicAuth ,String filter) 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);
+ con.setReadTimeout(15000);
+
+ // 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);
+ con.setRequestProperty("filter", filter);
+ if(isBasicAuth){
+ String encoding = Base64.getEncoder().encodeToString((appUserName + ":" + appPassword).getBytes());
+ con.setRequestProperty("Authorization", "Basic "+ encoding);
+ }
con.setDoInput(true);
con.setDoOutput(true);
@@ -319,6 +460,7 @@ public class RestWebServiceClient {
return sb.toString();
}
+
/**
* Basic unit test for the client to call Portal app on localhost.
@@ -330,13 +472,13 @@ public class RestWebServiceClient {
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");
+ 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);
+ "application/json", content, true);
System.out.println("Post result:\n" + post);
}
}