From 1134bd40da28d3833a0dd4f821e75ec938f6061f Mon Sep 17 00:00:00 2001 From: rb7147 Date: Thu, 6 Sep 2018 16:36:22 -0400 Subject: [PATCH] Resolved XACML Platform Sonar issues Issue-ID: POLICY-902 Change-Id: If22627dfe7df993b5c725ddf3a66c10ebbaa73ca Signed-off-by: rb7147 --- .../pap/xacml/rest/components/PolicyDBDao.java | 24 ++-- .../org/onap/policy/pdp/rest/XACMLPdpServlet.java | 137 ++++++++------------- .../policy/rest/adapter/PolicyRestAdapter.java | 16 +-- .../org/onap/policy/rest/util/MSModelUtils.java | 59 ++++----- .../onap/policy/xacml/util/XACMLPolicyWriter.java | 2 +- .../controller/DecisionPolicyController.java | 53 ++++---- 6 files changed, 128 insertions(+), 163 deletions(-) diff --git a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/PolicyDBDao.java b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/PolicyDBDao.java index ff4525ffb..75d7645ce 100644 --- a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/PolicyDBDao.java +++ b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/PolicyDBDao.java @@ -125,6 +125,8 @@ public class PolicyDBDao { private static final String policyDBDaoVar = "PolicyDBDao"; private static final String duplicatePolicyId = "Somehow, more than one policy with the id "; private static final String foundInDB = " were found in the database"; + private static final String TIMESTAMP = "\n TimeStamp = "; + private static final String CAUGHTEXCEPTIONONNOTIFY = "Caught Exception on notifyOthers("; private static boolean isJunit = false; @@ -788,7 +790,7 @@ public class PolicyDBDao { } } boolean needToUpdate = false; - if (updateGroupPoliciesInFileSystem(localGroupClone, localGroup, groupRecord, transaction)) { + if (updateGroupPoliciesInFileSystem(localGroupClone, localGroup, groupRecord)) { needToUpdate = true; } if (!stringEquals(localGroupClone.getId(), groupRecord.getGroupId()) @@ -818,7 +820,7 @@ public class PolicyDBDao { // this will also handle removes, since incoming pdpGroup has no policies internally, we are just going to add // them all in from the db private boolean updateGroupPoliciesInFileSystem(OnapPDPGroup pdpGroup, OnapPDPGroup oldPdpGroup, - GroupEntity groupRecord, PolicyDBDaoTransaction transaction) throws PAPException, PolicyDBException { + GroupEntity groupRecord) throws PAPException, PolicyDBException { if (!(pdpGroup instanceof StdPDPGroup)) { throw new PAPException("group is not a StdPDPGroup"); } @@ -1485,7 +1487,7 @@ public class PolicyDBDao { if (logger.isDebugEnabled()) { Date date = new java.util.Date(); logger.debug("\n\nTransactionTimer.run() - SLEEPING: " + "\n sleepTime (ms) = " + sleepTime - + "\n TimeStamp = " + date.getTime() + "\n\n"); + + TIMESTAMP + date.getTime() + "\n\n"); } try { Thread.sleep(sleepTime); @@ -1493,7 +1495,7 @@ public class PolicyDBDao { // probably, the transaction was completed, the last thing we want to do is roll back if (logger.isDebugEnabled()) { Date date = new java.util.Date(); - logger.debug("\n\nTransactionTimer.run() - WAKE Interrupt: " + "\n TimeStamp = " + logger.debug("\n\nTransactionTimer.run() - WAKE Interrupt: " + TIMESTAMP + date.getTime() + "\n\n"); } Thread.currentThread().interrupt(); @@ -1501,7 +1503,7 @@ public class PolicyDBDao { } if (logger.isDebugEnabled()) { Date date = new java.util.Date(); - logger.debug("\n\nTransactionTimer.run() - WAKE Timeout: " + "\n TimeStamp = " + logger.debug("\n\nTransactionTimer.run() - WAKE Timeout: " + TIMESTAMP + date.getTime() + "\n\n"); } rollbackTransaction(); @@ -1561,7 +1563,7 @@ public class PolicyDBDao { notifyOthers(policyId, POLICY_NOTIFICATION, newGroupId); } catch (Exception e) { PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar, - "Caught Exception on notifyOthers(" + policyId + "," + POLICY_NOTIFICATION + "," + CAUGHTEXCEPTIONONNOTIFY + policyId + "," + POLICY_NOTIFICATION + "," + newGroupId + ")"); } } else { @@ -1569,7 +1571,7 @@ public class PolicyDBDao { notifyOthers(policyId, POLICY_NOTIFICATION); } catch (Exception e) { PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar, - "Caught Exception on notifyOthers(" + policyId + "," + POLICY_NOTIFICATION + ")"); + CAUGHTEXCEPTIONONNOTIFY + policyId + "," + POLICY_NOTIFICATION + ")"); } } } @@ -1580,7 +1582,7 @@ public class PolicyDBDao { notifyOthers(groupId, GROUP_NOTIFICATION, newGroupId); } catch (Exception e) { PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar, - "Caught Exception on notifyOthers(" + groupId + "," + GROUP_NOTIFICATION + "," + CAUGHTEXCEPTIONONNOTIFY + groupId + "," + GROUP_NOTIFICATION + "," + newGroupId + ")"); } } else { @@ -1588,7 +1590,7 @@ public class PolicyDBDao { notifyOthers(groupId, GROUP_NOTIFICATION); } catch (Exception e) { PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar, - "Caught Exception on notifyOthers(" + groupId + "," + GROUP_NOTIFICATION + ")"); + CAUGHTEXCEPTIONONNOTIFY + groupId + "," + GROUP_NOTIFICATION + ")"); } } } @@ -1598,7 +1600,7 @@ public class PolicyDBDao { notifyOthers(pdpId, PDP_NOTIFICATION); } catch (Exception e) { PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar, - "Caught Exception on notifyOthers(" + pdpId + "," + PDP_NOTIFICATION + ")"); + CAUGHTEXCEPTIONONNOTIFY + pdpId + "," + PDP_NOTIFICATION + ")"); } } } @@ -1769,7 +1771,7 @@ public class PolicyDBDao { newConfigurationDataEntity.setModifiedBy(username); } if (newConfigurationDataEntity.getDescription() == null - || !newConfigurationDataEntity.getDescription().equals("")) { + || !"".equals(newConfigurationDataEntity.getDescription())) { newConfigurationDataEntity.setDescription(""); } if (newConfigurationDataEntity.getConfigBody() == null diff --git a/ONAP-PDP-REST/src/main/java/org/onap/policy/pdp/rest/XACMLPdpServlet.java b/ONAP-PDP-REST/src/main/java/org/onap/policy/pdp/rest/XACMLPdpServlet.java index 87cafc4ef..fcf319c8e 100644 --- a/ONAP-PDP-REST/src/main/java/org/onap/policy/pdp/rest/XACMLPdpServlet.java +++ b/ONAP-PDP-REST/src/main/java/org/onap/policy/pdp/rest/XACMLPdpServlet.java @@ -497,7 +497,7 @@ public class XACMLPdpServlet extends HttpServlet implements Runnable { } protected void doPutConfig(String config, HttpServletRequest request, HttpServletResponse response, - ONAPLoggingContext loggingContext) throws ServletException, IOException { + ONAPLoggingContext loggingContext) throws IOException { try { // prevent multiple configuration changes from stacking up logger.info("XACMLPdpServlet: checking remainingCapacity of Queue."); @@ -649,92 +649,63 @@ public class XACMLPdpServlet extends HttpServlet implements Runnable { XACMLRest.dumpRequest(request); String pathInfo = request.getRequestURI(); - if (pathInfo != null) { + if (pathInfo != null && "/pdp/test".equals(pathInfo)) { // health check from Global Site Selector (iDNS). // DO NOT do a im.startTransaction for the test request - if (pathInfo.equals("/pdp/test")) { - loggingContext.setServiceName("iDNS:PDP.test"); + loggingContext.setServiceName("iDNS:PDP.test"); + try { + im.evaluateSanity(); + // If we make it this far, all is well + String message = "GET:/pdp/test called and PDP " + pdpResourceName + " is OK"; + PolicyLogger.debug(message); + PolicyLogger.audit("Success"); + response.setStatus(HttpServletResponse.SC_OK); + return; + } catch (ForwardProgressException | AdministrativeStateException | StandbyStatusException fpe) { + // No forward progress is being made + String message = "GET:/pdp/test called and PDP " + pdpResourceName + " is not making forward progress." + + " Exception Message: " + fpe.getMessage(); + PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, message + fpe); + PolicyLogger.audit("Transaction Failed - See Error.log"); try { - im.evaluateSanity(); - // If we make it this far, all is well - String message = "GET:/pdp/test called and PDP " + pdpResourceName + " is OK"; - PolicyLogger.debug(message); - loggingContext.transactionEnded(); - PolicyLogger.audit("Success"); - response.setStatus(HttpServletResponse.SC_OK); - return; - } catch (ForwardProgressException fpe) { - // No forward progress is being made - String message = "GET:/pdp/test called and PDP " + pdpResourceName - + " is not making forward progress." + " Exception Message: " + fpe.getMessage(); - PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, message + fpe); - loggingContext.transactionEnded(); - PolicyLogger.audit("Transaction Failed - See Error.log"); - try { - response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message); - } catch (Exception e1) { - logger.error("Exception occured while sending error in response" + e1); - } - return; - } catch (AdministrativeStateException ase) { - // Administrative State is locked - String message = "GET:/pdp/test called and PDP " + pdpResourceName - + " Administrative State is LOCKED " + " Exception Message: " + ase.getMessage(); - PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, message + ase); - loggingContext.transactionEnded(); - PolicyLogger.audit("Transaction Failed - See Error.log"); - try { - response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message); - } catch (Exception e1) { - logger.error("Exception occured while sending error in response" + e1); - } - return; - } catch (StandbyStatusException sse) { - // Administrative State is locked - String message = "GET:/pdp/test called and PDP " + pdpResourceName - + " Standby Status is NOT PROVIDING SERVICE " + " Exception Message: " + sse.getMessage(); - PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, message + sse); - loggingContext.transactionEnded(); - PolicyLogger.audit("Transaction Failed - See Error.log"); - try { - response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message); - } catch (Exception e1) { - logger.error("Exception occured while sending error in response" + e1); - } - return; - } catch (Exception e) { - // A subsystem is not making progress or is not responding - String eMsg = e.getMessage(); - if (eMsg == null) { - eMsg = "No Exception Message"; - } - String message = "GET:/pdp/test called and PDP " + pdpResourceName + " has had a subsystem failure." - + " Exception Message: " + eMsg; - PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, message); - // Get the specific list of subsystems that failed - String failedNodeList = null; - for (String node : dependencyNodes) { - if (eMsg.contains(node)) { - if (failedNodeList == null) { - failedNodeList = node; - } else { - failedNodeList = failedNodeList.concat("," + node); - } + response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message); + } catch (Exception e1) { + logger.error("Exception occured while sending error in response" + e1); + } + return; + } catch (Exception e) { + // A subsystem is not making progress or is not responding + String eMsg = e.getMessage(); + if (eMsg == null) { + eMsg = "No Exception Message"; + } + String message = "GET:/pdp/test called and PDP " + pdpResourceName + " has had a subsystem failure." + + " Exception Message: " + eMsg; + PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, message); + // Get the specific list of subsystems that failed + String failedNodeList = null; + for (String node : dependencyNodes) { + if (eMsg.contains(node)) { + if (failedNodeList == null) { + failedNodeList = node; + } else { + failedNodeList = failedNodeList.concat("," + node); } } - if (failedNodeList == null) { - failedNodeList = "UnknownSubSystem"; - } - response.addHeader("X-ONAP-SubsystemFailure", failedNodeList); - try { - response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message); - } catch (Exception e1) { - logger.error("Exception occured while sending error in response" + e1); - } - loggingContext.transactionEnded(); - PolicyLogger.audit("Transaction Failed - See Error.log" + e); - return; } + if (failedNodeList == null) { + failedNodeList = "UnknownSubSystem"; + } + response.addHeader("X-ONAP-SubsystemFailure", failedNodeList); + try { + response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message); + } catch (Exception e1) { + logger.error("Exception occured while sending error in response" + e1); + } + PolicyLogger.audit("Transaction Failed - See Error.log" + e); + return; + } finally { + loggingContext.transactionEnded(); } } @@ -1001,7 +972,7 @@ public class XACMLPdpServlet extends HttpServlet implements Runnable { if (contentType.getMimeType().equalsIgnoreCase(ContentType.APPLICATION_JSON.getMimeType())) { pdpRequest = JSONRequest.load(incomingRequestString); } else if (contentType.getMimeType().equalsIgnoreCase(ContentType.APPLICATION_XML.getMimeType()) - || contentType.getMimeType().equalsIgnoreCase("application/xacml+xml")) { + || "application/xacml+xml".equalsIgnoreCase(contentType.getMimeType())) { pdpRequest = DOMRequest.load(incomingRequestString); } } catch (Exception e) { @@ -1035,7 +1006,7 @@ public class XACMLPdpServlet extends HttpServlet implements Runnable { // Did we successfully get and parse a request? // if (pdpRequest == null || pdpRequest.getRequestAttributes() == null - || pdpRequest.getRequestAttributes().size() <= 0) { + || pdpRequest.getRequestAttributes().isEmpty()) { String message = "Zero Attributes found in the request"; logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + message); PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, message); diff --git a/ONAP-REST/src/main/java/org/onap/policy/rest/adapter/PolicyRestAdapter.java b/ONAP-REST/src/main/java/org/onap/policy/rest/adapter/PolicyRestAdapter.java index edadf53de..e3faaff88 100644 --- a/ONAP-REST/src/main/java/org/onap/policy/rest/adapter/PolicyRestAdapter.java +++ b/ONAP-REST/src/main/java/org/onap/policy/rest/adapter/PolicyRestAdapter.java @@ -129,14 +129,6 @@ public class PolicyRestAdapter { private String blackListEntryType; private String rawXacmlPolicy; - public String getRawXacmlPolicy() { - return rawXacmlPolicy; - } - - public void setRawXacmlPolicy(String rawXacmlPolicy) { - this.rawXacmlPolicy = rawXacmlPolicy; - } - // Rainy Day Decision private RainyDayParams rainyday; private Map rainydayMap; @@ -1145,4 +1137,12 @@ public class PolicyRestAdapter { public void setBlackListEntryType(String blackListEntryType) { this.blackListEntryType = blackListEntryType; } + + public String getRawXacmlPolicy() { + return rawXacmlPolicy; + } + + public void setRawXacmlPolicy(String rawXacmlPolicy) { + this.rawXacmlPolicy = rawXacmlPolicy; + } } diff --git a/ONAP-REST/src/main/java/org/onap/policy/rest/util/MSModelUtils.java b/ONAP-REST/src/main/java/org/onap/policy/rest/util/MSModelUtils.java index 411ecaa26..0384d0b2c 100644 --- a/ONAP-REST/src/main/java/org/onap/policy/rest/util/MSModelUtils.java +++ b/ONAP-REST/src/main/java/org/onap/policy/rest/util/MSModelUtils.java @@ -172,11 +172,11 @@ public class MSModelUtils { addEnumClassMap(); } if (!matchingClass.isEmpty()){ - CheckForMatchingClass(); + checkForMatchingClass(); } } - private void CheckForMatchingClass() { + private void checkForMatchingClass() { HashMap tempAttribute = new HashMap<>(); for (Entry set : matchingClass.entrySet()){ @@ -194,14 +194,14 @@ public class MSModelUtils { } } - UpdateMatching(tempAttribute, key); + updateMatching(tempAttribute, key); } } - private void UpdateMatching(HashMap tempAttribute, String key) { + private void updateMatching(HashMap tempAttribute, String key) { Map newClass = classMap; for (Entry updateClass : newClass.entrySet()){ @@ -392,20 +392,14 @@ public class MSModelUtils { } public String checkRequiredPattern(int upper, int lower) { - String pattern = XACMLProperties.getProperty(XACMLRestProperties.PROP_XCORE_REQUIRED_PATTERN); - - if (pattern!=null){ - if (upper == Integer.parseInt(pattern.split(",")[1]) && lower==Integer.parseInt(pattern.split(",")[0])){ - return REQUIREDTRUE; - } + if (pattern!=null && upper == Integer.parseInt(pattern.split(",")[1]) && lower==Integer.parseInt(pattern.split(",")[0])){ + return REQUIREDTRUE; } - return REQUIREDFALSE; } public JSONObject buildJavaObject(Map map){ - return new JSONObject(map); } @@ -777,7 +771,7 @@ public class MSModelUtils { * For TOSCA Model */ public String parseTosca(String fileName) { - LinkedHashMap map = new LinkedHashMap<>(); + Map map = new LinkedHashMap<>(); try { map = load(fileName); if (map != null && map.get(ERROR) != null) { @@ -800,9 +794,9 @@ public class MSModelUtils { } @SuppressWarnings("unchecked") - public LinkedHashMap load(String fileName) throws IOException, ParserException { + public Map load(String fileName) throws IOException, ParserException { File newConfiguration = new File(fileName); - StringBuffer orderInfo = new StringBuffer("["); + StringBuilder orderInfo = new StringBuilder("["); Yaml yaml = new Yaml(); LinkedHashMap yamlMap = null; try (InputStream is = new FileInputStream(newConfiguration)) { @@ -810,6 +804,7 @@ public class MSModelUtils { } catch (FileNotFoundException e) { logger.error(e); } catch (Exception e) { + logger.error(e); throw new ParserException("Invalid TOSCA Model format. Please make sure it is a valid YAML file"); } @@ -828,8 +823,8 @@ public class MSModelUtils { findNode(yamlMap); - if (!isDuplicatedAttributes && orderedElements != null && orderedElements.size() > 0) { - orderedElements.stream().forEach((string) -> { + if (!isDuplicatedAttributes && orderedElements != null && !orderedElements.isEmpty()) { + orderedElements.stream().forEach(string -> { orderInfo.append(string); orderInfo.append(","); logger.info("Content: " + string); @@ -972,7 +967,7 @@ public class MSModelUtils { } - void parseDataAndPolicyNodes(LinkedHashMap map) { + void parseDataAndPolicyNodes(Map map) { for (String key : map.keySet()) { if (key.contains("policy.nodes.Root")) { continue; @@ -1061,7 +1056,7 @@ public class MSModelUtils { logger.info("###############################################################################"); } - LinkedHashMap parseDataNodes(LinkedHashMap map) { + LinkedHashMap parseDataNodes(Map map) { LinkedHashMap dataMapForJson = new LinkedHashMap<>(); matchableValues = new HashMap<>(); for (String uniqueDataKey : uniqueDataKeys) { @@ -1149,7 +1144,7 @@ public class MSModelUtils { if (constraintsValue == null) { break; } else { - System.out.println("constraintsValue => " + constraintsValue); + logger.info("constraintsValue => " + constraintsValue); if (constraintsValue.contains("=")) { constraintsValue = constraintsValue.replace("=", "equal-sign"); } @@ -1170,7 +1165,6 @@ public class MSModelUtils { + ".description"; String userDefinedValue = map.get(findUserDefined); String description = map.get(findDescription); - // String requiredValue = map.get(required); String trimValue = userDefinedValue.substring(userDefinedValue.lastIndexOf('.') + 1); StringBuilder referenceIndividualStringBuilder = new StringBuilder(); referenceIndividualStringBuilder.append(trimValue + REQUIREDVALUE); @@ -1246,9 +1240,9 @@ public class MSModelUtils { for (Map.Entry> entry : mapKey.entrySet()) { String keySetString = entry.getKey(); LinkedHashMap keyValues = mapKey.get(keySetString); - if (keyValues.get("type") != null && keyValues.get("type").equalsIgnoreCase(STRING) - || keyValues.get("type") != null && keyValues.get("type").equalsIgnoreCase(INTEGER) - || keyValues.get("type") != null && keyValues.get("type").equalsIgnoreCase(BOOLEAN)) { + if (keyValues.get("type") != null && (STRING.equalsIgnoreCase(keyValues.get("type")) + || INTEGER.equalsIgnoreCase(keyValues.get("type")) + || BOOLEAN.equalsIgnoreCase(keyValues.get("type")))) { StringBuilder attributeIndividualStringBuilder = new StringBuilder(); attributeIndividualStringBuilder.append(keySetString + "="); attributeIndividualStringBuilder.append(keyValues.get("type") + DEFAULTVALUE); @@ -1256,15 +1250,14 @@ public class MSModelUtils { attributeIndividualStringBuilder.append(keyValues.get("required") + MANYFALSE); attributeIndividualStringBuilder.append(DESCRIPTION_TOKEN + keyValues.get(DESCRIPTION_KEY)); attributeStringBuilder.append(attributeIndividualStringBuilder + ","); - if (keyValues.get(MATCHABLEKEY) != null && keyValues.get(MATCHABLEKEY).equalsIgnoreCase("true")) { + if (keyValues.get(MATCHABLEKEY) != null && "true".equalsIgnoreCase(keyValues.get(MATCHABLEKEY))) { matchableValues.put(keySetString, MATCHINGTRUE); } } else if (LIST.equalsIgnoreCase(keyValues.get("type"))) { - if ("true".equalsIgnoreCase(keyValues.get(MATCHABLEKEY))) { matchableValues.put(keySetString, MATCHINGTRUE); } - // List Datatype + // List Data type Set keys = keyValues.keySet(); Iterator itr = keys.iterator(); boolean isDefinedType = false; @@ -1291,7 +1284,7 @@ public class MSModelUtils { } - if (!isDefinedType && LIST.equalsIgnoreCase(keyValues.get("type"))) { + if (!isDefinedType && LIST.equalsIgnoreCase(keyValues.get("type"))) { if (constraints == null || constraints.isEmpty()) { referenceStringBuilder.append(keySetString + "=MANY-true" + ","); } @@ -1313,7 +1306,7 @@ public class MSModelUtils { } } - if (constraints != null && constraints.isEmpty() == false) { + if (constraints != null && !constraints.isEmpty()) { // List handling. listBuffer.append(keySetString.toUpperCase() + "=["); for (String str : constraints) { @@ -1353,16 +1346,14 @@ public class MSModelUtils { if (key.equals(PROPERTIES_KEY) && value instanceof Map) { saveNodes((LinkedHashMap) value); if (isDuplicatedAttributes) { - orderedElements = new ArrayList(); + orderedElements = new ArrayList<>(); return; } } - if (!key.equals("policy.nodes.Root")) { + if (!"policy.nodes.Root".equals(key) && value instanceof Map) { // value is a Map object, then make a recursive call - if (value instanceof Map) { - findNode((LinkedHashMap) value); - } + findNode((LinkedHashMap) value); } }); diff --git a/ONAP-XACML/src/main/java/org/onap/policy/xacml/util/XACMLPolicyWriter.java b/ONAP-XACML/src/main/java/org/onap/policy/xacml/util/XACMLPolicyWriter.java index e1d0223f6..2aaa4e124 100644 --- a/ONAP-XACML/src/main/java/org/onap/policy/xacml/util/XACMLPolicyWriter.java +++ b/ONAP-XACML/src/main/java/org/onap/policy/xacml/util/XACMLPolicyWriter.java @@ -142,7 +142,7 @@ public class XACMLPolicyWriter { if (policy instanceof PolicyType) { policyElement = new ObjectFactory().createPolicy((PolicyType) policy); return getByteArrayInputStream(policyElement, PolicyType.class); - } else if (policy instanceof PolicyType) { + } else if (policy instanceof PolicySetType) { policyElement = new ObjectFactory().createPolicySet((PolicySetType) policy); return getByteArrayInputStream(policyElement, PolicySetType.class); } diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/DecisionPolicyController.java b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/DecisionPolicyController.java index fdbee2a99..69c3d2fcb 100644 --- a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/DecisionPolicyController.java +++ b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/DecisionPolicyController.java @@ -63,27 +63,28 @@ import oasis.names.tc.xacml._3_0.core.schema.wd_17.VariableReferenceType; @RequestMapping("/") public class DecisionPolicyController extends RestrictedBaseController { private static final Logger policyLogger = FlexLogger.getLogger(DecisionPolicyController.class); - - public DecisionPolicyController() { - // This constructor is empty - } - + + public static final String FUNCTION_NOT = "urn:oasis:names:tc:xacml:1.0:function:not"; + private static final String BLENTRY = "@blEntry@"; + private static final String DECISIONRAWTYPE = "@#RuleProvider@#Decision_Raw@#RuleProvider@#"; + private static final String GUARD_YAML= "GUARD_YAML"; + private static final String GUARD_BL_YAML= "GUARD_BL_YAML"; + protected PolicyRestAdapter policyAdapter = null; - private ArrayList attributeList; - private ArrayList decisionList; private ArrayList ruleAlgorithmList; private ArrayList treatmentList = null; protected LinkedList ruleAlgoirthmTracker; - public static final String FUNCTION_NOT = "urn:oasis:names:tc:xacml:1.0:function:not"; - private static final String blEntry = "@blEntry@"; - private static final String decisionRawType = "@#RuleProvider@#Decision_Raw@#RuleProvider@#"; - + + public DecisionPolicyController() { + // This constructor is empty + } + public void rawXACMLPolicy(PolicyRestAdapter policyAdapter, PolicyEntity entity) { try (InputStream policyXmlStream = XACMLPolicyWriter.getXmlAsInputStream(policyAdapter.getPolicyData())) { String name = StringUtils.substringAfter(entity.getPolicyName(), "Decision_"); policyAdapter.setPolicyName(name.substring(0, name.indexOf('.'))); policyAdapter.setRuleProvider("Raw"); - policyAdapter.setRawXacmlPolicy(IOUtils.toString(policyXmlStream).replaceAll(decisionRawType, "")); + policyAdapter.setRawXacmlPolicy(IOUtils.toString(policyXmlStream).replaceAll(DECISIONRAWTYPE, "")); } catch (IOException e) { policyLogger.error("Exception Occured while setting XACML Raw Object" + e); } @@ -91,16 +92,16 @@ public class DecisionPolicyController extends RestrictedBaseController { @SuppressWarnings("unchecked") public void prePopulateDecisionPolicyData(PolicyRestAdapter policyAdapter, PolicyEntity entity) { - attributeList = new ArrayList<>(); - decisionList = new ArrayList<>(); + List attributeList = new ArrayList<>(); + List decisionList = new ArrayList<>(); ruleAlgorithmList = new ArrayList<>(); treatmentList = new ArrayList<>(); boolean rawPolicyCheck = false; if (policyAdapter.getPolicyData() instanceof PolicySetType) { - rawPolicyCheck = ((PolicySetType) policyAdapter.getPolicyData()).getDescription().contains(decisionRawType); + rawPolicyCheck = ((PolicySetType) policyAdapter.getPolicyData()).getDescription().contains(DECISIONRAWTYPE); } else { - rawPolicyCheck = ((PolicyType) policyAdapter.getPolicyData()).getDescription().contains(decisionRawType); + rawPolicyCheck = ((PolicyType) policyAdapter.getPolicyData()).getDescription().contains(DECISIONRAWTYPE); } if (rawPolicyCheck) { @@ -115,9 +116,9 @@ public class DecisionPolicyController extends RestrictedBaseController { String description = ""; String blackListEntryType = "Use Manual Entry"; try { - if (policy.getDescription().contains(blEntry)) { - blackListEntryType = policy.getDescription().substring(policy.getDescription().indexOf(blEntry) + 9, - policy.getDescription().lastIndexOf(blEntry)); + if (policy.getDescription().contains(BLENTRY)) { + blackListEntryType = policy.getDescription().substring(policy.getDescription().indexOf(BLENTRY) + 9, + policy.getDescription().lastIndexOf(BLENTRY)); } policyAdapter.setBlackListEntryType(blackListEntryType); description = policy.getDescription().substring(0, policy.getDescription().indexOf("@CreatedBy:")); @@ -226,12 +227,12 @@ public class DecisionPolicyController extends RestrictedBaseController { .getAdviceExpression().get(0).getAdviceId())) { policyAdapter.setRuleProvider("AAF"); break; - } else if ("GUARD_YAML".equalsIgnoreCase(((RuleType) object).getAdviceExpressions() + } else if (GUARD_YAML.equalsIgnoreCase(((RuleType) object).getAdviceExpressions() .getAdviceExpression().get(0).getAdviceId())) { - policyAdapter.setRuleProvider("GUARD_YAML"); - } else if ("GUARD_BL_YAML".equalsIgnoreCase(((RuleType) object).getAdviceExpressions() + policyAdapter.setRuleProvider(GUARD_YAML); + } else if (GUARD_BL_YAML.equalsIgnoreCase(((RuleType) object).getAdviceExpressions() .getAdviceExpression().get(0).getAdviceId())) { - policyAdapter.setRuleProvider("GUARD_BL_YAML"); + policyAdapter.setRuleProvider(GUARD_BL_YAML); } } else { policyAdapter.setRuleProvider("Custom"); @@ -242,8 +243,8 @@ public class DecisionPolicyController extends RestrictedBaseController { decisionApply = (ApplyType) decisionApply.getExpression().get(0).getValue(); ruleAlgoirthmTracker = new LinkedList<>(); if (policyAdapter.getRuleProvider() != null - && ("GUARD_YAML".equals(policyAdapter.getRuleProvider()) - || ("GUARD_BL_YAML".equals(policyAdapter.getRuleProvider())))) { + && (GUARD_YAML.equals(policyAdapter.getRuleProvider()) + || (GUARD_BL_YAML.equals(policyAdapter.getRuleProvider())))) { YAMLParams yamlParams = new YAMLParams(); for (int i = 0; i < attributeList.size(); i++) { Map map = (Map) attributeList.get(i); @@ -266,7 +267,7 @@ public class DecisionPolicyController extends RestrictedBaseController { yamlParams.setGuardActiveEnd( ((AttributeValueType) apply.getExpression().get(2).getValue()).getContent() .get(0).toString()); - if ("GUARD_BL_YAML".equals(policyAdapter.getRuleProvider())) { + if (GUARD_BL_YAML.equals(policyAdapter.getRuleProvider())) { apply = (ApplyType) ((ApplyType) ((ApplyType) decisionApply.getExpression() .get(0).getValue()).getExpression().get(1).getValue()).getExpression() .get(2).getValue(); -- 2.16.6