Unit/SONAR/Checkstyle in ONAP-REST
[policy/engine.git] / ONAP-PAP-REST / src / main / java / org / onap / policy / pap / xacml / rest / UpdateOthersPAPS.java
index bd00038..1b25c3b 100644 (file)
@@ -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.
  * 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<String, Object> 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<Object> 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<Object> 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
+}