X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Forg%2Fopenecomp%2Fdatarouter%2Futil%2Fclient%2FNoAuthRestClient.java;h=b334226f8bbcca4ccbb92c91cc81e6370fe8b266;hb=e6be129e4865104321cdd6313f9729c4e7b07d22;hp=13406a7a433785238fd9c2e9e3b0137db7bfb5b2;hpb=4335f9a49115e0a1171cf4261b5097af9d4a0bdb;p=aai%2Fdata-router.git diff --git a/src/main/java/org/openecomp/datarouter/util/client/NoAuthRestClient.java b/src/main/java/org/openecomp/datarouter/util/client/NoAuthRestClient.java index 13406a7..b334226 100644 --- a/src/main/java/org/openecomp/datarouter/util/client/NoAuthRestClient.java +++ b/src/main/java/org/openecomp/datarouter/util/client/NoAuthRestClient.java @@ -8,217 +8,215 @@ * 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 - * + *

+ * 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. * ============LICENSE_END========================================================= - * + *

* ECOMP is a trademark and service mark of AT&T Intellectual Property. */ package org.openecomp.datarouter.util.client; -import java.util.Arrays; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import javax.ws.rs.core.MediaType; - +import com.fasterxml.jackson.databind.JsonNode; import org.apache.camel.Exchange; -import org.apache.camel.component.http.HttpMessage; import org.apache.camel.Message; -import org.openecomp.cl.api.Logger; -import org.openecomp.cl.eelf.LoggerFactory; -import org.openecomp.cl.mdc.MdcContext; -import org.openecomp.datarouter.logging.DataRouterMsgs; -import org.openecomp.datarouter.util.AaiUiSvcPolicyUtil; -import org.openecomp.datarouter.util.NodeUtils; -import org.openecomp.datarouter.util.RouterServiceUtil; +import org.onap.aai.cl.api.Logger; +import org.onap.aai.cl.eelf.LoggerFactory; +import org.onap.aai.cl.mdc.MdcContext; import org.onap.aai.restclient.client.Headers; import org.onap.aai.restclient.client.OperationResult; import org.onap.aai.restclient.client.RestClient; import org.onap.aai.restclient.enums.RestAuthenticationMode; +import org.onap.aai.restclient.rest.HttpUtil; +import org.openecomp.datarouter.logging.DataRouterMsgs; +import org.openecomp.datarouter.util.AaiUiSvcPolicyUtil; +import org.openecomp.datarouter.util.NodeUtils; +import org.openecomp.datarouter.util.RouterServiceUtil; import org.slf4j.MDC; - import org.springframework.http.HttpStatus; -import org.onap.aai.restclient.rest.HttpUtil; -import com.fasterxml.jackson.databind.JsonNode; +import javax.ws.rs.core.MediaType; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; public class NoAuthRestClient implements SvcRoutingRestClient { - private RestClient restClient; - - private String host; - private String port; - private String originUrl; - private String targetUri; - private JsonNode targetPayload; - private Logger logger; - private Logger auditLogger; - - public NoAuthRestClient(int connectTimeOut, int readTimeOut) { - LoggerFactory loggerFactoryInstance = LoggerFactory.getInstance(); - logger = loggerFactoryInstance.getLogger(NoAuthRestClient.class.getName()); - auditLogger = loggerFactoryInstance.getAuditLogger(NoAuthRestClient.class.getName()); - restClient = new RestClient().authenticationMode(RestAuthenticationMode.HTTP_NOAUTH) - .connectTimeoutMs(connectTimeOut).readTimeoutMs(readTimeOut); - } - - - private OperationResult getResults(String url, JsonNode payload){ - Map> headers = new HashMap<>(); - headers.put(Headers.FROM_APP_ID, Arrays.asList("Synapse")); - headers.put(Headers.TRANSACTION_ID, Arrays.asList(MDC.get(MdcContext.MDC_REQUEST_ID))); - return this.getRestClient().post(url, payload.asText(), headers, MediaType.APPLICATION_JSON_TYPE, MediaType.APPLICATION_JSON_TYPE); - } - - public final void handleRequest (String host, String port, Exchange exchange) throws Exception { - RouterServiceUtil.setMdcContext(exchange); - Message message = exchange.getIn(); - String body = message.getBody(String.class); - OperationResult result = new OperationResult(); - - this.setHost(host); - this.setPort(port); - - this.setOriginUrl(message.getHeader(Exchange.HTTP_URL).toString()); - if (body != null && body.length() != 0) { - JsonNode node = NodeUtils.convertJsonStrToJsonNode(body); - this.setTargetPayload(AaiUiSvcPolicyUtil.getOriginPayload(node)); - this.setTargetUri(AaiUiSvcPolicyUtil.getTargetUri(node)); - } - - if ( this.getTargetPayload() == null || this.getTargetUri() == null){ - logger.error(DataRouterMsgs.INVALID_ORIGIN_PAYLOAD, body); - result.setResultCode(HttpStatus.BAD_REQUEST.value()); - result.setFailureCause("Invalid payload"); + private RestClient restClient; + + private String host; + private String port; + private String originUrl; + private String targetUri; + private JsonNode targetPayload; + private Logger logger; + private Logger auditLogger; + + public NoAuthRestClient(int connectTimeOut, int readTimeOut) { + LoggerFactory loggerFactoryInstance = LoggerFactory.getInstance(); + logger = loggerFactoryInstance.getLogger(NoAuthRestClient.class.getName()); + auditLogger = loggerFactoryInstance.getAuditLogger(NoAuthRestClient.class.getName()); + restClient = new RestClient().authenticationMode(RestAuthenticationMode.HTTP_NOAUTH) + .connectTimeoutMs(connectTimeOut).readTimeoutMs(readTimeOut); + } + + + private OperationResult getResults(String url, JsonNode payload) { + Map> headers = new HashMap<>(); + headers.put(Headers.FROM_APP_ID, Arrays.asList("Synapse")); + headers.put(Headers.TRANSACTION_ID, Arrays.asList(MDC.get(MdcContext.MDC_REQUEST_ID))); + return this.getRestClient().post(url, payload.asText(), + headers, MediaType.APPLICATION_JSON_TYPE, + MediaType.APPLICATION_JSON_TYPE); } - - String targetUrl = "http://" + host + ":" + port + "/" + this.targetUri; - auditLogger.info(DataRouterMsgs.ROUTING_FROM_TO, this.getOriginUrl(), targetUrl); - long startTimeInMs = System.currentTimeMillis(); - - result = this.getResults(targetUrl, targetPayload); - - long targetMsOpTime = (System.currentTimeMillis() - startTimeInMs); - auditLogger.info(DataRouterMsgs.OP_TIME, "Target service at "+ targetUrl, String.valueOf(targetMsOpTime)); - - int rc = result.getResultCode(); - String resultStr = ""; - if (HttpUtil.isHttpResponseClassSuccess(rc)) { - resultStr = result.getResult(); - } else { - resultStr = result.getFailureCause(); + + public final void handleRequest(String host, String port, Exchange exchange) throws Exception { + RouterServiceUtil.setMdcContext(exchange); + Message message = exchange.getIn(); + String body = message.getBody(String.class); + OperationResult result = new OperationResult(); + + this.setHost(host); + this.setPort(port); + + this.setOriginUrl(message.getHeader(Exchange.HTTP_URL).toString()); + if (body != null && body.length() != 0) { + JsonNode node = NodeUtils.convertJsonStrToJsonNode(body); + this.setTargetPayload(AaiUiSvcPolicyUtil.getOriginPayload(node)); + this.setTargetUri(AaiUiSvcPolicyUtil.getTargetUri(node)); + } + + if (this.getTargetPayload() == null || this.getTargetUri() == null) { + logger.error(DataRouterMsgs.INVALID_ORIGIN_PAYLOAD, body); + result.setResultCode(HttpStatus.BAD_REQUEST.value()); + result.setFailureCause("Invalid payload"); + } + + String targetUrl = "http://" + host + ":" + port + "/" + this.targetUri; + auditLogger.info(DataRouterMsgs.ROUTING_FROM_TO, this.getOriginUrl(), targetUrl); + long startTimeInMs = System.currentTimeMillis(); + + result = this.getResults(targetUrl, targetPayload); + + long targetMsOpTime = System.currentTimeMillis() - startTimeInMs; + auditLogger.info(DataRouterMsgs.OP_TIME, "Target service at " + targetUrl, String.valueOf(targetMsOpTime)); + + int rc = result.getResultCode(); + String resultStr; + if (HttpUtil.isHttpResponseClassSuccess(rc)) { + resultStr = result.getResult(); + } else { + resultStr = result.getFailureCause(); + } + + logger.debug(DataRouterMsgs.ROUTING_RESPONSE, targetUrl, result.toString()); + exchange.getOut().setHeader(Exchange.HTTP_RESPONSE_CODE, rc); + exchange.getOut().setBody(resultStr); + } + + + /* (non-Javadoc) + * @see org.openecomp.datarouter.util.client.SvcRoutingRestClient#getHost() + */ + @Override + public String getHost() { + return host; + } + + /* (non-Javadoc) + * @see org.openecomp.datarouter.util.client.SvcRoutingRestClient#setHost(java.lang.String) + */ + @Override + public void setHost(String host) { + this.host = host; + } + + + /* (non-Javadoc) + * @see org.openecomp.datarouter.util.client.SvcRoutingRestClient#getPort() + */ + @Override + public String getPort() { + return port; + } + + + /* (non-Javadoc) + * @see org.openecomp.datarouter.util.client.SvcRoutingRestClient#setPort(java.lang.String) + */ + @Override + public void setPort(String port) { + this.port = port; + } + + + /* (non-Javadoc) + * @see org.openecomp.datarouter.util.client.SvcRoutingRestClient#getTargetUri() + */ + @Override + public String getTargetUri() { + return targetUri; + } + + + /* (non-Javadoc) + * @see org.openecomp.datarouter.util.client.SvcRoutingRestClient#setTargetUri(java.lang.String) + */ + @Override + public void setTargetUri(String targetUri) { + this.targetUri = targetUri; + } + + + /* (non-Javadoc) + * @see org.openecomp.datarouter.util.client.SvcRoutingRestClient#getTargetPayload() + */ + @Override + public JsonNode getTargetPayload() { + return targetPayload; + } + + + /* (non-Javadoc) + * @see org.openecomp.datarouter.util.client + * .SvcRoutingRestClient#setTargetPayload(com.fasterxml.jackson.databind.JsonNode) + */ + @Override + public void setTargetPayload(JsonNode targetPayload) { + this.targetPayload = targetPayload; + } + + + /* (non-Javadoc) + * @see org.openecomp.datarouter.util.client.SvcRoutingRestClient#getRestClient() + */ + @Override + public RestClient getRestClient() { + return restClient; + } + + /* (non-Javadoc) + * @see org.openecomp.datarouter.util.client.SvcRoutingRestClient#setRestClient() + */ + @Override + public void setRestClient(RestClient client) { + this.restClient = client; + } + + + public String getOriginUrl() { + return originUrl; + } + + + public void setOriginUrl(String originUrl) { + this.originUrl = originUrl; } - - logger.debug(DataRouterMsgs.ROUTING_RESPONSE, targetUrl, result.toString()); - exchange.getOut().setHeader(Exchange.HTTP_RESPONSE_CODE, rc); - exchange.getOut().setBody(resultStr); - } - - - /* (non-Javadoc) - * @see org.openecomp.datarouter.util.client.SvcRoutingRestClient#getHost() - */ - @Override - public String getHost() { - return host; - } - - /* (non-Javadoc) - * @see org.openecomp.datarouter.util.client.SvcRoutingRestClient#setHost(java.lang.String) - */ - @Override - public void setHost(String host) { - this.host = host; - } - - - /* (non-Javadoc) - * @see org.openecomp.datarouter.util.client.SvcRoutingRestClient#getPort() - */ - @Override - public String getPort() { - return port; - } - - - /* (non-Javadoc) - * @see org.openecomp.datarouter.util.client.SvcRoutingRestClient#setPort(java.lang.String) - */ - @Override - public void setPort(String port) { - this.port = port; - } - - - /* (non-Javadoc) - * @see org.openecomp.datarouter.util.client.SvcRoutingRestClient#getTargetUri() - */ - @Override - public String getTargetUri() { - return targetUri; - } - - - /* (non-Javadoc) - * @see org.openecomp.datarouter.util.client.SvcRoutingRestClient#setTargetUri(java.lang.String) - */ - @Override - public void setTargetUri(String targetUri) { - this.targetUri = targetUri; - } - - - /* (non-Javadoc) - * @see org.openecomp.datarouter.util.client.SvcRoutingRestClient#getTargetPayload() - */ - @Override - public JsonNode getTargetPayload() { - return targetPayload; - } - - - /* (non-Javadoc) - * @see org.openecomp.datarouter.util.client.SvcRoutingRestClient#setTargetPayload(com.fasterxml.jackson.databind.JsonNode) - */ - @Override - public void setTargetPayload(JsonNode targetPayload) { - this.targetPayload = targetPayload; - } - - - /* (non-Javadoc) - * @see org.openecomp.datarouter.util.client.SvcRoutingRestClient#getRestClient() - */ - @Override - public RestClient getRestClient() { - return restClient; - } - - /* (non-Javadoc) - * @see org.openecomp.datarouter.util.client.SvcRoutingRestClient#setRestClient() - */ - @Override - public void setRestClient(RestClient client) { - this.restClient = client; - } - - - public String getOriginUrl() { - return originUrl; - } - - - public void setOriginUrl(String originUrl) { - this.originUrl = originUrl; - } - }