X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=PolicyEngineAPI%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fpolicy%2Fstd%2FStdPolicyEngine.java;h=e0a6d2d76e3d78fb44243a996d8e948d9e5ddd98;hb=4723527133e158ba48bf5a1eb9eec731af2ae1f8;hp=4e904b6e15c07daea9a0cdb6c210f79e66874d85;hpb=7ea81288603904f0cb6f57936da44d6a3dd521a6;p=policy%2Fengine.git 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 4e904b6e1..e0a6d2d76 100644 --- a/PolicyEngineAPI/src/main/java/org/onap/policy/std/StdPolicyEngine.java +++ b/PolicyEngineAPI/src/main/java/org/onap/policy/std/StdPolicyEngine.java @@ -28,7 +28,6 @@ import java.io.UnsupportedEncodingException; import java.net.URL; import java.net.URLConnection; import java.nio.charset.StandardCharsets; -import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.text.ParseException; @@ -108,8 +107,12 @@ import com.google.gson.GsonBuilder; public class StdPolicyEngine { private static final String ERROR_AUTH_GET_PERM = "You are not allowed to Make this Request. Please contact PolicyAdmin to give access to: "; private static final String DEFAULT_NOTIFICATION = "websocket"; - - private String clientEncoding = null; + private static final String ERROR_DATA_ISSUE = "Invalid Data is given."; + private static final String DMAAP = "dmaap"; + private static final String ERROR_INVALID_PDPS = "Unable to get valid Response from PDP(s) "; + private static final String ERROR_WHILE_CONNECTING = "Error while connecting to "; + + private static String clientEncoding = null; private String contentType = null; private static List pdps = null; private static String environment = null; @@ -117,8 +120,6 @@ public class StdPolicyEngine { private static String pass = null; private static List encoding = null; private static boolean junit = false; - private List pdpDefault = null; - private List typeDefault = null; private List notificationType = new ArrayList<>(); private List notificationURLList = new ArrayList<>(); private NotificationScheme scheme = null; @@ -151,7 +152,7 @@ public class StdPolicyEngine { setProperty(propertyFilePath, null); this.scheme = scheme; this.handler = handler; - if ((!"ueb".equals(notificationType.get(0))) || (!"dmaap".equals(notificationType.get(0)))) { + if ((!"ueb".equals(notificationType.get(0))) || (!DMAAP.equals(notificationType.get(0)))) { AutoClientEnd.setAuto(scheme, handler); } notification(scheme, handler); @@ -365,12 +366,12 @@ public class StdPolicyEngine { return response; } if (exception.getCause().getMessage().contains("400")) { - String message = XACMLErrorConstants.ERROR_DATA_ISSUE + "Invalid Data is given."; + String message = XACMLErrorConstants.ERROR_DATA_ISSUE + ERROR_DATA_ISSUE; response.setResponseMessage(message); response.setResponseCode(400); return response; } - String message = XACMLErrorConstants.ERROR_PERMISSIONS + "Unable to get valid Response from PDP(s) " + String message = XACMLErrorConstants.ERROR_PERMISSIONS + ERROR_INVALID_PDPS + pdps; LOGGER.error(message, exception); response.setResponseMessage(message); @@ -449,7 +450,7 @@ public class StdPolicyEngine { public PolicyChangeResponse policyEngineImportImpl(ImportParameters importParameters) throws PolicyException { StdPolicyChangeResponse response = new StdPolicyChangeResponse(); String resource = "policyEngineImport"; - LinkedMultiValueMap parameters = new LinkedMultiValueMap(); + LinkedMultiValueMap parameters = new LinkedMultiValueMap<>(); // Create Request. try { String body = PolicyUtils.objectToJsonString(importParameters); @@ -536,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 { @@ -563,11 +564,11 @@ public class StdPolicyEngine { throw new PolicyDecisionException(message, exception); } if (exception.getCause().getMessage().contains("400")) { - String message = XACMLErrorConstants.ERROR_DATA_ISSUE + "Invalid Data is given."; + String message = XACMLErrorConstants.ERROR_DATA_ISSUE + ERROR_DATA_ISSUE; LOGGER.error(message); throw new PolicyDecisionException(message, exception); } - String message = XACMLErrorConstants.ERROR_PERMISSIONS + "Unable to get valid Response from PDP(s) " + String message = XACMLErrorConstants.ERROR_PERMISSIONS + ERROR_INVALID_PDPS + pdps; LOGGER.error(message, exception); throw new PolicyDecisionException(message, exception); @@ -578,7 +579,7 @@ public class StdPolicyEngine { public Collection getConfigImpl(ConfigRequestParameters configRequestParameters) throws PolicyConfigException { String resource = "getConfig"; - ArrayList response = new ArrayList<>(); + ArrayList response; String body = null; // Create Request. try { @@ -601,11 +602,11 @@ public class StdPolicyEngine { throw new PolicyConfigException(message, exception); } if (exception.getCause().getMessage().contains("400")) { - String message = XACMLErrorConstants.ERROR_DATA_ISSUE + "Invalid Data is given."; + String message = XACMLErrorConstants.ERROR_DATA_ISSUE + ERROR_DATA_ISSUE; LOGGER.error(message); throw new PolicyConfigException(message, exception); } - String message = XACMLErrorConstants.ERROR_PROCESS_FLOW + "Unable to get valid Response from PDP(s) " + String message = XACMLErrorConstants.ERROR_PROCESS_FLOW + ERROR_INVALID_PDPS + pdps; LOGGER.error(message, exception); throw new PolicyConfigException(message, exception); @@ -624,17 +625,18 @@ public class StdPolicyEngine { policyConfig.setPolicyName(policyConfigResponse.getPolicyName()); policyConfig.setPolicyType(policyConfigResponse.getType()); policyConfig.setPolicyVersion(policyConfigResponse.getPolicyVersion()); + policyConfig.setPolicyType(policyConfigResponse.getPolicyType()); policyConfig.setResponseAttributes(policyConfigResponse.getResponseAttributes()); setMatches(policyConfig.getMatchingConditions()); if (policyConfigResponse.getType() != null) { try { switch (policyConfigResponse.getType()) { case JSON: - JsonReader jsonReader = Json - .createReader(new StringReader(policyConfigResponse.getConfig())); - JsonObject object = jsonReader.readObject(); - jsonReader.close(); - policyConfig.setJsonObject(object); + try (JsonReader jsonReader = Json + .createReader(new StringReader(policyConfigResponse.getConfig())) ) { + JsonObject object = jsonReader.readObject(); + policyConfig.setJsonObject(object); + } break; case OTHER: policyConfig.setOther(policyConfigResponse.getConfig()); @@ -668,13 +670,13 @@ public class StdPolicyEngine { Matches match = new Matches(); HashMap configAttributes = new HashMap<>(); try { - for (String key : matchingConditions.keySet()) { - if (key.equalsIgnoreCase("ONAPName")) { - match.setOnapName(matchingConditions.get(key)); - } else if (key.equalsIgnoreCase("ConfigName")) { - match.setConfigName(matchingConditions.get(key)); + for (Map.Entry entry : matchingConditions.entrySet()) { + if ("ONAPName".equalsIgnoreCase(entry.getKey())) { + match.setOnapName(entry.getValue()); + } else if ("ConfigName".equalsIgnoreCase(entry.getKey())) { + match.setConfigName(entry.getValue()); } else { - configAttributes.put(key, matchingConditions.get(key)); + configAttributes.put(entry.getKey(), entry.getValue()); } } if (!configAttributes.isEmpty()) { @@ -700,10 +702,10 @@ public class StdPolicyEngine { try { result = restTemplate.exchange(pdps.get(0) + "/api/" + resource, method, requestEntity, responseType); } catch (HttpClientErrorException e) { - LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error while connecting to " + pdps.get(0), e); + LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + ERROR_WHILE_CONNECTING + pdps.get(0), e); exception = e; } catch (Exception e) { - LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error while connecting to " + pdps.get(0), e); + LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + ERROR_WHILE_CONNECTING + pdps.get(0), e); exception = new HttpClientErrorException(HttpStatus.INTERNAL_SERVER_ERROR, e.getMessage()); } if (result == null) { @@ -714,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 to " + 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() { @@ -746,7 +748,7 @@ public class StdPolicyEngine { headers.set("ClientAuth", "Basic " + clientEncoding); headers.set("Authorization", "Basic " + encoding.get(0)); if (contentType != null) { - headers.set("Content-Type", contentType.toString()); + headers.set("Content-Type", contentType); } else { headers.set("Content-Type", MediaType.APPLICATION_JSON_VALUE); } @@ -754,7 +756,7 @@ public class StdPolicyEngine { return headers; } - private void setClientEncoding() { + private static void setClientEncoding() { Base64.Encoder encoder = Base64.getEncoder(); clientEncoding = encoder.encodeToString((userName + ":" + pass).getBytes(StandardCharsets.UTF_8)); } @@ -780,8 +782,8 @@ public class StdPolicyEngine { public Collection sendEventImpl(Map eventAttributes, UUID requestID) throws PolicyEventException { String resource = "sendEvent"; - ArrayList response = new ArrayList(); - String body = new String(); + ArrayList response; + String body = null; // Create Request. try { // Long way here, can be shortened and will be done. @@ -807,11 +809,11 @@ public class StdPolicyEngine { throw new PolicyEventException(message, exception); } if (exception.getCause().getMessage().contains("400")) { - String message = XACMLErrorConstants.ERROR_DATA_ISSUE + "Invalid Data is given."; + String message = XACMLErrorConstants.ERROR_DATA_ISSUE + ERROR_DATA_ISSUE; LOGGER.error(message); throw new PolicyEventException(message, exception); } - String message = XACMLErrorConstants.ERROR_PERMISSIONS + "Unable to get valid Response from PDP(s) " + String message = XACMLErrorConstants.ERROR_PERMISSIONS + ERROR_INVALID_PDPS + pdps; LOGGER.error(message, exception); throw new PolicyEventException(message, exception); @@ -819,7 +821,7 @@ public class StdPolicyEngine { return response; } - private ArrayList eventResult(StdPolicyResponse[] response) throws PolicyEventException { + private ArrayList eventResult(StdPolicyResponse[] response){ ArrayList eventResult = new ArrayList<>(); if (response != null && response.length > 0) { for (StdPolicyResponse policyConfigResponse : response) { @@ -833,141 +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 (Files.notExists(file)) { - 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(",")) { - typeDefault = new ArrayList<>(Arrays.asList(prop.getProperty("NOTIFICATION_TYPE").split(","))); - notificationType = typeDefault; - } 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(";")) { - 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) { @@ -975,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; @@ -1008,15 +1009,15 @@ public class StdPolicyEngine { */ private void readPDPParam(String pdpVal) throws PolicyEngineException { if (pdpVal.contains(",")) { - List pdpValues = new ArrayList(Arrays.asList(pdpVal.split("\\s*,\\s*"))); + List pdpValues = new ArrayList<>(Arrays.asList(pdpVal.split("\\s*,\\s*"))); if (pdpValues.size() == 3) { // 0 - PDPURL pdps.add(pdpValues.get(0)); // 1:2 will be UserID:Password String userID = pdpValues.get(1); - String pass = pdpValues.get(2); + String userPas = pdpValues.get(2); Base64.Encoder encoder = Base64.getEncoder(); - encoding.add(encoder.encodeToString((userID + ":" + pass).getBytes(StandardCharsets.UTF_8))); + encoding.add(encoder.encodeToString((userID + ":" + userPas).getBytes(StandardCharsets.UTF_8))); } else { LOGGER.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "No Credentials to send Request: " + pdpValues); throw new PolicyEngineException( @@ -1039,12 +1040,12 @@ 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(); } - } else if (notificationType.get(0).equals("dmaap")) { + } else if (notificationType.get(0).equals(DMAAP)) { if (this.dmaapThread) { AutoClientDMAAP.setAuto(scheme, handler); this.dmaapThread = registerDMAAPThread.isAlive(); @@ -1058,13 +1059,13 @@ 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); this.registerUEBThread.start(); this.uebThread = true; - } else if (notificationType.get(0).equals("dmaap") && !this.dmaapThread) { + } else if (notificationType.get(0).equals(DMAAP) && !this.dmaapThread) { this.dmaapClientThread = new AutoClientDMAAP(notificationURLList, topic, userName, pass); AutoClientDMAAP.setAuto(scheme, handler); this.registerDMAAPThread = new Thread(this.dmaapClientThread); @@ -1088,13 +1089,13 @@ 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")) { ManualClientEndUEB.start(pdps.get(0), notificationURLList, UNIQUEID); notification = ManualClientEndUEB.result(scheme); - } else if (notificationType.get(0).equals("dmaap")) { + } else if (notificationType.get(0).equals(DMAAP)) { ManualClientEndDMAAP.start(notificationURLList, topic, UNIQUEID, userName, pass); notification = ManualClientEndDMAAP.result(scheme); } else { @@ -1105,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; } /* @@ -1118,12 +1117,12 @@ 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); } - } else if (notificationType.get(0).equals("dmaap")) { + } else if (notificationType.get(0).equals(DMAAP)) { AutoClientDMAAP.setScheme(this.scheme); if (this.scheme.equals(NotificationScheme.MANUAL_ALL_NOTIFICATIONS)) { ManualClientEndDMAAP.createTopic(topic, UNIQUEID, notificationURLList, userName, pass); @@ -1151,19 +1150,17 @@ public class StdPolicyEngine { * Stop the Notification Service if its running. */ public void stopNotification() { - if (this.scheme != null && this.handler != null) { - if (this.scheme.equals(NotificationScheme.AUTO_ALL_NOTIFICATIONS) - || this.scheme.equals(NotificationScheme.AUTO_NOTIFICATIONS)) { - LOGGER.info("Clear Notification called.. "); - if (notificationType.get(0).equals("ueb")) { - this.uebClientThread.terminate(); - this.uebThread = false; - } else if (notificationType.get(0).equals("dmaap")) { - this.dmaapClientThread.terminate(); - this.dmaapThread = false; - } else { - AutoClientEnd.stop(); - } + 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 ("ueb".equals(notificationType.get(0))) { + this.uebClientThread.terminate(); + this.uebThread = false; + } else if (notificationType.get(0).equals(DMAAP)) { + this.dmaapClientThread.terminate(); + this.dmaapThread = false; + } else { + AutoClientEnd.stop(); } } } @@ -1223,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)); @@ -1276,13 +1273,13 @@ public class StdPolicyEngine { try { policyParameters.setTtlDate(new SimpleDateFormat("dd-MM-yyyy").parse(ttlDate)); } catch (NullPointerException | ParseException e) { - LOGGER.warn("Error Parsing date given " + ttlDate); + LOGGER.warn("Error Parsing date given " + ttlDate, e); policyParameters.setTtlDate(null); } return createUpdatePolicyImpl(policyParameters, updateFlag).getResponseMessage(); } - public void setClientKey(String clientKey) { + public static void setClientKey(String clientKey) { if (clientKey != null && !clientKey.isEmpty()) { StdPolicyEngine.pass = clientKey; setClientEncoding();