X-Git-Url: https://gerrit.onap.org/r/gitweb?p=policy%2Fengine.git;a=blobdiff_plain;f=ONAP-PAP-REST%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fpolicy%2Fpap%2Fxacml%2Frest%2FUpdateOthersPAPS.java;h=1b25c3b9f6e82e44eeff2e9c601db376bf480e54;hp=bd000381bbdd9957292021f66c16e337ed9dac91;hb=2f3ca9fc5edc5a52659b3486605e0db508143318;hpb=4068da123ee33b532b4b52f15545c76a978f977e diff --git a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/UpdateOthersPAPS.java b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/UpdateOthersPAPS.java index bd000381b..1b25c3b9f 100644 --- a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/UpdateOthersPAPS.java +++ b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/UpdateOthersPAPS.java @@ -2,14 +2,14 @@ * ============LICENSE_START======================================================= * ONAP-PAP-REST * ================================================================================ - * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2018-2019 AT&T Intellectual Property. 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. @@ -17,8 +17,12 @@ * limitations under the License. * ============LICENSE_END========================================================= */ + package org.onap.policy.pap.xacml.rest; +import com.att.research.xacml.util.XACMLProperties; +import com.fasterxml.jackson.databind.ObjectMapper; + import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; @@ -40,12 +44,12 @@ import org.onap.policy.common.logging.flexlogger.Logger; import org.onap.policy.pap.xacml.rest.adapters.UpdateObjectData; import org.onap.policy.pap.xacml.rest.components.Policy; import org.onap.policy.pap.xacml.rest.util.JsonMessage; -import org.onap.policy.rest.XACMLRestProperties; +import org.onap.policy.rest.XacmlRestProperties; import org.onap.policy.rest.dao.CommonClassDao; import org.onap.policy.rest.jpa.ActionBodyEntity; import org.onap.policy.rest.jpa.ConfigurationDataEntity; -import org.onap.policy.rest.jpa.PolicyDBDaoEntity; -import org.onap.policy.utils.CryptoUtils; +import org.onap.policy.rest.jpa.PolicyDbDaoEntity; +import org.onap.policy.utils.PeCryptoUtils; import org.onap.policy.xacml.api.XACMLErrorConstants; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpEntity; @@ -60,19 +64,18 @@ import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.client.HttpClientErrorException; import org.springframework.web.client.RestTemplate; -import com.fasterxml.jackson.databind.ObjectMapper; - @Controller public class UpdateOthersPAPS { - private static final Logger policyLogger = FlexLogger.getLogger(UpdateOthersPAPS.class); + private static final Logger policyLogger = FlexLogger.getLogger(UpdateOthersPAPS.class); private static CommonClassDao commonClassDao; private static final String contentType = "application/json"; - private static String configType =".Config_"; - private static String actionType =".Action_"; - private static String error ="error"; + private static String configType = ".Config_"; + private static String actionType = ".Action_"; + private static String error = "error"; + public static CommonClassDao getCommonClassDao() { return commonClassDao; } @@ -82,16 +85,16 @@ public class UpdateOthersPAPS { } @Autowired - private UpdateOthersPAPS(CommonClassDao commonClassDao){ + private UpdateOthersPAPS(CommonClassDao commonClassDao) { UpdateOthersPAPS.commonClassDao = commonClassDao; } public UpdateOthersPAPS() { - //Empty Constructor + // Empty Constructor } - @RequestMapping(value="/notifyOtherPAPs", method= RequestMethod.POST) - public void notifyOthersPAPsToUpdateConfigurations(HttpServletRequest request, HttpServletResponse response){ + @RequestMapping(value = "/notifyOtherPAPs", method = RequestMethod.POST) + public void notifyOthersPAPsToUpdateConfigurations(HttpServletRequest request, HttpServletResponse response) { Map model = new HashMap<>(); ObjectMapper mapper = new ObjectMapper(); UpdateObjectData body = new UpdateObjectData(); @@ -99,25 +102,26 @@ public class UpdateOthersPAPS { body.setNewPolicyName(request.getParameter("newPolicyName")); body.setOldPolicyName(request.getParameter("oldPolicyName")); - String currentPap = XACMLRestProperties.getProperty("xacml.rest.pap.url"); - List getPAPUrls = commonClassDao.getData(PolicyDBDaoEntity.class); - if(getPAPUrls != null && !getPAPUrls.isEmpty()){ - for(int i = 0; i < getPAPUrls.size(); i++){ - PolicyDBDaoEntity papId = (PolicyDBDaoEntity) getPAPUrls.get(i); - String papUrl = papId.getPolicyDBDaoUrl(); - if(!papUrl.equals(currentPap)){ + String currentPap = XacmlRestProperties.getProperty("xacml.rest.pap.url"); + List getPAPUrls = commonClassDao.getData(PolicyDbDaoEntity.class); + if (getPAPUrls != null && !getPAPUrls.isEmpty()) { + for (int i = 0; i < getPAPUrls.size(); i++) { + PolicyDbDaoEntity papId = (PolicyDbDaoEntity) getPAPUrls.get(i); + String papUrl = papId.getPolicyDbDaoUrl(); + if (!papUrl.equals(currentPap)) { String userName = papId.getUsername(); String password = papId.getPassword(); Base64.Encoder encoder = Base64.getEncoder(); String txt; - try{ - txt = new String(CryptoUtils.decryptTxt(password), StandardCharsets.UTF_8); - } catch(Exception e){ + try { + PeCryptoUtils.initAesKey(XACMLProperties.getProperty(XacmlRestProperties.PROP_AES_KEY)); + txt = PeCryptoUtils.decrypt(password); + } catch (Exception e) { policyLogger.debug(e); - //if we can't decrypt, might as well try it anyway + // if we can't decrypt, might as well try it anyway txt = password; } - String encoding = encoder.encodeToString((userName+":"+txt).getBytes(StandardCharsets.UTF_8)); + String encoding = encoder.encodeToString((userName + ":" + txt).getBytes(StandardCharsets.UTF_8)); HttpHeaders headers = new HttpHeaders(); headers.set("Authorization", "Basic " + encoding); headers.set("Content-Type", contentType); @@ -126,33 +130,39 @@ public class UpdateOthersPAPS { HttpEntity requestEntity = new HttpEntity<>(body, headers); HttpClientErrorException exception = null; - try{ - restTemplate.exchange(papUrl + "onap/updateConfiguration", HttpMethod.POST, requestEntity, String.class); - }catch(Exception e){ - policyLogger.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error while connecting to " + papUrl, e); + try { + restTemplate.exchange(papUrl + "onap/updateConfiguration", HttpMethod.POST, requestEntity, + String.class); + } catch (Exception e) { + policyLogger.error( + XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error while connecting to " + papUrl, e); exception = new HttpClientErrorException(HttpStatus.INTERNAL_SERVER_ERROR, e.getMessage()); - if("409 Conflict".equals(e.getMessage())){ + if ("409 Conflict".equals(e.getMessage())) { policyLogger.error(e.getMessage()); response.addHeader(error, e.getMessage()); } } - if(exception != null && exception.getStatusCode()!=null){ + if (exception != null && exception.getStatusCode() != null) { String message; - if(exception.getStatusCode().equals(HttpStatus.UNAUTHORIZED)){ - message = XACMLErrorConstants.ERROR_PERMISSIONS +":"+exception.getStatusCode()+":" + "ERROR_AUTH_GET_PERM" ; + if (exception.getStatusCode().equals(HttpStatus.UNAUTHORIZED)) { + message = XACMLErrorConstants.ERROR_PERMISSIONS + ":" + exception.getStatusCode() + ":" + + "ERROR_AUTH_GET_PERM"; policyLogger.error(message); - }else if(exception.getStatusCode().equals(HttpStatus.BAD_REQUEST)){ - message = XACMLErrorConstants.ERROR_DATA_ISSUE + ":"+exception.getStatusCode()+":" + exception.getResponseBodyAsString(); + } else if (exception.getStatusCode().equals(HttpStatus.BAD_REQUEST)) { + message = XACMLErrorConstants.ERROR_DATA_ISSUE + ":" + exception.getStatusCode() + ":" + + exception.getResponseBodyAsString(); policyLogger.error(message); - }else if(exception.getStatusCode().equals(HttpStatus.NOT_FOUND)){ - message = XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error while connecting to " + papUrl + exception; + } else if (exception.getStatusCode().equals(HttpStatus.NOT_FOUND)) { + message = XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error while connecting to " + papUrl + + exception; policyLogger.error(message); - }else{ - message = XACMLErrorConstants.ERROR_PROCESS_FLOW + ":"+exception.getStatusCode()+":" + exception.getResponseBodyAsString(); + } else { + message = XACMLErrorConstants.ERROR_PROCESS_FLOW + ":" + exception.getStatusCode() + ":" + + exception.getResponseBodyAsString(); policyLogger.error(message); } model.put(papUrl, message); - }else{ + } else { model.put(papUrl, "Success"); } } @@ -163,78 +173,80 @@ public class UpdateOthersPAPS { JSONObject j = new JSONObject(msg); response.getWriter().write(j.toString()); } catch (Exception e) { - policyLogger.error("Exception Occured"+e); + policyLogger.error("Exception Occured" + e); } } } - @RequestMapping(value="/updateConfiguration", method= RequestMethod.POST) + @RequestMapping(value = "/updateConfiguration", method = RequestMethod.POST) @ResponseBody - public void updateConfiguration(@RequestBody UpdateObjectData data, HttpServletResponse response){ + public void updateConfiguration(@RequestBody UpdateObjectData data, HttpServletResponse response) { String action = data.getAction(); String newPolicyName = data.getNewPolicyName(); String oldPolicyName = data.getOldPolicyName(); - try{ - if("rename".equals(action)){ - if(oldPolicyName.contains(configType) || oldPolicyName.contains(actionType)){ + try { + if ("rename".equals(action)) { + if (oldPolicyName.contains(configType) || oldPolicyName.contains(actionType)) { File file; - if(oldPolicyName.contains(configType)){ + if (oldPolicyName.contains(configType)) { file = new File(Policy.getConfigHome() + File.separator + oldPolicyName); - }else{ + } else { file = new File(Policy.getActionHome() + File.separator + oldPolicyName); } - if(file.exists()){ + if (file.exists()) { File renamefile; - if(oldPolicyName.contains(configType)){ + if (oldPolicyName.contains(configType)) { renamefile = new File(Policy.getConfigHome() + File.separator + newPolicyName); - }else{ + } else { renamefile = new File(Policy.getActionHome() + File.separator + newPolicyName); } - if(file.renameTo(renamefile)){ - policyLogger.info("Policy has been renamed Successfully"+newPolicyName); + if (file.renameTo(renamefile)) { + policyLogger.info("Policy has been renamed Successfully" + newPolicyName); response.addHeader("rename", "Success"); - }else{ + } else { response.addHeader("rename", "Failure"); } } } - }else if("delete".equals(action)){ - if(oldPolicyName.contains(configType)){ + } else if ("delete".equals(action)) { + if (oldPolicyName.contains(configType)) { Files.deleteIfExists(Paths.get(Policy.getConfigHome() + File.separator + oldPolicyName)); - }else if(oldPolicyName.contains("Action_")){ + } else if (oldPolicyName.contains("Action_")) { Files.deleteIfExists(Paths.get(Policy.getActionHome() + File.separator + oldPolicyName)); } - }else if("clonePolicy".equals(action) || "exportPolicy".equals(action)){ - if(newPolicyName.contains(configType)){ - ConfigurationDataEntity configEntiy = (ConfigurationDataEntity) commonClassDao.getEntityItem(ConfigurationDataEntity.class, "configurationName", newPolicyName); + } else if ("clonePolicy".equals(action) || "exportPolicy".equals(action)) { + if (newPolicyName.contains(configType)) { + ConfigurationDataEntity configEntiy = (ConfigurationDataEntity) commonClassDao + .getEntityItem(ConfigurationDataEntity.class, "configurationName", newPolicyName); saveConfigurationData(configEntiy, newPolicyName); - }else if(newPolicyName.contains(actionType)){ - ActionBodyEntity actionEntiy = (ActionBodyEntity) commonClassDao.getEntityItem(ActionBodyEntity.class, "actionBodyName", newPolicyName); + } else if (newPolicyName.contains(actionType)) { + ActionBodyEntity actionEntiy = (ActionBodyEntity) commonClassDao + .getEntityItem(ActionBodyEntity.class, "actionBodyName", newPolicyName); saveActionBodyData(actionEntiy, newPolicyName); } } } catch (IOException e) { - policyLogger.error("Exception Occured While updating Configuration"+e); + policyLogger.error("Exception Occured While updating Configuration" + e); } } - private void saveConfigurationData(ConfigurationDataEntity configEntiy, String newPolicyName){ - try(FileWriter fw = new FileWriter(Policy.getConfigHome() + File.separator + newPolicyName)){ + private void saveConfigurationData(ConfigurationDataEntity configEntiy, String newPolicyName) { + try (FileWriter fw = new FileWriter(Policy.getConfigHome() + File.separator + newPolicyName)) { BufferedWriter bw = new BufferedWriter(fw); bw.write(configEntiy.getConfigBody()); bw.close(); - }catch (IOException e) { - policyLogger.error("Exception Occured While closing the File input stream"+e); + } catch (IOException e) { + policyLogger.error("Exception Occured While closing the File input stream" + e); } } - private void saveActionBodyData(ActionBodyEntity actionEntiy , String newPolicyName){ - try(FileWriter fw = new FileWriter(Policy.getActionHome() + File.separator + newPolicyName)){ + private void saveActionBodyData(ActionBodyEntity actionEntiy, String newPolicyName) { + try (FileWriter fw = new FileWriter(Policy.getActionHome() + File.separator + newPolicyName)) { BufferedWriter bw = new BufferedWriter(fw); bw.write(actionEntiy.getActionBody()); bw.close(); - }catch (IOException e) { - policyLogger.error("Exception Occured While closing the File input stream"+e); + } catch (IOException e) { + policyLogger.error("Exception Occured While closing the File input stream" + e); } } -} \ No newline at end of file +}