Merge "Fix audit log to contain ending timestamp"
[policy/engine.git] / POLICY-SDK-APP / src / main / java / org / onap / policy / controller / AutoPushController.java
index f78a79c..d308e7e 100644 (file)
@@ -38,6 +38,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
+import javax.script.SimpleBindings;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
@@ -55,9 +56,9 @@ import org.onap.policy.xacml.api.XACMLErrorConstants;
 import org.onap.policy.xacml.api.pap.OnapPDPGroup;
 import org.onap.policy.xacml.std.pap.StdPDPGroup;
 import org.onap.policy.xacml.std.pap.StdPDPPolicy;
-import org.openecomp.portalsdk.core.controller.RestrictedBaseController;
-import org.openecomp.portalsdk.core.web.support.JsonMessage;
-import org.openecomp.portalsdk.core.web.support.UserUtils;
+import org.onap.portalsdk.core.controller.RestrictedBaseController;
+import org.onap.portalsdk.core.web.support.JsonMessage;
+import org.onap.portalsdk.core.web.support.UserUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.MediaType;
 import org.springframework.stereotype.Controller;
@@ -148,8 +149,11 @@ public class AutoPushController extends RestrictedBaseController{
                        }else{
                                if(!scopes.isEmpty()){
                                        for(String scope : scopes){
-                                               String query = "From PolicyVersion where policy_name like '"+scope+"%' and id > 0";
-                                               List<Object> filterdatas = commonClassDao.getDataByQuery(query);
+                                               scope += "%";
+                                               String query = "From PolicyVersion where policy_name like :scope and id > 0";
+                                               SimpleBindings params = new SimpleBindings();
+                                               params.put("scope", scope);
+                                               List<Object> filterdatas = commonClassDao.getDataByQuery(query, params);
                                                if(filterdatas != null){
                                                        for(int i =0; i < filterdatas.size(); i++){
                                                                data.add(filterdatas.get(i));
@@ -173,7 +177,7 @@ public class AutoPushController extends RestrictedBaseController{
        }
 
        @RequestMapping(value={"/auto_Push/PushPolicyToPDP.htm"}, method={org.springframework.web.bind.annotation.RequestMethod.POST})
-       public ModelAndView PushPolicyToPDPGroup(HttpServletRequest request, HttpServletResponse response) throws Exception {
+       public ModelAndView pushPolicyToPDPGroup(HttpServletRequest request, HttpServletResponse response) throws IOException {
                try {
                        ArrayList<Object> selectedPDPS = new ArrayList<>();
                        ArrayList<String> selectedPoliciesInUI = new ArrayList<>();
@@ -183,6 +187,12 @@ public class AutoPushController extends RestrictedBaseController{
                        this.container = new PDPGroupContainer(controller.getPapEngine());
                        mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
                        JsonNode root = mapper.readTree(request.getReader());
+                       
+                       String userId = UserUtils.getUserSession(request).getOrgUserId();
+                       logger.info("****************************************Logging UserID while Pushing  Policy to PDP Group*****************************************");
+                       logger.info("UserId:  " + userId + "Push Policy Data:  "+ root.get("pushTabData").toString());
+                       logger.info("***********************************************************************************************************************************");
+                       
                        AutoPushTabAdapter adapter = mapper.readValue(root.get("pushTabData").toString(), AutoPushTabAdapter.class);
                        for (Object pdpGroupId :  adapter.getPdpDatas()) {
                                LinkedHashMap<?, ?> selectedPDP = (LinkedHashMap<?, ?>)pdpGroupId;
@@ -236,8 +246,11 @@ public class AutoPushController extends RestrictedBaseController{
                                                dbCheckName = dbCheckName.replace(".Decision_", ":Decision_");
                                        }
                                        String[] split = dbCheckName.split(":");
-                                       String query = "FROM PolicyEntity where policyName = '"+split[1]+"' and scope ='"+split[0]+"'";
-                                       List<Object> queryData = controller.getDataByQuery(query);
+                                       String query = "FROM PolicyEntity where policyName = :split_1 and scope = :split_0";
+                                       SimpleBindings policyParams = new SimpleBindings();
+                                       policyParams.put("split_1", split[1]);
+                                       policyParams.put("split_0", split[0]);
+                                       List<Object> queryData = controller.getDataByQuery(query, policyParams);
                                        PolicyEntity policyEntity = (PolicyEntity) queryData.get(0);
                                        File temp = new File(name);
                                        BufferedWriter bw = new BufferedWriter(new FileWriter(temp));
@@ -249,7 +262,7 @@ public class AutoPushController extends RestrictedBaseController{
                                                // Create the policy
                                                selectedPolicy = new StdPDPPolicy(name, true, id, selectedURI);
                                        } catch (IOException e) {
-                                               logger.error("Unable to create policy '" + name + "': "+ e.getMessage());
+                                               logger.error("Unable to create policy '" + name + "': "+ e.getMessage(), e);
                                        }
                                        StdPDPGroup selectedGroup = (StdPDPGroup) pdpDestinationGroupId;
                                        if (selectedPolicy != null) {
@@ -312,7 +325,7 @@ public class AutoPushController extends RestrictedBaseController{
                                refreshGroups();
                                JsonMessage msg = new JsonMessage(mapper.writeValueAsString(groups));
                                JSONObject j = new JSONObject(msg);
-                               out.write(j.toString());      
+                               out.write(j.toString());
                                return null;
                        }
                }
@@ -320,6 +333,7 @@ public class AutoPushController extends RestrictedBaseController{
                        response.setCharacterEncoding("UTF-8");
                        request.setCharacterEncoding("UTF-8");
                        PrintWriter out = response.getWriter();
+                       logger.error(e);
                        out.write(e.getMessage());
                }
                return null;
@@ -327,7 +341,7 @@ public class AutoPushController extends RestrictedBaseController{
 
        @SuppressWarnings("unchecked")
        @RequestMapping(value={"/auto_Push/remove_GroupPolicies.htm"}, method={org.springframework.web.bind.annotation.RequestMethod.POST})
-       public ModelAndView removePDPGroup(HttpServletRequest request, HttpServletResponse response) throws Exception {
+       public ModelAndView removePDPGroup(HttpServletRequest request, HttpServletResponse response) throws IOException {
                try {
                        PolicyController controller = getPolicyControllerInstance();
                        this.container = new PDPGroupContainer(controller.getPapEngine());
@@ -336,6 +350,12 @@ public class AutoPushController extends RestrictedBaseController{
                        JsonNode root = mapper.readTree(request.getReader());  
                        StdPDPGroup group = (StdPDPGroup)mapper.readValue(root.get("activePdpGroup").toString(), StdPDPGroup.class);
                        JsonNode removePolicyData = root.get("data");
+                       
+                       String userId = UserUtils.getUserSession(request).getOrgUserId();
+                       logger.info("****************************************Logging UserID while Removing Policy from PDP Group*****************************************");
+                       logger.info("UserId:  " + userId + "PDP Group Data:  "+ root.get("activePdpGroup").toString() + "Remove Policy Data: "+root.get("data"));
+                       logger.info("***********************************************************************************************************************************");
+                       
                        policyContainer = new PDPPolicyContainer(group);
                        if(removePolicyData.size() > 0){
                                for(int i = 0 ; i < removePolicyData.size(); i++){
@@ -369,6 +389,7 @@ public class AutoPushController extends RestrictedBaseController{
                        response.setCharacterEncoding("UTF-8");
                        request.setCharacterEncoding("UTF-8");
                        PrintWriter out = response.getWriter();
+                       logger.error(e);
                        out.write(e.getMessage());
                }
                return null;