X-Git-Url: https://gerrit.onap.org/r/gitweb?p=policy%2Fengine.git;a=blobdiff_plain;f=PolicyEngineAPI%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fpolicy%2Fstd%2FStdPolicyEngine.java;h=d08ea29f9a17907efe9f8168d0ae39929da8600b;hp=6c74dde89e754c5c54b54237ae3e94b00371fbe4;hb=06f456d8d06840a21f48531b0bd35b1a429b10f9;hpb=066fc4529f36d210a4a4700e8dbfd2cb42f4dc66 diff --git a/PolicyEngineAPI/src/main/java/org/onap/policy/std/StdPolicyEngine.java b/PolicyEngineAPI/src/main/java/org/onap/policy/std/StdPolicyEngine.java index 6c74dde89..d08ea29f9 100644 --- a/PolicyEngineAPI/src/main/java/org/onap/policy/std/StdPolicyEngine.java +++ b/PolicyEngineAPI/src/main/java/org/onap/policy/std/StdPolicyEngine.java @@ -537,7 +537,7 @@ public class StdPolicyEngine { public DecisionResponse getDecisionImpl(String onapName, Map decisionAttributes, UUID requestID) throws PolicyDecisionException { String resource = "getDecision"; - StdDecisionResponse response = new StdDecisionResponse(); + StdDecisionResponse response; String body = null; // Create Request. try { @@ -579,7 +579,7 @@ public class StdPolicyEngine { public Collection getConfigImpl(ConfigRequestParameters configRequestParameters) throws PolicyConfigException { String resource = "getConfig"; - ArrayList response = null; + ArrayList response; String body = null; // Create Request. try { @@ -671,9 +671,9 @@ public class StdPolicyEngine { HashMap configAttributes = new HashMap<>(); try { for (Map.Entry entry : matchingConditions.entrySet()) { - if (entry.getKey().equalsIgnoreCase("ONAPName")) { + if ("ONAPName".equalsIgnoreCase(entry.getKey())) { match.setOnapName(entry.getValue()); - } else if (entry.getKey().equalsIgnoreCase("ConfigName")) { + } else if ("ConfigName".equalsIgnoreCase(entry.getKey())) { match.setConfigName(entry.getValue()); } else { configAttributes.put(entry.getKey(), entry.getValue()); @@ -716,31 +716,31 @@ public class StdPolicyEngine { break; } } - if (exception != null && exception.getStatusCode() != null) { - if (exception.getStatusCode().equals(HttpStatus.UNAUTHORIZED)) { - String message = XACMLErrorConstants.ERROR_PERMISSIONS + ":" + exception.getStatusCode() + ":" - + ERROR_AUTH_GET_PERM + resource; - LOGGER.error(message); - throw new PolicyException(message, exception); - } - if (exception.getStatusCode().equals(HttpStatus.BAD_REQUEST)) { - String message = XACMLErrorConstants.ERROR_DATA_ISSUE + ":" + exception.getStatusCode() + ":" - + exception.getResponseBodyAsString(); - LOGGER.error(message); - throw new PolicyException(message, exception); - } - if (exception.getStatusCode().equals(HttpStatus.NOT_FOUND)) { - String message = XACMLErrorConstants.ERROR_PROCESS_FLOW + ERROR_WHILE_CONNECTING + pdps - + exception; - LOGGER.error(message); - throw new PolicyException(message, exception); - } - String message = XACMLErrorConstants.ERROR_PROCESS_FLOW + ":" + exception.getStatusCode() + ":" + if (exception == null || exception.getStatusCode() == null) { + return result; + } + if (exception.getStatusCode().equals(HttpStatus.UNAUTHORIZED)) { + String message = XACMLErrorConstants.ERROR_PERMISSIONS + ":" + exception.getStatusCode() + ":" + + ERROR_AUTH_GET_PERM + resource; + LOGGER.error(message); + throw new PolicyException(message, exception); + } + if (exception.getStatusCode().equals(HttpStatus.BAD_REQUEST)) { + String message = XACMLErrorConstants.ERROR_DATA_ISSUE + ":" + exception.getStatusCode() + ":" + exception.getResponseBodyAsString(); LOGGER.error(message); throw new PolicyException(message, exception); } - return result; + if (exception.getStatusCode().equals(HttpStatus.NOT_FOUND)) { + String message = XACMLErrorConstants.ERROR_PROCESS_FLOW + ERROR_WHILE_CONNECTING + pdps + + exception; + LOGGER.error(message); + throw new PolicyException(message, exception); + } + String message = XACMLErrorConstants.ERROR_PROCESS_FLOW + ":" + exception.getStatusCode() + ":" + + exception.getResponseBodyAsString(); + LOGGER.error(message); + throw new PolicyException(message, exception); } private HttpHeaders getHeaders() { @@ -782,7 +782,7 @@ public class StdPolicyEngine { public Collection sendEventImpl(Map eventAttributes, UUID requestID) throws PolicyEventException { String resource = "sendEvent"; - ArrayList response = null; + ArrayList response; String body = null; // Create Request. try { @@ -835,140 +835,140 @@ public class StdPolicyEngine { if (propertyFilePath == null) { throw new PolicyEngineException( XACMLErrorConstants.ERROR_DATA_ISSUE + "Error NO PropertyFile Path provided"); + } + + // Adding logic for remote Properties file. + Properties prop = new Properties(); + if (propertyFilePath.startsWith("http")) { + URL configURL; + try { + configURL = new URL(propertyFilePath); + URLConnection connection; + connection = configURL.openConnection(); + prop.load(connection.getInputStream()); + } catch (IOException e) { + LOGGER.error(XACMLErrorConstants.ERROR_DATA_ISSUE + e); + throw new PolicyEngineException( + XACMLErrorConstants.ERROR_DATA_ISSUE + "Maformed property URL " + e.getMessage()); + } } else { - // Adding logic for remote Properties file. - Properties prop = new Properties(); - if (propertyFilePath.startsWith("http")) { - URL configURL; + Path file = Paths.get(propertyFilePath); + if (!file.toFile().exists()) { + throw new PolicyEngineException(XACMLErrorConstants.ERROR_DATA_ISSUE + + "File doesn't exist in the specified Path " + file.toString()); + } + if (file.toString().endsWith(".properties")) { + InputStream in; + prop = new Properties(); try { - configURL = new URL(propertyFilePath); - URLConnection connection = null; - connection = configURL.openConnection(); - prop.load(connection.getInputStream()); + in = new FileInputStream(file.toFile()); + prop.load(in); } catch (IOException e) { - LOGGER.error(XACMLErrorConstants.ERROR_DATA_ISSUE + e); + LOGGER.error(XACMLErrorConstants.ERROR_SYSTEM_ERROR + e); throw new PolicyEngineException( - XACMLErrorConstants.ERROR_DATA_ISSUE + "Maformed property URL " + e.getMessage()); + XACMLErrorConstants.ERROR_SYSTEM_ERROR + "Cannot Load the Properties file", e); } } else { - Path file = Paths.get(propertyFilePath); - if (!file.toFile().exists()) { - throw new PolicyEngineException(XACMLErrorConstants.ERROR_DATA_ISSUE - + "File doesn't exist in the specified Path " + file.toString()); - } - if (file.toString().endsWith(".properties")) { - InputStream in; - prop = new Properties(); - try { - in = new FileInputStream(file.toFile()); - prop.load(in); - } catch (IOException e) { - LOGGER.error(XACMLErrorConstants.ERROR_SYSTEM_ERROR + e); - throw new PolicyEngineException( - XACMLErrorConstants.ERROR_SYSTEM_ERROR + "Cannot Load the Properties file", e); - } - } else { - LOGGER.error(XACMLErrorConstants.ERROR_SYSTEM_ERROR + "Not a .properties file " + propertyFilePath); - throw new PolicyEngineException(XACMLErrorConstants.ERROR_SYSTEM_ERROR + "Not a .properties file"); - } + LOGGER.error(XACMLErrorConstants.ERROR_SYSTEM_ERROR + "Not a .properties file " + propertyFilePath); + throw new PolicyEngineException(XACMLErrorConstants.ERROR_SYSTEM_ERROR + "Not a .properties file"); } - // UEB and DMAAP Settings - String checkType = prop.getProperty("NOTIFICATION_TYPE"); - String serverList = prop.getProperty("NOTIFICATION_SERVERS"); - topic = prop.getProperty("NOTIFICATION_TOPIC"); - apiKey = prop.getProperty("UEB_API_KEY"); - apiSecret = prop.getProperty("UEB_API_SECRET"); - - if (checkType == null) { - notificationType.add(DEFAULT_NOTIFICATION); - LOGGER.info( - "Properties file doesn't have the NOTIFICATION_TYPE parameter system will use defualt websockets"); + } + // UEB and DMAAP Settings + String checkType = prop.getProperty("NOTIFICATION_TYPE"); + String serverList = prop.getProperty("NOTIFICATION_SERVERS"); + topic = prop.getProperty("NOTIFICATION_TOPIC"); + apiKey = prop.getProperty("UEB_API_KEY"); + apiSecret = prop.getProperty("UEB_API_SECRET"); + + if (checkType == null) { + notificationType.add(DEFAULT_NOTIFICATION); + LOGGER.info( + "Properties file doesn't have the NOTIFICATION_TYPE parameter system will use defualt websockets"); + } else { + checkType = checkType.trim(); + if (checkType.contains(",")) { + notificationType = new ArrayList<>(Arrays.asList(prop.getProperty("NOTIFICATION_TYPE").split(","))); } else { - checkType = checkType.trim(); - if (checkType.contains(",")) { - notificationType = new ArrayList<>(Arrays.asList(prop.getProperty("NOTIFICATION_TYPE").split(","))); - } else { - notificationType = new ArrayList<>(); - notificationType.add(checkType); - } + notificationType = new ArrayList<>(); + notificationType.add(checkType); } - if (serverList == null) { - notificationType.clear(); - notificationType.add(DEFAULT_NOTIFICATION); - LOGGER.info( - "Properties file doesn't have the NOTIFICATION_SERVERS parameter system will use defualt websockets"); + } + if (serverList == null) { + notificationType.clear(); + notificationType.add(DEFAULT_NOTIFICATION); + LOGGER.info( + "Properties file doesn't have the NOTIFICATION_SERVERS parameter system will use defualt websockets"); + } else { + serverList = serverList.trim(); + if (serverList.contains(",")) { + notificationURLList = new ArrayList<>(Arrays.asList(serverList.split(","))); } else { - serverList = serverList.trim(); - if (serverList.contains(",")) { - notificationURLList = new ArrayList<>(Arrays.asList(serverList.split(","))); - } else { - notificationURLList = new ArrayList<>(); - notificationURLList.add(serverList); - } + notificationURLList = new ArrayList<>(); + notificationURLList.add(serverList); } + } - if (topic != null) { - topic = topic.trim(); - } else { - LOGGER.error("Properties file doesn't have the NOTIFICATION_TOPIC parameter."); - } + if (topic != null) { + topic = topic.trim(); + } else { + LOGGER.error("Properties file doesn't have the NOTIFICATION_TOPIC parameter."); + } - // Client ID Authorization Settings. - String clientID = prop.getProperty("CLIENT_ID"); - if (clientKey == null) { - clientKey = prop.getProperty("CLIENT_KEY"); - try { - clientKey = PolicyUtils.decode(clientKey); - } catch (UnsupportedEncodingException | IllegalArgumentException e) { - LOGGER.error(XACMLErrorConstants.ERROR_PERMISSIONS - + " Cannot Decode the given Password Proceeding with given Password!!", e); - } - } - if (clientID == null || clientKey == null || clientID.isEmpty() || clientKey.isEmpty()) { + // Client ID Authorization Settings. + String clientID = prop.getProperty("CLIENT_ID"); + if (clientKey == null) { + clientKey = prop.getProperty("CLIENT_KEY"); + try { + clientKey = PolicyUtils.decode(clientKey); + } catch (UnsupportedEncodingException | IllegalArgumentException e) { LOGGER.error(XACMLErrorConstants.ERROR_PERMISSIONS - + " Cannot proceed without the CLIENT_KEY and CLIENT_ID values !!"); - throw new PolicyEngineException(XACMLErrorConstants.ERROR_PERMISSIONS - + " Cannot proceed without the CLIENT_KEY and CLIENT_ID values !!"); - } else { - setClientId(clientID.trim()); - setClientKey(clientKey.trim()); + + " Cannot Decode the given Password Proceeding with given Password!!", e); } - setEnvironment(prop); - // Initializing the values. - init(); - // Check the Keys for PDP_URLs - Collection unsorted = prop.keySet(); - @SuppressWarnings({ "rawtypes", "unchecked" }) - List sorted = new ArrayList(unsorted); - Collections.sort(sorted); - for (String propKey : sorted) { - if (propKey.startsWith("PDP_URL")) { - String checkVal = prop.getProperty(propKey); - if (checkVal == null) { - throw new PolicyEngineException(XACMLErrorConstants.ERROR_DATA_ISSUE - + "Properties file doesn't have the PDP_URL parameter"); - } - if (checkVal.contains(";")) { - List pdpDefault = new ArrayList<>(Arrays.asList(checkVal.split("\\s*;\\s*"))); - int pdpCount = 0; - while (pdpCount < pdpDefault.size()) { - String pdpVal = pdpDefault.get(pdpCount); - readPDPParam(pdpVal); - pdpCount++; - } - } else { - readPDPParam(checkVal); + } + if (clientID == null || clientKey == null || clientID.isEmpty() || clientKey.isEmpty()) { + LOGGER.error(XACMLErrorConstants.ERROR_PERMISSIONS + + " Cannot proceed without the CLIENT_KEY and CLIENT_ID values !!"); + throw new PolicyEngineException(XACMLErrorConstants.ERROR_PERMISSIONS + + " Cannot proceed without the CLIENT_KEY and CLIENT_ID values !!"); + } else { + setClientId(clientID.trim()); + setClientKey(clientKey.trim()); + } + setEnvironment(prop); + // Initializing the values. + init(); + // Check the Keys for PDP_URLs + Collection unsorted = prop.keySet(); + @SuppressWarnings({ "rawtypes", "unchecked" }) + List sorted = new ArrayList(unsorted); + Collections.sort(sorted); + for (String propKey : sorted) { + if (propKey.startsWith("PDP_URL")) { + String checkVal = prop.getProperty(propKey); + if (checkVal == null) { + throw new PolicyEngineException(XACMLErrorConstants.ERROR_DATA_ISSUE + + "Properties file doesn't have the PDP_URL parameter"); + } + if (checkVal.contains(";")) { + List pdpDefault = new ArrayList<>(Arrays.asList(checkVal.split("\\s*;\\s*"))); + int pdpCount = 0; + while (pdpCount < pdpDefault.size()) { + String pdpVal = pdpDefault.get(pdpCount); + readPDPParam(pdpVal); + pdpCount++; } + } else { + readPDPParam(checkVal); } } - if (pdps == null || pdps.isEmpty()) { - LOGGER.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "Cannot Proceed without PDP_URLs"); - throw new PolicyEngineException( - XACMLErrorConstants.ERROR_DATA_ISSUE + "Cannot Proceed without PDP_URLs"); - } - // Get JUNIT property from properties file when running tests - checkJunit(prop); } + if (pdps == null || pdps.isEmpty()) { + LOGGER.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "Cannot Proceed without PDP_URLs"); + throw new PolicyEngineException( + XACMLErrorConstants.ERROR_DATA_ISSUE + "Cannot Proceed without PDP_URLs"); + } + // Get JUNIT property from properties file when running tests + checkJunit(prop); } private static void checkJunit(Properties prop) { @@ -976,7 +976,7 @@ public class StdPolicyEngine { if (junitFlag == null || junitFlag.isEmpty()) { LOGGER.info("No JUNIT property provided, this will not be executed as a test."); } else { - if (junitFlag.equalsIgnoreCase("test")) { + if ("test".equalsIgnoreCase(junitFlag)) { StdPolicyEngine.junit = true; } else { StdPolicyEngine.junit = false; @@ -1040,7 +1040,7 @@ public class StdPolicyEngine { LOGGER.debug("Scheme is : " + scheme.toString()); LOGGER.debug("Handler is : " + handler.getClass().getName()); - if (notificationType.get(0).equals("ueb")) { + if ("ueb".equals(notificationType.get(0))) { if (this.uebThread) { AutoClientUEB.setAuto(scheme, handler); this.uebThread = registerUEBThread.isAlive(); @@ -1059,7 +1059,7 @@ public class StdPolicyEngine { } if (pdps != null) { - if (notificationType.get(0).equals("ueb") && !this.uebThread) { + if ("ueb".equals(notificationType.get(0)) && !this.uebThread) { this.uebClientThread = new AutoClientUEB(pdps.get(0), notificationURLList, apiKey, apiSecret); AutoClientUEB.setAuto(scheme, handler); this.registerUEBThread = new Thread(this.uebClientThread); @@ -1089,7 +1089,7 @@ public class StdPolicyEngine { */ public PDPNotification getNotification() { // Check if there is proper scheme.. - PDPNotification notification = null; + PDPNotification notification; if (this.scheme.equals(NotificationScheme.MANUAL_ALL_NOTIFICATIONS) || this.scheme.equals(NotificationScheme.MANUAL_NOTIFICATIONS)) { if (notificationType.get(0).equals("ueb")) { @@ -1106,12 +1106,10 @@ public class StdPolicyEngine { if (notification == null) { LOGGER.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "No Notification yet.."); return null; - } else { - return notification; } - } else { - return null; + return notification; } + return null; } /* @@ -1119,7 +1117,7 @@ public class StdPolicyEngine { */ public void setScheme(NotificationScheme scheme) { this.scheme = scheme; - if (notificationType.get(0).equals("ueb")) { + if ("ueb".equals(notificationType.get(0))) { AutoClientUEB.setScheme(this.scheme); if (this.scheme.equals(NotificationScheme.MANUAL_ALL_NOTIFICATIONS)) { ManualClientEndUEB.createTopic(pdps.get(0), UNIQUEID, notificationURLList); @@ -1155,7 +1153,7 @@ public class StdPolicyEngine { if (this.scheme != null && this.handler != null && (this.scheme.equals(NotificationScheme.AUTO_ALL_NOTIFICATIONS) || this.scheme.equals(NotificationScheme.AUTO_NOTIFICATIONS))) { LOGGER.info("Clear Notification called.. "); - if (notificationType.get(0).equals("ueb")) { + if ("ueb".equals(notificationType.get(0))) { this.uebClientThread.terminate(); this.uebThread = false; } else if (notificationType.get(0).equals(DMAAP)) { @@ -1222,7 +1220,7 @@ public class StdPolicyEngine { policyParameters.setPolicyDescription(policyDescription); policyParameters.setOnapName(onapName); policyParameters.setConfigName(configName); - Map> attributes = new HashMap>(); + Map> attributes = new HashMap<>(); attributes.put(AttributeType.MATCHING, configAttributes); policyParameters.setAttributes(attributes); policyParameters.setConfigBodyType(PolicyType.valueOf(configType));