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) --- .../controller/NotebookController.java | 68 +++++++++ .../controller/NotebookTestController.java | 60 ++++++++ .../controller/RNoteBookController.java | 118 +++++++++++++++ .../controller/RNoteBookFEController.java | 131 +++++++++++++++++ .../domain/RNoteBookCredentials.java | 112 ++++++++++++++ .../exception/RNotebookIntegrationException.java | 59 ++++++++ .../service/RNoteBookIntegrationService.java | 49 +++++++ .../service/RNoteBookIntegrationServiceImpl.java | 163 +++++++++++++++++++++ 8 files changed, 760 insertions(+) create mode 100644 ecomp-sdk/epsdk-workflow/src/main/java/org/onap/portalsdk/rnotebookintegration/controller/NotebookController.java create mode 100644 ecomp-sdk/epsdk-workflow/src/main/java/org/onap/portalsdk/rnotebookintegration/controller/NotebookTestController.java create mode 100644 ecomp-sdk/epsdk-workflow/src/main/java/org/onap/portalsdk/rnotebookintegration/controller/RNoteBookController.java create mode 100644 ecomp-sdk/epsdk-workflow/src/main/java/org/onap/portalsdk/rnotebookintegration/controller/RNoteBookFEController.java create mode 100644 ecomp-sdk/epsdk-workflow/src/main/java/org/onap/portalsdk/rnotebookintegration/domain/RNoteBookCredentials.java create mode 100644 ecomp-sdk/epsdk-workflow/src/main/java/org/onap/portalsdk/rnotebookintegration/exception/RNotebookIntegrationException.java 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') diff --git a/ecomp-sdk/epsdk-workflow/src/main/java/org/onap/portalsdk/rnotebookintegration/controller/NotebookController.java b/ecomp-sdk/epsdk-workflow/src/main/java/org/onap/portalsdk/rnotebookintegration/controller/NotebookController.java new file mode 100644 index 00000000..d5f4288d --- /dev/null +++ b/ecomp-sdk/epsdk-workflow/src/main/java/org/onap/portalsdk/rnotebookintegration/controller/NotebookController.java @@ -0,0 +1,68 @@ +/* + * ============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.controller; + +import javax.servlet.http.HttpServletRequest; + +import org.onap.portalsdk.core.controller.RestrictedBaseController; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.onap.portalsdk.core.service.UserProfileService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.servlet.ModelAndView; + +@Controller +@RequestMapping("/") +public class NotebookController extends RestrictedBaseController{ + + @RequestMapping(value = {"/notebook" }, method = RequestMethod.GET) + public ModelAndView noteBook(HttpServletRequest request) { + + try { + + } catch (Exception e) { + + + } + return new ModelAndView(getViewName()); + } + + +} diff --git a/ecomp-sdk/epsdk-workflow/src/main/java/org/onap/portalsdk/rnotebookintegration/controller/NotebookTestController.java b/ecomp-sdk/epsdk-workflow/src/main/java/org/onap/portalsdk/rnotebookintegration/controller/NotebookTestController.java new file mode 100644 index 00000000..973f8d05 --- /dev/null +++ b/ecomp-sdk/epsdk-workflow/src/main/java/org/onap/portalsdk/rnotebookintegration/controller/NotebookTestController.java @@ -0,0 +1,60 @@ +/* + * ============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.controller; + +import javax.servlet.http.HttpServletRequest; + +import org.onap.portalsdk.core.controller.RestrictedBaseController; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.servlet.ModelAndView; + +@Controller +@RequestMapping("/") +public class NotebookTestController extends RestrictedBaseController{ + + @RequestMapping(value = {"/nbooktest" }, method = RequestMethod.GET) + public ModelAndView noteBook(HttpServletRequest request) { + return new ModelAndView(getViewName()); + } + + +} diff --git a/ecomp-sdk/epsdk-workflow/src/main/java/org/onap/portalsdk/rnotebookintegration/controller/RNoteBookController.java b/ecomp-sdk/epsdk-workflow/src/main/java/org/onap/portalsdk/rnotebookintegration/controller/RNoteBookController.java new file mode 100644 index 00000000..9a178450 --- /dev/null +++ b/ecomp-sdk/epsdk-workflow/src/main/java/org/onap/portalsdk/rnotebookintegration/controller/RNoteBookController.java @@ -0,0 +1,118 @@ +/* + * ============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.controller; + +import java.util.HashMap; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.hibernate.validator.internal.util.privilegedactions.GetMethodFromPropertyName; +import org.onap.portalsdk.core.controller.RestrictedBaseController; +import org.onap.portalsdk.core.controller.RestrictedRESTfulBaseController; +import org.onap.portalsdk.core.domain.User; +import org.onap.portalsdk.core.restful.domain.EcompUser; +import org.onap.portalsdk.core.util.SystemProperties; +import org.onap.portalsdk.core.web.support.JsonMessage; +import org.onap.portalsdk.core.web.support.UserUtils; +import org.onap.portalsdk.rnotebookintegration.exception.RNotebookIntegrationException; +import org.onap.portalsdk.rnotebookintegration.service.RNoteBookIntegrationService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; + +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; + +@Controller +@RequestMapping("/rNotebook/") + +public class RNoteBookController extends RestrictedRESTfulBaseController { + + @Autowired + private RNoteBookIntegrationService rNoteBookIntegrationService; + + + + public RNoteBookIntegrationService getrNoteBookIntegrationService() { + return rNoteBookIntegrationService; + } + + + + public void setrNoteBookIntegrationService( + RNoteBookIntegrationService rNoteBookIntegrationService) { + this.rNoteBookIntegrationService = rNoteBookIntegrationService; + } + + + + @RequestMapping(value = { "authCr" }, method = RequestMethod.GET, produces = "application/json") + public @ResponseBody ResponseEntity getRNotebookCredentials (String token) throws Exception { + //ObjectMapper mapper = new ObjectMapper(); + //mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + //JsonNode root = mapper.readTree(request.getReader()); + //String token = root.get("authenticationToken").textValue(); + + String returnJSON = ""; + try{ + returnJSON = this.getrNoteBookIntegrationService().getRNotebookCredentials(token); + } catch(RNotebookIntegrationException re){ + if (re.getErrorCode().equals(RNotebookIntegrationException.ERROR_CODE_TOKEN_EXPIRED)){ + return new ResponseEntity(JsonMessage.buildJsonResponse(false, re.getMessage()), HttpStatus.BAD_REQUEST); + } + else { + return new ResponseEntity(JsonMessage.buildJsonResponse(false, re.getMessage()), HttpStatus.BAD_REQUEST); + } + } + catch (Exception e){ + return new ResponseEntity(JsonMessage.buildJsonResponse(false, e.getMessage()), HttpStatus.BAD_REQUEST); + } + + return new ResponseEntity(returnJSON, HttpStatus.OK); + + } + + +} diff --git a/ecomp-sdk/epsdk-workflow/src/main/java/org/onap/portalsdk/rnotebookintegration/controller/RNoteBookFEController.java b/ecomp-sdk/epsdk-workflow/src/main/java/org/onap/portalsdk/rnotebookintegration/controller/RNoteBookFEController.java new file mode 100644 index 00000000..0268284c --- /dev/null +++ b/ecomp-sdk/epsdk-workflow/src/main/java/org/onap/portalsdk/rnotebookintegration/controller/RNoteBookFEController.java @@ -0,0 +1,131 @@ +/* + * ============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.controller; + +import java.util.HashMap; +import java.util.Iterator; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.json.JSONObject; +import org.onap.portalsdk.core.controller.RestrictedBaseController; +import org.onap.portalsdk.core.domain.User; +import org.onap.portalsdk.core.restful.domain.EcompUser; +import org.onap.portalsdk.core.util.SystemProperties; +import org.onap.portalsdk.core.web.support.UserUtils; +import org.onap.portalsdk.rnotebookintegration.exception.RNotebookIntegrationException; +import org.onap.portalsdk.rnotebookintegration.service.RNoteBookIntegrationService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; + +@Controller +@RequestMapping("/rNotebookFE/") +public class RNoteBookFEController extends RestrictedBaseController { + @Autowired + private RNoteBookIntegrationService rNoteBookIntegrationService; + + + + public RNoteBookIntegrationService getrNoteBookIntegrationService() { + return rNoteBookIntegrationService; + } + + + + public void setrNoteBookIntegrationService( + RNoteBookIntegrationService rNoteBookIntegrationService) { + this.rNoteBookIntegrationService = rNoteBookIntegrationService; + } + + @RequestMapping(value = { "authCr" }, method = RequestMethod.POST, produces = "application/json") + public @ResponseBody ResponseEntity saveRNotebookCredentials (@RequestBody String notebookId, HttpServletRequest request, + HttpServletResponse response) throws Exception { + //ObjectMapper mapper = new ObjectMapper(); + //mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + //JsonNode root = mapper.readTree(request.getReader()); + //String token = root.get("authenticationToken").textValue(); + System.out.println("Notebook id "+notebookId); + System.out.println("Query parameters "+request.getParameter("qparams")); + String retUrl = ""; + try{ + + User user = UserUtils.getUserSession(request); + user = (User) this.getDataAccessService().getDomainObject(User.class, user.getId(), null); + + EcompUser ecUser =UserUtils.convertToEcompUser(user); + + HashMap map = new HashMap(); + JSONObject jObject = new JSONObject(request.getParameter("qparams")); + Iterator keys = jObject.keys(); + + while( keys.hasNext() ){ + String key = (String)keys.next(); + String value = jObject.getString(key); + map.put(key, value); + + } + + System.out.println("json : "+jObject); + System.out.println("map : "+map); + + // String token = this.getrNoteBookIntegrationService().saveRNotebookCredentials(notebookId, ecUser, new HashMap()); + String token = this.getrNoteBookIntegrationService().saveRNotebookCredentials(notebookId, ecUser, map); + + String guard = SystemProperties.getProperty("guard_notebook_url"); + + retUrl = guard + "id=" + token; + + + } catch (RNotebookIntegrationException re){ + return new ResponseEntity(re.getMessage(), HttpStatus.BAD_REQUEST); + } catch (Exception e){ + return new ResponseEntity(e.getMessage(), HttpStatus.BAD_REQUEST); + } + + return new ResponseEntity(retUrl, HttpStatus.OK); + + } + +} diff --git a/ecomp-sdk/epsdk-workflow/src/main/java/org/onap/portalsdk/rnotebookintegration/domain/RNoteBookCredentials.java b/ecomp-sdk/epsdk-workflow/src/main/java/org/onap/portalsdk/rnotebookintegration/domain/RNoteBookCredentials.java new file mode 100644 index 00000000..0744aab3 --- /dev/null +++ b/ecomp-sdk/epsdk-workflow/src/main/java/org/onap/portalsdk/rnotebookintegration/domain/RNoteBookCredentials.java @@ -0,0 +1,112 @@ +/* + * ============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.domain; + +import java.util.Date; +import java.util.Map; + +import org.onap.portalsdk.core.domain.User; +import org.onap.portalsdk.core.domain.support.DomainVo; +import org.onap.portalsdk.core.restful.domain.EcompUser; + +import com.fasterxml.jackson.annotation.JsonIgnore; + +public class RNoteBookCredentials extends DomainVo { + private EcompUser userInfo; + private String token; + private Date createdDate; + private String notebookID; + private Map parameters; + private Date tokenReadDate; + @JsonIgnore + private String userString; + @JsonIgnore + private String parametersString; + + public String getToken() { + return token; + } + public void setToken(String token) { + this.token = token; + } + public Date getCreatedDate() { + return createdDate; + } + public void setCreatedDate(Date createdDate) { + this.createdDate = createdDate; + } + public String getNotebookID() { + return notebookID; + } + public EcompUser getUserInfo() { + return userInfo; + } + public void setUserInfo(EcompUser userInfo) { + this.userInfo = userInfo; + } + public void setNotebookID(String notebookID) { + this.notebookID = notebookID; + } + public String getUserString() { + return userString; + } + public void setUserString(String userString) { + this.userString = userString; + } + public Map getParameters() { + return parameters; + } + public void setParameters(Map parameters) { + this.parameters = parameters; + } + public String getParametersString() { + return parametersString; + } + public void setParametersString(String parametersString) { + this.parametersString = parametersString; + } + public Date getTokenReadDate() { + return tokenReadDate; + } + public void setTokenReadDate(Date tokenReadDate) { + this.tokenReadDate = tokenReadDate; + } + + + +} diff --git a/ecomp-sdk/epsdk-workflow/src/main/java/org/onap/portalsdk/rnotebookintegration/exception/RNotebookIntegrationException.java b/ecomp-sdk/epsdk-workflow/src/main/java/org/onap/portalsdk/rnotebookintegration/exception/RNotebookIntegrationException.java new file mode 100644 index 00000000..ff576725 --- /dev/null +++ b/ecomp-sdk/epsdk-workflow/src/main/java/org/onap/portalsdk/rnotebookintegration/exception/RNotebookIntegrationException.java @@ -0,0 +1,59 @@ +/* + * ============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.exception; + +public class RNotebookIntegrationException extends Exception { + public static final String ERROR_CODE_TOKEN_EXPIRED = "ERROR_CODE_TOKEN_EXPIRED"; + public static final String ERROR_CODE_TOKEN_INVALID = "ERROR_CODE_TOKEN_INVALID"; + + String errorCode; + + public RNotebookIntegrationException(String errorCodeStr){ + super(errorCodeStr); + this.errorCode = errorCodeStr; + } + + public String getErrorCode() { + return errorCode; + } + + public void setErrorCode(String errorCode) { + this.errorCode = errorCode; + } + +} 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