From 7f535078ef80a7b7efa3e3325bfccb994fbd00e8 Mon Sep 17 00:00:00 2001 From: "Christopher Lott (cl778h)" Date: Thu, 31 Aug 2017 15:16:38 -0400 Subject: Rename packages to org.onap in 1.4.0-SNAPSHOT 19 - remove openecomp 72 - remediate Sonar scan issues 79 - removed unwanted left menu under Report 90 - apply approved license text Issue: PORTAL-19, PORTAL-72, PORTAL-79, PORTAL-90 Change-Id: I41a0ef5fba623d2242574bd15f2d9fb8029a496c Signed-off-by: Christopher Lott (cl778h) --- .../service/RNoteBookIntegrationService.java | 49 +++++++ .../service/RNoteBookIntegrationServiceImpl.java | 163 +++++++++++++++++++++ 2 files changed, 212 insertions(+) create mode 100644 ecomp-sdk/epsdk-workflow/src/main/java/org/onap/portalsdk/rnotebookintegration/service/RNoteBookIntegrationService.java create mode 100644 ecomp-sdk/epsdk-workflow/src/main/java/org/onap/portalsdk/rnotebookintegration/service/RNoteBookIntegrationServiceImpl.java (limited to 'ecomp-sdk/epsdk-workflow/src/main/java/org/onap/portalsdk/rnotebookintegration/service') diff --git a/ecomp-sdk/epsdk-workflow/src/main/java/org/onap/portalsdk/rnotebookintegration/service/RNoteBookIntegrationService.java b/ecomp-sdk/epsdk-workflow/src/main/java/org/onap/portalsdk/rnotebookintegration/service/RNoteBookIntegrationService.java new file mode 100644 index 00000000..11de7d25 --- /dev/null +++ b/ecomp-sdk/epsdk-workflow/src/main/java/org/onap/portalsdk/rnotebookintegration/service/RNoteBookIntegrationService.java @@ -0,0 +1,49 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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.portalsdk.rnotebookintegration.service; + +import java.util.Map; + +import org.onap.portalsdk.core.restful.domain.EcompUser; +import org.onap.portalsdk.rnotebookintegration.exception.RNotebookIntegrationException; + +public interface RNoteBookIntegrationService { + public String getRNotebookCredentials(String token) throws RNotebookIntegrationException, Exception; + + public String saveRNotebookCredentials(String notebookId, EcompUser user, Map params) throws RNotebookIntegrationException, Exception; +} diff --git a/ecomp-sdk/epsdk-workflow/src/main/java/org/onap/portalsdk/rnotebookintegration/service/RNoteBookIntegrationServiceImpl.java b/ecomp-sdk/epsdk-workflow/src/main/java/org/onap/portalsdk/rnotebookintegration/service/RNoteBookIntegrationServiceImpl.java new file mode 100644 index 00000000..8a21b71a --- /dev/null +++ b/ecomp-sdk/epsdk-workflow/src/main/java/org/onap/portalsdk/rnotebookintegration/service/RNoteBookIntegrationServiceImpl.java @@ -0,0 +1,163 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software 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. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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.portalsdk.rnotebookintegration.service; + +import java.security.SecureRandom; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; + +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.onap.portalsdk.core.restful.domain.EcompUser; +import org.onap.portalsdk.core.service.DataAccessService; +import org.onap.portalsdk.core.web.support.UserUtils; +import org.onap.portalsdk.rnotebookintegration.domain.RNoteBookCredentials; +import org.onap.portalsdk.rnotebookintegration.exception.RNotebookIntegrationException; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import com.fasterxml.jackson.core.JsonParseException; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +@Service("RNoteBookIntegrationService") +@Transactional +public class RNoteBookIntegrationServiceImpl implements RNoteBookIntegrationService { + + private final long tokenTTL = 50000L; + + private static final EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(RNoteBookIntegrationServiceImpl.class); + + @Autowired + private DataAccessService dataAccessService; + + public DataAccessService getDataAccessService() { + return dataAccessService; + } + + public void setDataAccessService(DataAccessService dataAccessService) { + this.dataAccessService = dataAccessService; + } + + @Override + public String getRNotebookCredentials(String token) throws RNotebookIntegrationException, Exception { + String retString = ""; + + try{ + RNoteBookCredentials notebookCredentials = (RNoteBookCredentials) this.getDataAccessService().getDomainObject(RNoteBookCredentials.class, token, new HashMap()); + if (notebookCredentials.getToken() == null || notebookCredentials.getToken().equals("")){ + throw new RNotebookIntegrationException(RNotebookIntegrationException.ERROR_CODE_TOKEN_INVALID); + } + Date currDate = new Date(); + if ((currDate.getTime() - notebookCredentials.getCreatedDate().getTime() > tokenTTL) || (notebookCredentials.getTokenReadDate() != null)){ + throw new RNotebookIntegrationException(RNotebookIntegrationException.ERROR_CODE_TOKEN_EXPIRED); + } + ObjectMapper mapper = new ObjectMapper(); + + try{ + EcompUser userInfo = mapper.readValue(notebookCredentials.getUserString(), EcompUser.class); + notebookCredentials.setUserInfo(userInfo); + } catch(JsonMappingException me){ + logger.error("error converting string to user. from JSON" + me.getMessage()); + } catch(JsonParseException pe){ + logger.error("error converting string to user. from JSON" + pe.getMessage()); + } + + try{ + Map params = mapper.readValue(notebookCredentials.getParametersString(), HashMap.class); + notebookCredentials.setParameters(params); + } catch(JsonMappingException me){ + logger.error("error converting string to parameters. from JSON" + me.getMessage()); + } catch(JsonParseException pe){ + logger.error("error converting string to parameters. from JSON" + pe.getMessage()); + } + + //expiring the token + try{ + notebookCredentials.setTokenReadDate(new Date()); + this.getDataAccessService().saveDomainObject(notebookCredentials, null); + } catch(Exception e){ + logger.info("Error while expiring the token"); + logger.error(e.getMessage()); + throw new Exception(); + } + //notebookCredentials.setUserString(null); + retString = mapper.writeValueAsString(notebookCredentials); + } catch(RNotebookIntegrationException re){ + logger.error(re.getMessage()); + throw re; + } catch(Exception e){ + logger.info("Error while parsing the rcloud notebook credentials"); + logger.error(e.getMessage()); + throw new Exception(); + } + + return retString; + } + + @Override + public String saveRNotebookCredentials(String notebookId, EcompUser user, Map params) throws RNotebookIntegrationException, Exception { + + String token = ""; + try{ + token = UUID.randomUUID().toString(); + + ObjectMapper mapper = new ObjectMapper(); + ; + RNoteBookCredentials rc = new RNoteBookCredentials(); + rc.setToken(token); + rc.setCreatedDate(new Date()); + rc.setNotebookID(notebookId); + rc.setParametersString(mapper.writeValueAsString(params)); + rc.setUserString(mapper.writeValueAsString(user)); + + this.getDataAccessService().saveDomainObject(rc, null); + + } catch(Exception e){ + logger.info("Error while parsing the rcloud notebook credentials"); + logger.error(e.getMessage()); + throw new Exception(); + } + + return token; + } + + +} -- cgit 1.2.3-korg