From 33c5f5ea32e67369be0dee18ad55103deaf4d2e3 Mon Sep 17 00:00:00 2001 From: Vidyashree Rama Date: Fri, 16 Nov 2018 14:46:22 +0530 Subject: Remove access token as mandatory parameter Remove access token as mandatory parameter in restconf collector request. Issue-ID: DCAEGEN2-981 Change-Id: I97629f40b52253b4e14c9569c2048f613f610ff7 Signed-off-by: Vidyashree Rama --- .../restconf/common/AdditionalHeaderWebTarget.java | 10 +++--- .../collectors/restconf/common/RestConfProc.java | 40 +++++++++++++++------- 2 files changed, 34 insertions(+), 16 deletions(-) (limited to 'src/main') diff --git a/src/main/java/org/onap/dcae/collectors/restconf/common/AdditionalHeaderWebTarget.java b/src/main/java/org/onap/dcae/collectors/restconf/common/AdditionalHeaderWebTarget.java index 81a658d..e814778 100644 --- a/src/main/java/org/onap/dcae/collectors/restconf/common/AdditionalHeaderWebTarget.java +++ b/src/main/java/org/onap/dcae/collectors/restconf/common/AdditionalHeaderWebTarget.java @@ -29,25 +29,27 @@ import java.util.Map; class AdditionalHeaderWebTarget implements WebTarget { private WebTarget base; private String token; + private String headerName; - public AdditionalHeaderWebTarget(WebTarget target, String token) { + public AdditionalHeaderWebTarget(WebTarget target, String token, String headerName) { base = target; this.token = token; + this.headerName = headerName; } @Override public Invocation.Builder request() { - return base.request().header("X-ACCESS-TOKEN", token); + return base.request().header(headerName, token); } @Override public Invocation.Builder request(String... acceptedResponseTypes) { - return base.request().header("X-ACCESS-TOKEN", token); + return base.request().header(headerName, token); } @Override public Invocation.Builder request(MediaType... acceptedResponseTypes) { - return base.request().header("X-ACCESS-TOKEN", token); + return base.request().header(headerName, token); } @Override diff --git a/src/main/java/org/onap/dcae/collectors/restconf/common/RestConfProc.java b/src/main/java/org/onap/dcae/collectors/restconf/common/RestConfProc.java index 4b3154c..5a4c880 100755 --- a/src/main/java/org/onap/dcae/collectors/restconf/common/RestConfProc.java +++ b/src/main/java/org/onap/dcae/collectors/restconf/common/RestConfProc.java @@ -36,6 +36,7 @@ import javax.net.ssl.X509TrustManager; import javax.ws.rs.client.Client; import javax.ws.rs.client.ClientBuilder; import javax.ws.rs.client.WebTarget; +import javax.ws.rs.core.HttpHeaders; import java.nio.file.Paths; import java.security.KeyManagementException; import java.security.NoSuchAlgorithmException; @@ -47,9 +48,10 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.LinkedBlockingQueue; +import java.util.Base64; -import static org.onap.dcae.collectors.restconf.common.RestapiCallNodeUtil.addAuthType; import static org.onap.dcae.collectors.restconf.common.RestapiCallNodeUtil.getParameters; +import static org.onap.dcae.collectors.restconf.common.RestapiCallNodeUtil.addAuthType; public class RestConfProc { @@ -171,16 +173,19 @@ public class RestConfProc { paramMap.get(Constants.KSETTING_KEY_STORE_FILENAME)); params.put(Constants.KSETTING_KEY_STORE_PASSWORD, "adminadmin"); - restApiCallNode.sendRequest(params, ctx, null); - log.debug("ctx response" + ctx); - String httpResponse = ctx.getAttribute("httpResponse"); - JSONObject jsonObj = new JSONObject(httpResponse); - log.debug("http response" + httpResponse); - JSONObject data = jsonObj.getJSONObject("data"); - String tokenId = data.get("token_id").toString(); - - paramMap.put("customHttpHeaders", "X-ACCESS-TOKEN=" + tokenId); - paramMap.put("TokenId", tokenId); + String httpResponse = null; + try { + restApiCallNode.sendRequest(params, ctx, null); + httpResponse = ctx.getAttribute("httpResponse"); + JSONObject jsonObj = new JSONObject(httpResponse); + JSONObject data = jsonObj.getJSONObject("data"); + String tokenId = data.get("token_id").toString(); + paramMap.put("customHttpHeaders", "X-ACCESS-TOKEN=" + tokenId); + paramMap.put("TokenId", tokenId); + } catch (Exception e) { + log.info("Access token is not supported" + e.getMessage()); + log.info("http response" + httpResponse); + } restApiCallNode.sendRequest(paramMap, ctx, null); @@ -254,7 +259,13 @@ public class RestConfProc { Client client = ignoreSslClient().register(SseFeature.class); WebTarget target = addAuthType(client, p).target(url); - AdditionalHeaderWebTarget newTarget = new AdditionalHeaderWebTarget(target, paramMap.get("TokenId")); + String token = paramMap.get("TokenId"); + String headerName = "X-ACCESS-TOKEN"; + if (token == null) { + headerName = HttpHeaders.AUTHORIZATION; + token = getAuthorizationToken(p.restapiUser, p.restapiPassword); + } + AdditionalHeaderWebTarget newTarget = new AdditionalHeaderWebTarget(target, token, headerName); EventSource eventSource = EventSource.target(newTarget).build(); eventSource.register(new DataChangeEventListener(ctx)); eventSource.open(); @@ -273,6 +284,11 @@ public class RestConfProc { } } + private String getAuthorizationToken(String userName, String password) { + return "Basic " + Base64.getEncoder().encodeToString(( + userName + ":" + password).getBytes()); + } + /** * To process the array of events which are received from controller * -- cgit 1.2.3-korg