X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=POLICY-SDK-APP%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fpolicy%2Fadmin%2FPolicyManagerServlet.java;h=54a14cb8dbb5456213ae0abe756b46b80cf320b3;hb=9301fed7c290f52208922f780fdfe4b5a880b5aa;hp=2c67b451e44becd71a5d16de0b9ed5b5c68a5973;hpb=528605fe8efa3631291de0b9bf8e498bdbd0c23f;p=policy%2Fengine.git diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/admin/PolicyManagerServlet.java b/POLICY-SDK-APP/src/main/java/org/onap/policy/admin/PolicyManagerServlet.java index 2c67b451e..54a14cb8d 100644 --- a/POLICY-SDK-APP/src/main/java/org/onap/policy/admin/PolicyManagerServlet.java +++ b/POLICY-SDK-APP/src/main/java/org/onap/policy/admin/PolicyManagerServlet.java @@ -25,7 +25,6 @@ import java.io.BufferedWriter; import java.io.ByteArrayInputStream; import java.io.File; import java.io.FileInputStream; -import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileWriter; import java.io.IOException; @@ -69,7 +68,6 @@ import org.onap.policy.common.logging.flexlogger.Logger; import org.onap.policy.components.HumanPolicyComponent; import org.onap.policy.controller.PolicyController; import org.onap.policy.controller.PolicyExportAndImportController; -import org.onap.policy.model.Roles; import org.onap.policy.rest.XACMLRest; import org.onap.policy.rest.XACMLRestProperties; import org.onap.policy.rest.adapter.PolicyRestAdapter; @@ -80,6 +78,7 @@ import org.onap.policy.rest.jpa.PolicyEntity; import org.onap.policy.rest.jpa.PolicyVersion; import org.onap.policy.rest.jpa.UserInfo; 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.util.XACMLPolicyScanner; import org.onap.portalsdk.core.web.support.UserUtils; @@ -103,7 +102,7 @@ public class PolicyManagerServlet extends HttpServlet { return policyController; } - public synchronized static void setPolicyController(PolicyController policyController) { + public static synchronized void setPolicyController(PolicyController policyController) { PolicyManagerServlet.policyController = policyController; } @@ -150,34 +149,22 @@ public class PolicyManagerServlet extends HttpServlet { protected static void initializeJSONLoad() { closedLoopJsonLocation = Paths.get(XACMLProperties .getProperty(XACMLRestProperties.PROP_ADMIN_CLOSEDLOOP)); - FileInputStream inputStream = null; - JsonReader jsonReader = null; String location = closedLoopJsonLocation.toString(); - try { - inputStream = new FileInputStream(location); - if (location.endsWith("json")) { - jsonReader = Json.createReader(inputStream); - policyNames = jsonReader.readArray(); - serviceTypeNamesList = new ArrayList<>(); - for (int i = 0; i < policyNames.size(); i++) { - javax.json.JsonObject policyName = policyNames.getJsonObject(i); - String name = policyName.getJsonString("serviceTypePolicyName").getString(); - serviceTypeNamesList.add(name); - } + if (! location.endsWith("json")) { + LOGGER.warn("JSONConfig file does not end with extension .json"); + return; + } + try (FileInputStream inputStream = new FileInputStream(location); + JsonReader jsonReader = Json.createReader(inputStream)) { + policyNames = jsonReader.readArray(); + serviceTypeNamesList = new ArrayList<>(); + for (int i = 0; i < policyNames.size(); i++) { + javax.json.JsonObject policyName = policyNames.getJsonObject(i); + String name = policyName.getJsonString("serviceTypePolicyName").getString(); + serviceTypeNamesList.add(name); } - } catch (FileNotFoundException e) { + } catch (IOException e) { LOGGER.error("Exception Occured while initializing the JSONConfig file"+e); - }finally{ - try { - if(inputStream != null){ - inputStream.close(); - } - if(jsonReader != null){ - jsonReader.close(); - } - } catch (IOException e) { - LOGGER.error("Exception Occured while closing the File InputStream"+e); - } } } @@ -248,7 +235,7 @@ public class PolicyManagerServlet extends HttpServlet { } } - JSONObject responseJsonObject = null; + JSONObject responseJsonObject; responseJsonObject = this.success(); response.setContentType(CONTENTTYPE); PrintWriter out = response.getWriter(); @@ -327,8 +314,8 @@ public class PolicyManagerServlet extends HttpServlet { } private JSONObject searchPolicyList(JSONObject params, HttpServletRequest request) { - Set scopes = null; - List roles = null; + Set scopes; + List roles; List policyData = new ArrayList<>(); JSONArray policyList = null; if(params.has("policyList")){ @@ -339,24 +326,10 @@ public class PolicyManagerServlet extends HttpServlet { try { //Get the Login Id of the User from Request String userId = UserUtils.getUserSession(request).getOrgUserId(); - //Check if the Role and Scope Size are Null get the values from db. List userRoles = controller.getRoles(userId); - roles = new ArrayList<>(); - scopes = new HashSet<>(); - for(Object role: userRoles){ - Roles userRole = (Roles) role; - roles.add(userRole.getRole()); - if(userRole.getScope() != null){ - if(userRole.getScope().contains(",")){ - String[] multipleScopes = userRole.getScope().split(","); - for(int i =0; i < multipleScopes.length; i++){ - scopes.add(multipleScopes[i]); - } - }else{ - scopes.add(userRole.getScope()); - } - } - } + Pair, List> pair = org.onap.policy.utils.UserUtils.checkRoleAndScope(userRoles); + roles = pair.u; + scopes = pair.t; if (roles.contains(ADMIN) || roles.contains(EDITOR) || roles.contains(GUEST) ) { if(scopes.isEmpty()){ return error("No Scopes has been Assigned to the User. Please, Contact Super-Admin"); @@ -375,8 +348,8 @@ public class PolicyManagerServlet extends HttpServlet { if(policyList!= null){ for(int i = 0; i < policyList.length(); i++){ String policyName = policyList.get(i).toString().replace(".xml", ""); - String version = policyName.substring(policyName.lastIndexOf(".")+1); - policyName = policyName.substring(0, policyName.lastIndexOf(".")).replace(".", File.separator); + String version = policyName.substring(policyName.lastIndexOf('.')+1); + policyName = policyName.substring(0, policyName.lastIndexOf('.')).replace(".", File.separator); if(policyName.contains("\\")){ policyName = policyName.replace("\\", "\\\\"); } @@ -450,12 +423,12 @@ public class PolicyManagerServlet extends HttpServlet { String policyName; String removeExtension = path.replace(".xml", ""); if(path.startsWith("/")){ - policyName = removeExtension.substring(1, removeExtension.lastIndexOf(".")); + policyName = removeExtension.substring(1, removeExtension.lastIndexOf('.')); }else{ - policyName = removeExtension.substring(0, removeExtension.lastIndexOf(".")); + policyName = removeExtension.substring(0, removeExtension.lastIndexOf('.')); } - String activePolicy = null; + String activePolicy; PolicyController controller = getPolicyControllerInstance(); if(params.toString().contains("activeVersion")){ String activeVersion = params.getString("activeVersion"); @@ -520,7 +493,7 @@ public class PolicyManagerServlet extends HttpServlet { String policyName = null; if(path.startsWith("/")){ path = path.substring(1); - policyName = path.substring(path.lastIndexOf("/") +1); + policyName = path.substring(path.lastIndexOf('/') +1); path = path.replace("/", "."); }else{ path = path.replace("/", "."); @@ -585,24 +558,10 @@ public class PolicyManagerServlet extends HttpServlet { //Get the Login Id of the User from Request String testUserID = getTestUserId(); String userId = testUserID != null ? testUserID : UserUtils.getUserSession(request).getOrgUserId(); - //Check if the Role and Scope Size are Null get the values from db. List userRoles = controller.getRoles(userId); - roles = new ArrayList<>(); - scopes = new HashSet<>(); - for(Object role: userRoles){ - Roles userRole = (Roles) role; - roles.add(userRole.getRole()); - if(userRole.getScope() != null){ - if(userRole.getScope().contains(",")){ - String[] multipleScopes = userRole.getScope().split(","); - for(int i =0; i < multipleScopes.length; i++){ - scopes.add(multipleScopes[i]); - } - }else{ - scopes.add(userRole.getScope()); - } - } - } + Pair, List> pair = org.onap.policy.utils.UserUtils.checkRoleAndScope(userRoles); + roles = pair.u; + scopes = pair.t; List resultList = new ArrayList<>(); boolean onlyFolders = params.getBoolean("onlyFolders"); @@ -657,7 +616,7 @@ public class PolicyManagerServlet extends HttpServlet { } }else{ try{ - String scopeName = path.substring(path.indexOf("/") +1); + String scopeName = path.substring(path.indexOf('/') +1); activePolicyList(scopeName, resultList, roles, scopes, onlyFolders); } catch (Exception ex) { LOGGER.error("Error Occured While reading Policy Files List"+ex ); @@ -672,7 +631,7 @@ public class PolicyManagerServlet extends HttpServlet { } private List queryPolicyEditorScopes(String scopeName){ - String scopeNamequery = ""; + String scopeNamequery; SimpleBindings params = new SimpleBindings(); if(scopeName == null){ scopeNamequery = "from PolicyEditorScopes"; @@ -681,7 +640,7 @@ public class PolicyManagerServlet extends HttpServlet { params.put("scopeName", scopeName + "%"); } PolicyController controller = getPolicyControllerInstance(); - List scopesList = null; + List scopesList; if(PolicyController.isjUnit()){ scopesList = controller.getDataByQuery(scopeNamequery, null); }else{ @@ -705,8 +664,8 @@ public class PolicyManagerServlet extends HttpServlet { SimpleBindings params = new SimpleBindings(); params.put("scopeName", scopeName + "%"); - List activePolicies = null; - List scopesList = null; + List activePolicies; + List scopesList; if(PolicyController.isjUnit()){ activePolicies = controller.getDataByQuery(query, null); scopesList = controller.getDataByQuery(scopeNamequery, null); @@ -740,7 +699,7 @@ public class PolicyManagerServlet extends HttpServlet { } } } - String scopeNameCheck = null; + String scopeNameCheck; for (Object list : activePolicies) { PolicyVersion policy = (PolicyVersion) list; String scopeNameValue = policy.getPolicyName().substring(0, policy.getPolicyName().lastIndexOf(File.separator)); @@ -793,8 +752,8 @@ public class PolicyManagerServlet extends HttpServlet { String userId = UserUtils.getUserSession(request).getOrgUserId(); String oldPath = params.getString("path"); String newPath = params.getString("newPath"); - oldPath = oldPath.substring(oldPath.indexOf("/")+1); - newPath = newPath.substring(newPath.indexOf("/")+1); + oldPath = oldPath.substring(oldPath.indexOf('/')+1); + newPath = newPath.substring(newPath.indexOf('/')+1); if(oldPath.endsWith(".xml")){ JSONObject result = policyRename(oldPath, newPath, userId); if(!(Boolean)(result.getJSONObject("result").get("success"))){ @@ -826,7 +785,7 @@ public class PolicyManagerServlet extends HttpServlet { if(!(Boolean)(result.getJSONObject("result").get("success"))){ isActive = true; policyActiveInPDP.add(policyOldPath); - String scope = policyOldPath.substring(0, policyOldPath.lastIndexOf("/")); + String scope = policyOldPath.substring(0, policyOldPath.lastIndexOf('/')); scopeOfPolicyActiveInPDP.add(scope.replace("/", File.separator)); } } @@ -837,7 +796,7 @@ public class PolicyManagerServlet extends HttpServlet { UserInfo userInfo = new UserInfo(); userInfo.setUserLoginId(userId); - if(policyActiveInPDP.size() == 0){ + if(policyActiveInPDP.isEmpty()){ renameScope(scopesList, scopeName, newScopeName, controller); }else if(rename){ renameScope(scopesList, scopeName, newScopeName, controller); @@ -875,14 +834,14 @@ public class PolicyManagerServlet extends HttpServlet { private JSONObject policyRename(String oldPath, String newPath, String userId) throws ServletException { try { - PolicyEntity entity = null; + PolicyEntity entity; PolicyController controller = getPolicyControllerInstance(); String policyVersionName = newPath.replace(".xml", ""); - String policyName = policyVersionName.substring(0, policyVersionName.lastIndexOf(".")).replace("/", File.separator); + String policyName = policyVersionName.substring(0, policyVersionName.lastIndexOf('.')).replace("/", File.separator); String oldpolicyVersionName = oldPath.replace(".xml", ""); - String oldpolicyName = oldpolicyVersionName.substring(0, oldpolicyVersionName.lastIndexOf(".")).replace("/", File.separator); + String oldpolicyName = oldpolicyVersionName.substring(0, oldpolicyVersionName.lastIndexOf('.')).replace("/", File.separator); String newpolicyName = newPath.replace("/", "."); String newPolicyCheck = newpolicyName; @@ -913,33 +872,33 @@ public class PolicyManagerServlet extends HttpServlet { policyParams.put("newPolicySplit_0", newPolicySplit[0]); List queryData = controller.getDataByQuery(policyEntityquery, policyParams); if(!queryData.isEmpty()){ - entity = (PolicyEntity) queryData.get(0); return error("Policy rename failed. Since, the policy with same name already exists."); } //Query the Policy Entity with oldPolicy Name - String policyEntityCheck = oldPolicySplit[1].substring(0, oldPolicySplit[1].indexOf(".")); + String policyEntityCheck = oldPolicySplit[1].substring(0, oldPolicySplit[1].indexOf('.')); String oldpolicyEntityquery = "FROM PolicyEntity where policyName like :policyEntityCheck and scope = :oldPolicySplit_0"; SimpleBindings params = new SimpleBindings(); params.put("policyEntityCheck", policyEntityCheck + "%"); params.put("oldPolicySplit_0", oldPolicySplit[0]); List oldEntityData = controller.getDataByQuery(oldpolicyEntityquery, params); if(!oldEntityData.isEmpty()){ - String groupQuery = "FROM PolicyGroupEntity where ("; + StringBuilder groupQuery = new StringBuilder(); + groupQuery.append("FROM PolicyGroupEntity where ("); SimpleBindings geParams = new SimpleBindings(); for(int i=0; i groupEntityData = controller.getDataByQuery(groupQuery, geParams); - if(groupEntityData.size() > 0){ + groupQuery.append(")"); + List groupEntityData = controller.getDataByQuery(groupQuery.toString(), geParams); + if(! groupEntityData.isEmpty()){ return error("Policy rename failed. Since the policy or its version is active in PDP Groups."); } for(int i=0; i groupobject = controller.getDataByQuery(groupEntityquery, pgeParams); if(!groupobject.isEmpty()){ pdpCheck = true; @@ -1252,7 +1210,7 @@ public class PolicyManagerServlet extends HttpServlet { if(pdpCheck){ //Delete from policyVersion table String getActivePDPPolicyVersion = activePolicyName.replace(".xml", ""); - getActivePDPPolicyVersion = getActivePDPPolicyVersion.substring(getActivePDPPolicyVersion.lastIndexOf(".")+1); + getActivePDPPolicyVersion = getActivePDPPolicyVersion.substring(getActivePDPPolicyVersion.lastIndexOf('.')+1); String policyVersionQuery = "update PolicyVersion set active_version='"+getActivePDPPolicyVersion+"' , highest_version='"+getActivePDPPolicyVersion+"' where policy_name ='" +policyNamewithoutExtension.replace("\\", "\\\\")+"' and id >0"; if(policyVersionQuery != null){ controller.executeQuery(policyVersionQuery); @@ -1303,7 +1261,7 @@ public class PolicyManagerServlet extends HttpServlet { for(Object object : policyEntityobjects){ policyEntity = (PolicyEntity) object; String policyEntityName = policyEntity.getPolicyName().replace(".xml", ""); - int policyEntityVersion = Integer.parseInt(policyEntityName.substring(policyEntityName.lastIndexOf(".")+1)); + int policyEntityVersion = Integer.parseInt(policyEntityName.substring(policyEntityName.lastIndexOf('.')+1)); if(policyEntityVersion > highestVersion && policyEntityVersion != version){ highestVersion = policyEntityVersion; } @@ -1371,8 +1329,8 @@ public class PolicyManagerServlet extends HttpServlet { //Add Active Policies List to PolicyVersionTable for(int i =0; i < activePoliciesInPDP.size(); i++){ String activePDPPolicyName = activePoliciesInPDP.get(i).replace(".xml", ""); - int activePDPPolicyVersion = Integer.parseInt(activePDPPolicyName.substring(activePDPPolicyName.lastIndexOf(".")+1)); - activePDPPolicyName = activePDPPolicyName.substring(0, activePDPPolicyName.lastIndexOf(".")).replace(".", File.separator); + int activePDPPolicyVersion = Integer.parseInt(activePDPPolicyName.substring(activePDPPolicyName.lastIndexOf('.')+1)); + activePDPPolicyName = activePDPPolicyName.substring(0, activePDPPolicyName.lastIndexOf('.')).replace(".", File.separator); PolicyVersion insertactivePDPVersion = new PolicyVersion(); insertactivePDPVersion.setPolicyName(activePDPPolicyName); insertactivePDPVersion.setHigherVersion(activePDPPolicyVersion); @@ -1408,7 +1366,7 @@ public class PolicyManagerServlet extends HttpServlet { String path = params.getString("path"); LOGGER.debug("editFile path: {}"+ path); - String domain = path.substring(1, path.lastIndexOf("/")); + String domain = path.substring(1, path.lastIndexOf('/')); domain = domain.replace("/", "."); path = path.substring(1); @@ -1427,7 +1385,7 @@ public class PolicyManagerServlet extends HttpServlet { SimpleBindings peParams = new SimpleBindings(); peParams.put("split_1", split[1]); peParams.put("split_0", split[0]); - List queryData = null; + List queryData; if(PolicyController.isjUnit()){ queryData = controller.getDataByQuery(query, null); }else{ @@ -1452,8 +1410,8 @@ public class PolicyManagerServlet extends HttpServlet { policyAdapter.setDomainDir(domain); policyAdapter.setPolicyData(policy); String policyName = path.replace(".xml", ""); - policyName = policyName.substring(0, policyName.lastIndexOf(".")); - policyAdapter.setPolicyName(policyName.substring(policyName.lastIndexOf(".")+1)); + policyName = policyName.substring(0, policyName.lastIndexOf('.')); + policyAdapter.setPolicyName(policyName.substring(policyName.lastIndexOf('.')+1)); PolicyAdapter setpolicyAdapter = PolicyAdapter.getInstance(); setpolicyAdapter.configure(policyAdapter,entity); @@ -1479,7 +1437,7 @@ public class PolicyManagerServlet extends HttpServlet { String path = params.getString("path"); try{ if(params.has("subScopename")){ - if(!params.getString("subScopename").equals("")){ + if(! "".equals(params.getString("subScopename"))) { name = params.getString("path").replace("/", File.separator) + File.separator +params.getString("subScopename"); } }else{ @@ -1502,7 +1460,7 @@ public class PolicyManagerServlet extends HttpServlet { } } LOGGER.debug("addFolder path: {} name: {}" + path +name); - if(!name.equals("")){ + if(! "".equals(name)){ if(name.startsWith(File.separator)){ name = name.substring(1); }