Consolidate PolicyRestAdapter setup
[policy/engine.git] / POLICY-SDK-APP / src / main / java / org / onap / policy / controller / PDPController.java
index 56d882f..f2f7d57 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -27,7 +27,6 @@ import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
 
 import java.io.File;
-import java.io.PrintWriter;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashSet;
@@ -44,10 +43,10 @@ import org.onap.policy.admin.RESTfulPAPEngine;
 import org.onap.policy.common.logging.flexlogger.FlexLogger;
 import org.onap.policy.common.logging.flexlogger.Logger;
 import org.onap.policy.model.PDPGroupContainer;
+import org.onap.policy.utils.PolicyUtils;
 import org.onap.policy.utils.UserUtils.Pair;
 import org.onap.policy.xacml.api.XACMLErrorConstants;
 import org.onap.policy.xacml.api.pap.OnapPDPGroup;
-import org.onap.policy.xacml.api.pap.PAPPolicyEngine;
 import org.onap.policy.xacml.std.pap.StdPDP;
 import org.onap.policy.xacml.std.pap.StdPDPGroup;
 import org.onap.portalsdk.core.controller.RestrictedBaseController;
@@ -83,6 +82,11 @@ public class PDPController extends RestrictedBaseController {
         this.policyController = policyController;
     }
 
+    /**
+     * refreshGroups.
+     *
+     * @param request HttpServletRequest
+     */
     public synchronized void refreshGroups(HttpServletRequest request) {
         synchronized (this.groups) {
             this.groups.clear();
@@ -94,11 +98,11 @@ public class PDPController extends RestrictedBaseController {
                 String userId = isJunit() ? "Test" : UserUtils.getUserSession(request).getOrgUserId();
                 List<Object> userRoles = controller.getRoles(userId);
                 Pair<Set<String>, List<String>> pair = org.onap.policy.utils.UserUtils.checkRoleAndScope(userRoles);
-                roles = pair.u;
-                scopes = pair.t;
+                roles = pair.second;
+                scopes = pair.first;
 
                 if (!junit && controller.getPapEngine() == null) {
-                    setPAPEngine(request);
+                    setPapEngine(request);
                 }
                 if (roles.contains(SUPERADMIN) || roles.contains(SUPEREDITOR) || roles.contains(SUPERGUEST)) {
                     if (!junit) {
@@ -148,40 +152,54 @@ public class PDPController extends RestrictedBaseController {
         }
     }
 
-    private void setPAPEngine(HttpServletRequest request) {
-        String myRequestURL = request.getRequestURL().toString();
+    private void setPapEngine(HttpServletRequest request) {
         try {
             //
             // Set the URL for the RESTful PAP Engine
             //
-            PolicyController.setPapEngine((PAPPolicyEngine) new RESTfulPAPEngine(myRequestURL));
+            PolicyController.setPapEngine(new RESTfulPAPEngine(request.getRequestURL().toString()));
         } catch (Exception e) {
             policyLogger.error(XACMLErrorConstants.ERROR_SYSTEM_ERROR + "Exception Occured while loading PAP", e);
         }
     }
 
+    /**
+     * getPDPGroupEntityData.
+     *
+     * @param request HttpServletRequest
+     * @param response HttpServletResponse
+     */
     @RequestMapping(
             value = {"/get_PDPGroupData"},
             method = {org.springframework.web.bind.annotation.RequestMethod.GET},
             produces = MediaType.APPLICATION_JSON_VALUE)
     public void getPDPGroupEntityData(HttpServletRequest request, HttpServletResponse response) {
         try {
-            ObjectMapper mapper = new ObjectMapper();
             refreshGroups(request);
-            JsonMessage msg = new JsonMessage(mapper.writeValueAsString(groups));
-            JSONObject j = new JSONObject(msg);
-            response.getWriter().write(j.toString());
+            response.getWriter().write(new JSONObject(new JsonMessage(
+                    new ObjectMapper().writeValueAsString(groups))).toString());
         } catch (Exception e) {
             policyLogger.error(
                     XACMLErrorConstants.ERROR_DATA_ISSUE + "Error Occured while retrieving the PDP Group data" + e);
         }
     }
 
+    /**
+     * savePDPGroup.
+     *
+     * @param request HttpServletRequest
+     * @param response HttpServletResponse
+     */
     @RequestMapping(
             value = {"/pdp_Group/save_pdp_group"},
             method = {org.springframework.web.bind.annotation.RequestMethod.POST})
     public void savePDPGroup(HttpServletRequest request, HttpServletResponse response) {
         try {
+            response.setCharacterEncoding(PolicyUtils.CHARACTER_ENCODING);
+            request.setCharacterEncoding(PolicyUtils.CHARACTER_ENCODING);
+            //
+            //
+            //
             ObjectMapper mapper = new ObjectMapper();
             PolicyController controller = getPolicyControllerInstance();
             mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
@@ -190,10 +208,10 @@ public class PDPController extends RestrictedBaseController {
 
             String userId = UserUtils.getUserSession(request).getOrgUserId();
             policyLogger.info(
-                    "****************************************Logging UserID for Save PDP Group Function*****************************************");
+                    "*******************Logging UserID for Save PDP Group Function*******************************");
             policyLogger.info("UserId:  " + userId + "PDP Group Data:  " + root.get("pdpGroupData").toString());
             policyLogger.info(
-                    "***************************************************************************************************************************");
+                    "********************************************************************************************");
 
             StdPDPGroup pdpGroupData = mapper
                     .readValue(root.get("pdpGroupData").toString().replace("groupName", "name"), StdPDPGroup.class);
@@ -210,23 +228,14 @@ public class PDPController extends RestrictedBaseController {
                         + message + e);
             }
 
-            response.setCharacterEncoding("UTF-8");
-            response.setContentType("application / json");
-            request.setCharacterEncoding("UTF-8");
+            response.setContentType(PolicyUtils.APPLICATION_JSON);
 
-            PrintWriter out = response.getWriter();
             refreshGroups(request);
-            JsonMessage msg = new JsonMessage(mapper.writeValueAsString(groups));
-            JSONObject j = new JSONObject(msg);
-            out.write(j.toString());
+            response.getWriter().write(new JSONObject(new JsonMessage(mapper.writeValueAsString(groups))).toString());
         } catch (Exception e) {
             policyLogger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "Error Occured while Saving the PDP Group" + e);
-            response.setCharacterEncoding("UTF-8");
-            PrintWriter out = null;
             try {
-                request.setCharacterEncoding("UTF-8");
-                out = response.getWriter();
-                out.write(e.getMessage());
+                response.getWriter().write(e.getMessage());
             } catch (Exception e1) {
                 policyLogger
                         .error(XACMLErrorConstants.ERROR_DATA_ISSUE + "Error Occured while Saving the PDP Group" + e1);
@@ -234,11 +243,22 @@ public class PDPController extends RestrictedBaseController {
         }
     }
 
+    /**
+     * removePDPGroup.
+     *
+     * @param request HttpServletRequest
+     * @param response HttpServletResponse
+     */
     @RequestMapping(
             value = {"/pdp_Group/remove_pdp_group"},
             method = {org.springframework.web.bind.annotation.RequestMethod.POST})
     public void removePDPGroup(HttpServletRequest request, HttpServletResponse response) {
         try {
+            response.setCharacterEncoding(PolicyUtils.CHARACTER_ENCODING);
+            request.setCharacterEncoding(PolicyUtils.CHARACTER_ENCODING);
+            //
+            //
+            //
             ObjectMapper mapper = new ObjectMapper();
             mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
             JsonNode root = mapper.readTree(request.getReader());
@@ -247,10 +267,10 @@ public class PDPController extends RestrictedBaseController {
 
             String userId = UserUtils.getUserSession(request).getOrgUserId();
             policyLogger.info(
-                    "****************************************Logging UserID for Remove PDP Group Function*****************************************");
+                    "*********************Logging UserID for Remove PDP Group Function*******************************");
             policyLogger.info("UserId:  " + userId + "PDP Group Data:  " + root.get("pdpGroupData").toString());
             policyLogger.info(
-                    "*****************************************************************************************************************************");
+                    "************************************************************************************************");
 
             StdPDPGroup pdpGroupData = mapper.readValue(root.get("pdpGroupData").toString(), StdPDPGroup.class);
             if ("Default".equals(pdpGroupData.getName())) {
@@ -259,35 +279,35 @@ public class PDPController extends RestrictedBaseController {
                 this.container.removeGroup(pdpGroupData, null);
             }
 
-            response.setCharacterEncoding("UTF-8");
-            response.setContentType("application / json");
-            request.setCharacterEncoding("UTF-8");
-
-            PrintWriter out = response.getWriter();
-
+            response.setContentType(PolicyUtils.APPLICATION_JSON);
             refreshGroups(request);
-            JsonMessage msg = new JsonMessage(mapper.writeValueAsString(groups));
-            JSONObject j = new JSONObject(msg);
-            out.write(j.toString());
+            response.getWriter().write(new JSONObject(new JsonMessage(mapper.writeValueAsString(groups))).toString());
         } catch (Exception e) {
             policyLogger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "Error Occured while Removing the PDP Group" + e);
-            PrintWriter out;
             try {
-                response.setCharacterEncoding("UTF-8");
-                request.setCharacterEncoding("UTF-8");
-                out = response.getWriter();
-                out.write(e.getMessage());
+                response.getWriter().write(e.getMessage());
             } catch (Exception e1) {
                 policyLogger.error("Exception Occured" + e1);
             }
         }
     }
 
+    /**
+     * savePDPToGroup.
+     *
+     * @param request HttpServletRequest
+     * @param response HttpServletResponse
+     */
     @RequestMapping(
             value = {"/pdp_Group/save_pdpTogroup"},
             method = {org.springframework.web.bind.annotation.RequestMethod.POST})
     public void savePDPToGroup(HttpServletRequest request, HttpServletResponse response) {
         try {
+            response.setCharacterEncoding(PolicyUtils.CHARACTER_ENCODING);
+            request.setCharacterEncoding(PolicyUtils.CHARACTER_ENCODING);
+            //
+            //
+            //
             ObjectMapper mapper = new ObjectMapper();
             mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
             JsonNode root = mapper.readTree(request.getReader());
@@ -299,11 +319,11 @@ public class PDPController extends RestrictedBaseController {
 
             String userId = UserUtils.getUserSession(request).getOrgUserId();
             policyLogger.info(
-                    "****************************************Logging UserID while Saving  pdp in  PDP Group*****************************************");
+                    "*************Logging UserID while Saving  pdp in  PDP Group***********************************");
             policyLogger.info("UserId:  " + userId + "PDP Group Data:  " + root.get("pdpInGroup").toString()
                     + "Active Group Data: " + root.get("activePDP").toString());
             policyLogger.info(
-                    "*******************************************************************************************************************************");
+                    "**********************************************************************************************");
 
             try {
 
@@ -319,70 +339,62 @@ public class PDPController extends RestrictedBaseController {
                         + "Error Occured while Creating Pdp in PDP Group" + message + e);
             }
 
-            response.setCharacterEncoding("UTF-8");
-            response.setContentType("application / json");
-            request.setCharacterEncoding("UTF-8");
-
-            PrintWriter out = response.getWriter();
+            response.setContentType(PolicyUtils.APPLICATION_JSON);
             refreshGroups(request);
-            JsonMessage msg = new JsonMessage(mapper.writeValueAsString(groups));
-            JSONObject j = new JSONObject(msg);
-            out.write(j.toString());
+            response.getWriter().write(new JSONObject(new JsonMessage(mapper.writeValueAsString(groups))).toString());
         } catch (Exception e) {
             policyLogger
                     .error(XACMLErrorConstants.ERROR_DATA_ISSUE + "Error Occured while Creating Pdp in PDP Group" + e);
-            PrintWriter out;
             try {
-                response.setCharacterEncoding("UTF-8");
-                request.setCharacterEncoding("UTF-8");
-                out = response.getWriter();
-                out.write(e.getMessage());
+                response.getWriter().write(e.getMessage());
             } catch (Exception e1) {
                 policyLogger.error("Exception Occured" + e1);
             }
         }
     }
 
+    /**
+     * removePDPFromGroup.
+     *
+     * @param request HttpServletRequest
+     * @param response HttpServletResponse
+     */
     @RequestMapping(
             value = {"/pdp_Group/remove_pdpFromGroup"},
             method = {org.springframework.web.bind.annotation.RequestMethod.POST})
     public void removePDPFromGroup(HttpServletRequest request, HttpServletResponse response) {
         try {
+            response.setCharacterEncoding(PolicyUtils.CHARACTER_ENCODING);
+            request.setCharacterEncoding(PolicyUtils.CHARACTER_ENCODING);
+            //
+            //
+            //
             ObjectMapper mapper = new ObjectMapper();
             mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
             JsonNode root = mapper.readTree(request.getReader());
             PolicyController controller = getPolicyControllerInstance();
             this.container = new PDPGroupContainer(controller.getPapEngine());
-            StdPDP deletePdp = mapper.readValue(root.get("data").toString(), StdPDP.class);
-            StdPDPGroup activeGroupData = mapper.readValue(root.get("activePDP").toString(), StdPDPGroup.class);
 
             String userId = UserUtils.getUserSession(request).getOrgUserId();
             policyLogger.info(
-                    "****************************************Logging UserID while Removing  pdp from  PDP Group*****************************************");
+                    "********************Logging UserID while Removing  pdp from  PDP Group**************************");
             policyLogger.info("UserId:  " + userId + "Delete PDP Group Data:  " + root.get("data").toString()
                     + "Active Group Data: " + root.get("activePDP").toString());
             policyLogger.info(
-                    "***********************************************************************************************************************************");
+                    "************************************************************************************************");
 
+            StdPDP deletePdp = mapper.readValue(root.get("data").toString(), StdPDP.class);
+            StdPDPGroup activeGroupData = mapper.readValue(root.get("activePDP").toString(), StdPDPGroup.class);
             this.container.removePDP(deletePdp, activeGroupData);
-            response.setCharacterEncoding("UTF-8");
-            response.setContentType("application / json");
-            request.setCharacterEncoding("UTF-8");
+            response.setContentType(PolicyUtils.APPLICATION_JSON);
 
-            PrintWriter out = response.getWriter();
             refreshGroups(request);
-            JsonMessage msg = new JsonMessage(mapper.writeValueAsString(groups));
-            JSONObject j = new JSONObject(msg);
-            out.write(j.toString());
+            response.getWriter().write(new JSONObject(new JsonMessage(mapper.writeValueAsString(groups))).toString());
         } catch (Exception e) {
             policyLogger.error(
                     XACMLErrorConstants.ERROR_DATA_ISSUE + "Error Occured while Removing Pdp from PDP Group" + e);
-            PrintWriter out;
             try {
-                response.setCharacterEncoding("UTF-8");
-                request.setCharacterEncoding("UTF-8");
-                out = response.getWriter();
-                out.write(e.getMessage());
+                response.getWriter().write(e.getMessage());
             } catch (Exception e1) {
                 policyLogger.error("Exception Occured" + e1);
             }