From 74879a7b7a5607c89aef5fa9d64aca5ddea8e3b7 Mon Sep 17 00:00:00 2001 From: Gurjeet Bedi Date: Wed, 31 Jan 2018 15:05:30 -0500 Subject: Config to be able to route GET through datarouter Option to route GET through data router Issue-ID: AAI-482 Change-Id: I6b9a3621d5e3a5ec83d69a948917865941ede833 Signed-off-by: Gurjeet Bedi --- src/main/java/org/onap/crud/dao/DataRouterDAO.java | 51 ++++++++++++++++++++++ .../java/org/onap/crud/dao/champ/ChampDao.java | 34 ++++++++++----- 2 files changed, 73 insertions(+), 12 deletions(-) create mode 100644 src/main/java/org/onap/crud/dao/DataRouterDAO.java (limited to 'src/main/java/org/onap/crud/dao') diff --git a/src/main/java/org/onap/crud/dao/DataRouterDAO.java b/src/main/java/org/onap/crud/dao/DataRouterDAO.java new file mode 100644 index 0000000..910fcf2 --- /dev/null +++ b/src/main/java/org/onap/crud/dao/DataRouterDAO.java @@ -0,0 +1,51 @@ +/** + * ============LICENSE_START======================================================= + * Gizmo + * ================================================================================ + * Copyright © 2017 AT&T Intellectual Property. + * Copyright © 2017 Amdocs + * All rights reserved. + * ================================================================================ + * 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. + * ============LICENSE_END========================================================= + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.crud.dao; + +import org.eclipse.jetty.util.security.Password; +import org.onap.aai.cl.api.Logger; +import org.onap.aai.cl.eelf.LoggerFactory; +import org.onap.aai.restclient.client.RestClient; +import org.onap.aai.restclient.enums.RestAuthenticationMode; +import org.onap.crud.dao.champ.ChampDao; +import org.onap.crud.util.CrudServiceConstants; + +public class DataRouterDAO extends ChampDao { + private Logger logger = LoggerFactory.getInstance().getLogger(DataRouterDAO.class.getName()); + + public DataRouterDAO(String url, String certPassword) { + try { + client = new RestClient().authenticationMode(RestAuthenticationMode.SSL_CERT).validateServerHostname(false) + .validateServerCertChain(false).clientCertFile(CrudServiceConstants.CRD_DATAROUTER_AUTH_FILE) + .clientCertPassword(Password.deobfuscate(certPassword)); + + baseObjectUrl = url + OBJECT_SUB_URL; + baseRelationshipUrl = url + RELATIONSHIP_SUB_URL; + } catch (Exception e) { + System.out.println("Error setting up datarouter configuration"); + e.printStackTrace(); + System.exit(1); + } + } +} diff --git a/src/main/java/org/onap/crud/dao/champ/ChampDao.java b/src/main/java/org/onap/crud/dao/champ/ChampDao.java index 0bf8368..cd0e66f 100644 --- a/src/main/java/org/onap/crud/dao/champ/ChampDao.java +++ b/src/main/java/org/onap/crud/dao/champ/ChampDao.java @@ -57,26 +57,29 @@ import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; public class ChampDao implements GraphDao { - private RestClient client; - private String baseObjectUrl; - private String baseRelationshipUrl; - private String baseTransactionUrl; - - private static final String HEADER_FROM_APP = "X-FromAppId"; - private static final String HEADER_TRANS_ID = "X-TransactionId"; - private static final String FROM_APP_NAME = "Gizmo"; - private static final String OBJECT_SUB_URL = "objects"; - private static final String RELATIONSHIP_SUB_URL = "relationships"; - private static final String TRANSACTION_SUB_URL = "transaction"; + protected RestClient client; + protected String baseObjectUrl; + protected String baseRelationshipUrl; + protected String baseTransactionUrl; + + protected static final String HEADER_FROM_APP = "X-FromAppId"; + protected static final String HEADER_TRANS_ID = "X-TransactionId"; + protected static final String FROM_APP_NAME = "Gizmo"; + protected static final String OBJECT_SUB_URL = "objects"; + protected static final String RELATIONSHIP_SUB_URL = "relationships"; + protected static final String TRANSACTION_SUB_URL = "transaction"; private Logger logger = LoggerFactory.getInstance().getLogger(ChampDao.class.getName()); // We use a custom vertex serializer for champ because it expects "key" // instead of "id" - private static final Gson champGson = new GsonBuilder() + protected static final Gson champGson = new GsonBuilder() .registerTypeAdapterFactory(new GsonJava8TypeAdapterFactory()) .registerTypeAdapter(Vertex.class, new ChampVertexSerializer()) .registerTypeAdapter(Edge.class, new ChampEdgeSerializer()).create(); + + public ChampDao() { + } public ChampDao(String champUrl, String certPassword) { try { @@ -94,6 +97,13 @@ public class ChampDao implements GraphDao { } } + public ChampDao(RestClient client, String baseObjectUrl, String baseRelationshipUrl, String baseTransactionUrl) { + this.client = client; + this.baseObjectUrl = baseObjectUrl; + this.baseRelationshipUrl = baseRelationshipUrl; + this.baseTransactionUrl = baseTransactionUrl; + } + @Override public Vertex getVertex(String id, String version) throws CrudException { String url = baseObjectUrl + "/" + id; -- cgit 1.2.3-korg