summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkrishnajinka <kris.jinka@samsung.com>2018-08-10 20:27:53 +0900
committerkrishnajinka <kris.jinka@samsung.com>2018-08-11 08:33:54 +0900
commit4c38ea083e71d3be81b57a2c865572837fb72379 (patch)
tree753f8cceb8b495f2232a0587dbfe9bf7e3fe64cb
parent5e8b7f573f0f7f08be242ee017ecf1243317f1b5 (diff)
Fix comparison issues in onap pap rest
Fix issues about incorrect comparison in pap rest modules indicated by analysis tools.Rework to fix review comments1 Issue-ID: POLICY-1016 Change-Id: I7a0ee45a721307fc3ba89ab65e807613a3df2542 Signed-off-by: krisjinka <kris.jinka@samsung.com>
-rw-r--r--ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/XACMLPapServlet.java1339
-rw-r--r--ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/ActionPolicy.java160
-rw-r--r--ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/ClosedLoopPolicy.java45
-rw-r--r--ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/ConfigPolicy.java38
-rw-r--r--ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/CreateBrmsParamPolicy.java131
-rw-r--r--ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/CreateBrmsRawPolicy.java106
-rw-r--r--ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/PolicyDBDao.java1812
-rw-r--r--ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/PushPolicyController.java63
-rw-r--r--ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/handler/APIRequestHandler.java22
-rw-r--r--ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/handler/DeleteHandler.java306
-rw-r--r--ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/handler/DictionaryHandlerImpl.java466
-rw-r--r--ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/service/MetricService.java37
-rw-r--r--ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/restAuth/CheckPDP.java3
13 files changed, 2461 insertions, 2067 deletions
diff --git a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/XACMLPapServlet.java b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/XACMLPapServlet.java
index 4406ad3da..680c4d579 100644
--- a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/XACMLPapServlet.java
+++ b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/XACMLPapServlet.java
@@ -7,9 +7,9 @@
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -41,6 +41,7 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
+import java.util.Objects;
import java.util.Properties;
import java.util.Scanner;
import java.util.Set;
@@ -108,14 +109,15 @@ import com.google.common.base.Splitter;
*/
@WebServlet(
description = "Implements the XACML PAP RESTful API.",
- urlPatterns = { "/" },
- loadOnStartup=1,
+ urlPatterns = {"/"},
+ loadOnStartup = 1,
initParams = {
- @WebInitParam(name = "XACML_PROPERTIES_NAME", value = "xacml.pap.properties", description = "The location of the properties file holding configuration information.")
+ @WebInitParam(name = "XACML_PROPERTIES_NAME", value = "xacml.pap.properties",
+ description = "The location of the properties file holding configuration information.")
})
public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeListener, Runnable {
private static final long serialVersionUID = 1L;
- private static final Logger LOGGER = FlexLogger.getLogger(XACMLPapServlet.class);
+ private static final Logger LOGGER = FlexLogger.getLogger(XACMLPapServlet.class);
// audit (transaction) LOGGER
private static final Logger auditLogger = FlexLogger.getLogger("auditLogger");
//Persistence Unit for JPA
@@ -210,32 +212,42 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
*/
setCommonProperties();
String papSiteName = XACMLProperties.getProperty(XACMLRestProperties.PAP_SITE_NAME);
- if(papSiteName == null){
- PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE,"XACMLPapServlet", " ERROR: Bad papSiteName property entry");
+ if (papSiteName == null) {
+ PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, "XACMLPapServlet",
+ " ERROR: Bad papSiteName property entry");
throw new PAPException("papSiteName is null");
}
String papNodeType = XACMLProperties.getProperty(XACMLRestProperties.PAP_NODE_TYPE);
- if(papNodeType == null){
- PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE,"XACMLPapServlet", " ERROR: Bad papNodeType property entry");
+ if (papNodeType == null) {
+ PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, "XACMLPapServlet",
+ " ERROR: Bad papNodeType property entry");
throw new PAPException("papNodeType is null");
}
//Integer will throw an exception of anything is missing or unrecognized
int papTransWait = Integer.parseInt(XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_TRANS_WAIT));
- int papTransTimeout = Integer.parseInt(XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_TRANS_TIMEOUT));
- int papAuditTimeout = Integer.parseInt(XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_AUDIT_TIMEOUT));
+ int papTransTimeout =
+ Integer.parseInt(XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_TRANS_TIMEOUT));
+ int papAuditTimeout =
+ Integer.parseInt(XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_AUDIT_TIMEOUT));
//Boolean will default to false if anything is missing or unrecognized
- boolean papAuditFlag = Boolean.parseBoolean(XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_RUN_AUDIT_FLAG));
- boolean papFileSystemAudit = Boolean.parseBoolean(XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_AUDIT_FLAG));
+ boolean papAuditFlag =
+ Boolean.parseBoolean(XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_RUN_AUDIT_FLAG));
+ boolean papFileSystemAudit =
+ Boolean.parseBoolean(XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_AUDIT_FLAG));
String papDependencyGroups = XACMLProperties.getProperty(XACMLRestProperties.PAP_DEPENDENCY_GROUPS);
- if(papDependencyGroups == null){
+ if (papDependencyGroups == null) {
throw new PAPException("papDependencyGroups is null");
}
setPAPDependencyGroups(papDependencyGroups);
//Integer will throw an exception of anything is missing or unrecognized
- int fpMonitorInterval = Integer.parseInt(XACMLProperties.getProperty(IntegrityMonitorProperties.FP_MONITOR_INTERVAL));
- int failedCounterThreshold = Integer.parseInt(XACMLProperties.getProperty(IntegrityMonitorProperties.FAILED_COUNTER_THRESHOLD));
- int testTransInterval = Integer.parseInt(XACMLProperties.getProperty(IntegrityMonitorProperties.TEST_TRANS_INTERVAL));
- int writeFpcInterval = Integer.parseInt(XACMLProperties.getProperty(IntegrityMonitorProperties.WRITE_FPC_INTERVAL));
+ int fpMonitorInterval =
+ Integer.parseInt(XACMLProperties.getProperty(IntegrityMonitorProperties.FP_MONITOR_INTERVAL));
+ int failedCounterThreshold =
+ Integer.parseInt(XACMLProperties.getProperty(IntegrityMonitorProperties.FAILED_COUNTER_THRESHOLD));
+ int testTransInterval =
+ Integer.parseInt(XACMLProperties.getProperty(IntegrityMonitorProperties.TEST_TRANS_INTERVAL));
+ int writeFpcInterval =
+ Integer.parseInt(XACMLProperties.getProperty(IntegrityMonitorProperties.WRITE_FPC_INTERVAL));
LOGGER.debug("\n\n\n**************************************"
+ "\n*************************************"
+ "\n"
@@ -268,15 +280,17 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
+ "properties = " + properties
+ "\n\n**************************************");
} catch (IOException e) {
- PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, e, "XACMLPapServlet", " Error loading properties with: "
- + "XACMLProperties.getProperties()");
+ PolicyLogger
+ .error(MessageCodes.ERROR_DATA_ISSUE, e, "XACMLPapServlet", " Error loading properties with: "
+ + "XACMLProperties.getProperties()");
throw new ServletException(e.getMessage(), e.getCause());
}
// Create an IntegrityMonitor
- if(properties.getProperty(PERSISTENCE_JDBC_PWD) != null ){
- properties.setProperty(PERSISTENCE_JDBC_PWD, CryptoUtils.decryptTxtNoExStr(properties.getProperty(PERSISTENCE_JDBC_PWD, "")));
+ if (properties.getProperty(PERSISTENCE_JDBC_PWD) != null) {
+ properties.setProperty(PERSISTENCE_JDBC_PWD,
+ CryptoUtils.decryptTxtNoExStr(properties.getProperty(PERSISTENCE_JDBC_PWD, "")));
}
- im = IntegrityMonitor.getInstance(papResourceName,properties);
+ im = IntegrityMonitor.getInstance(papResourceName, properties);
// Create an IntegrityAudit
ia = new IntegrityAudit(papResourceName, AUDIT_PAP_PERSISTENCE_UNIT, properties);
ia.startAuditThread();
@@ -288,7 +302,8 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
//Create the policyDBDao
setPolicyDBDao();
// Load our PAP engine, first create a factory
- ONAPPapEngineFactory factory = ONAPPapEngineFactory.newInstance(XACMLProperties.getProperty(XACMLProperties.PROP_PAP_PAPENGINEFACTORY));
+ ONAPPapEngineFactory factory = ONAPPapEngineFactory
+ .newInstance(XACMLProperties.getProperty(XACMLProperties.PROP_PAP_PAPENGINEFACTORY));
// The factory knows how to go about creating a PAP Engine
setPAPEngine((PAPPolicyEngine) factory.newEngine());
PolicyDBDaoTransaction addNewGroup = null;
@@ -311,7 +326,7 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
}
}
policyDBDao.setPapEngine((PAPPolicyEngine) XACMLPapServlet.papEngine);
- if (Boolean.parseBoolean(XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_RUN_AUDIT_FLAG))){
+ if (Boolean.parseBoolean(XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_RUN_AUDIT_FLAG))) {
/*
* Auditing the local File System groups to be in sync with the Database
*/
@@ -324,18 +339,19 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
//get the current filesystem group and update from the database if needed
StdPDPGroup group = (StdPDPGroup) papEngine.getDefaultGroup();
StdPDPGroup updatedGroup = policyDBDao.auditLocalFileSystem(group);
- if(updatedGroup!=null) {
+ if (updatedGroup != null) {
papEngine.updateGroup(updatedGroup);
- }
+ }
LOGGER.info("PapServlet: updated group is " + papEngine.getDefaultGroup().toString());
-
+
//release the transaction lock
auditTrans.close();
}
// Sanity check for URL.
if (XACMLPapServlet.papURL == null) {
- throw new PAPException("The property " + XACMLRestProperties.PROP_PAP_URL + " is not valid: " + XACMLPapServlet.papURL);
+ throw new PAPException("The property " + XACMLRestProperties.PROP_PAP_URL + " is not valid: " +
+ XACMLPapServlet.papURL);
}
// Configurable - have the PAP servlet initiate sending the latest PDP policy/pip configuration
// to all its known PDP nodes.
@@ -347,10 +363,12 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
} catch (FactoryException | PAPException e) {
PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "XACMLPapServlet", " Failed to create engine");
- throw new ServletException (XACMLErrorConstants.ERROR_SYSTEM_ERROR + "PAP not initialized; error: "+e);
+ throw new ServletException(XACMLErrorConstants.ERROR_SYSTEM_ERROR + "PAP not initialized; error: " + e);
} catch (Exception e) {
- PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "XACMLPapServlet", " Failed to create engine - unexpected error");
- throw new ServletException (XACMLErrorConstants.ERROR_SYSTEM_ERROR + "PAP not initialized; unexpected error: "+e);
+ PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "XACMLPapServlet",
+ " Failed to create engine - unexpected error");
+ throw new ServletException(
+ XACMLErrorConstants.ERROR_SYSTEM_ERROR + "PAP not initialized; unexpected error: " + e);
}
}
@@ -359,7 +377,7 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
initiateThread.start();
}
- private static void mapperWriteValue(ObjectMapper mapper, HttpServletResponse response, Object value) {
+ private static void mapperWriteValue(ObjectMapper mapper, HttpServletResponse response, Object value) {
try {
mapper.writeValue(response.getOutputStream(), value);
} catch (Exception e) {
@@ -377,14 +395,15 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
try {
policyDBDao = PolicyDBDao.getPolicyDBDaoInstance(getEmf());
} catch (Exception e) {
- throw new ServletException("Unable to Create Policy DBDao Instance",e);
+ throw new ServletException("Unable to Create Policy DBDao Instance", e);
}
}
private static void setEMF(Properties properties) throws ServletException {
emf = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT, properties);
if (emf == null) {
- PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " Error creating entity manager factory with persistence unit: "
+ PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE +
+ " Error creating entity manager factory with persistence unit: "
+ PERSISTENCE_UNIT);
throw new ServletException("Unable to create Entity Manager Factory");
}
@@ -399,24 +418,26 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
}
private static void setPAPDependencyGroups(String papDependencyGroups) throws PAPException {
- try{
+ try {
//Now we have flattened the array into a simple comma-separated list
papDependencyGroupsFlatArray = papDependencyGroups.split("[;,]");
//clean up the entries
- for (int i = 0 ; i < papDependencyGroupsFlatArray.length ; i ++){
+ for (int i = 0; i < papDependencyGroupsFlatArray.length; i++) {
papDependencyGroupsFlatArray[i] = papDependencyGroupsFlatArray[i].trim();
}
- try{
- if(XACMLProperties.getProperty(XACMLRestProperties.PAP_INTEGRITY_AUDIT_PERIOD_SECONDS) != null){
- papIntegrityAuditPeriodSeconds = Integer.parseInt(XACMLProperties.getProperty(XACMLRestProperties.PAP_INTEGRITY_AUDIT_PERIOD_SECONDS).trim());
+ try {
+ if (XACMLProperties.getProperty(XACMLRestProperties.PAP_INTEGRITY_AUDIT_PERIOD_SECONDS) != null) {
+ papIntegrityAuditPeriodSeconds = Integer.parseInt(
+ XACMLProperties.getProperty(XACMLRestProperties.PAP_INTEGRITY_AUDIT_PERIOD_SECONDS).trim());
}
- }catch(Exception e){
+ } catch (Exception e) {
String msg = "integrity_audit_period_seconds ";
LOGGER.error("\n\nERROR: " + msg + "Bad property entry: " + e.getMessage() + "\n");
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, "XACMLPapServlet", " ERROR: " + msg +"Bad property entry");
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, "XACMLPapServlet",
+ " ERROR: " + msg + "Bad property entry");
throw e;
}
- }catch(Exception e){
+ } catch (Exception e) {
PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, "XACMLPapServlet", " ERROR: Bad property entry");
throw new PAPException(e);
}
@@ -426,46 +447,52 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
setConfigHome();
setActionHome();
papDbDriver = XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_DB_DRIVER);
- if(papDbDriver == null){
- PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE,"XACMLPapServlet", " ERROR: Bad papDbDriver property entry");
+ if (papDbDriver == null) {
+ PolicyLogger
+ .error(MessageCodes.ERROR_DATA_ISSUE, "XACMLPapServlet", " ERROR: Bad papDbDriver property entry");
throw new PAPException("papDbDriver is null");
}
setPapDbDriver(papDbDriver);
papDbUrl = XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_DB_URL);
- if(papDbUrl == null){
- PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE,"XACMLPapServlet", " ERROR: Bad papDbUrl property entry");
+ if (papDbUrl == null) {
+ PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, "XACMLPapServlet", " ERROR: Bad papDbUrl property entry");
throw new PAPException("papDbUrl is null");
}
setPapDbUrl(papDbUrl);
papDbUser = XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_DB_USER);
- if(papDbUser == null){
- PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE,"XACMLPapServlet", " ERROR: Bad papDbUser property entry");
+ if (papDbUser == null) {
+ PolicyLogger
+ .error(MessageCodes.ERROR_DATA_ISSUE, "XACMLPapServlet", " ERROR: Bad papDbUser property entry");
throw new PAPException("papDbUser is null");
}
setPapDbUser(papDbUser);
- papDbPassword = CryptoUtils.decryptTxtNoExStr(XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_DB_PASSWORD, ""));
- if(papDbPassword == null){
- PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE,"XACMLPapServlet", " ERROR: Bad papDbPassword property entry");
+ papDbPassword = CryptoUtils
+ .decryptTxtNoExStr(XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_DB_PASSWORD, ""));
+ if (papDbPassword == null) {
+ PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, "XACMLPapServlet",
+ " ERROR: Bad papDbPassword property entry");
throw new PAPException("papDbPassword is null");
}
setPapDbPassword(papDbPassword);
papResourceName = XACMLProperties.getProperty(XACMLRestProperties.PAP_RESOURCE_NAME);
- if(papResourceName == null){
- PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE,"XACMLPapServlet", " ERROR: Bad papResourceName property entry");
+ if (papResourceName == null) {
+ PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, "XACMLPapServlet",
+ " ERROR: Bad papResourceName property entry");
throw new PAPException("papResourceName is null");
}
environment = XACMLProperties.getProperty("ENVIRONMENT", "DEVL");
//Micro Service Properties
- msOnapName=XACMLProperties.getProperty("xacml.policy.msOnapName");
+ msOnapName = XACMLProperties.getProperty("xacml.policy.msOnapName");
setMsOnapName(msOnapName);
- msPolicyName=XACMLProperties.getProperty("xacml.policy.msPolicyName");
+ msPolicyName = XACMLProperties.getProperty("xacml.policy.msPolicyName");
setMsPolicyName(msPolicyName);
// PDPId File location
XACMLPapServlet.pdpFile = XACMLProperties.getProperty(XACMLRestProperties.PROP_PDP_IDFILE);
if (XACMLPapServlet.pdpFile == null) {
PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " The PDP Id Authentication File Property is not valid: "
- + XACMLRestProperties.PROP_PDP_IDFILE);
- throw new PAPException("The PDP Id Authentication File Property :"+ XACMLRestProperties.PROP_PDP_IDFILE+ " is not Valid. ");
+ + XACMLRestProperties.PROP_PDP_IDFILE);
+ throw new PAPException("The PDP Id Authentication File Property :" + XACMLRestProperties.PROP_PDP_IDFILE +
+ " is not Valid. ");
}
}
@@ -481,7 +508,7 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
/**
* @see Servlet#destroy()
- *
+ * <p>
* Depending on how this servlet is run, we may or may not care about cleaning up the resources.
* For now we assume that we do care.
*/
@@ -514,16 +541,17 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
/**
* Called by:
- * - PDP nodes to register themselves with the PAP, and
- * - Admin Console to make changes in the PDP Groups.
+ * - PDP nodes to register themselves with the PAP, and
+ * - Admin Console to make changes in the PDP Groups.
*
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
- protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+ protected void doPost(HttpServletRequest request, HttpServletResponse response)
+ throws ServletException, IOException {
ONAPLoggingContext loggingContext = ONAPLoggingUtils.getLoggingContextForRequest(request, baseLoggingContext);
loggingContext.transactionStarted();
loggingContext.setServiceName("PAP.post");
- if ((loggingContext.getRequestID() == null) || (loggingContext.getRequestID() == "")){
+ if ((loggingContext.getRequestID() == null) || (Objects.equals(loggingContext.getRequestID(), ""))) {
UUID requestID = UUID.randomUUID();
loggingContext.setRequestID(requestID.toString());
PolicyLogger.info("requestID not provided in call to XACMLPapSrvlet (doPost) so we generated one");
@@ -536,18 +564,18 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
im.startTransaction();
loggingContext.metricEnded();
PolicyLogger.metrics("XACMLPapServlet doPost im startTransaction");
- } catch (AdministrativeStateException ae){
+ } catch (AdministrativeStateException ae) {
String message = "POST interface called for PAP " + papResourceName + " but it has an Administrative"
+ " state of " + im.getStateManager().getAdminState()
- + "\n Exception Message: " + PolicyUtils.CATCH_EXCEPTION;
+ + "\n Exception Message: " + PolicyUtils.CATCH_EXCEPTION;
LOGGER.error(MessageCodes.ERROR_SYSTEM_ERROR + " " + message, ae);
loggingContext.metricEnded();
PolicyLogger.metrics("XACMLPapServlet doPost im startTransaction");
loggingContext.transactionEnded();
PolicyLogger.audit("Transaction Failed - See Error.log");
- setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
+ setResponseError(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
return;
- }catch (StandbyStatusException se) {
+ } catch (StandbyStatusException se) {
String message = "POST interface called for PAP " + papResourceName + " but it has a Standby Status"
+ " of " + im.getStateManager().getStandbyStatus()
+ "\n Exception Message: " + se.getMessage();
@@ -556,7 +584,7 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
PolicyLogger.metrics("XACMLPapServlet doPost im startTransaction");
loggingContext.transactionEnded();
PolicyLogger.audit("Transaction Failed - See Error.log");
- setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
+ setResponseError(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
return;
} catch (IntegrityMonitorException e) {
String message = "POST interface called for PAP " + papResourceName + " but an exception occurred"
@@ -566,7 +594,7 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
PolicyLogger.metrics("XACMLPapServlet doPost im startTransaction");
loggingContext.transactionEnded();
PolicyLogger.audit("Transaction Failed - See Error.log");
- setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
+ setResponseError(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
return;
}
try {
@@ -579,16 +607,16 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
request.getInputStream();
String groupId = request.getParameter("groupId");
String apiflag = request.getParameter("apiflag");
- if(groupId != null) {
+ if (groupId != null) {
// Is this from the Admin Console or API?
- if(apiflag!=null && apiflag.equalsIgnoreCase("api")) {
+ if (apiflag != null && apiflag.equalsIgnoreCase("api")) {
// this is from the API so we need to check the client credentials before processing the request
- if(!authorizeRequest(request)){
+ if (!authorizeRequest(request)) {
String message = "PEP not Authorized for making this Request!!";
PolicyLogger.error(MessageCodes.ERROR_PERMISSIONS + " " + message);
loggingContext.transactionEnded();
PolicyLogger.audit("Transaction Failed - See Error.log");
- setResponseError(response,HttpServletResponse.SC_FORBIDDEN, message);
+ setResponseError(response, HttpServletResponse.SC_FORBIDDEN, message);
im.endTransaction();
return;
}
@@ -614,11 +642,13 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
if (pdp == null) {
LOGGER.info("Unknown PDP: " + id);
// Check PDP ID
- if(CheckPDP.validateID(id)){
+ if (CheckPDP.validateID(id)) {
pdpTransaction = policyDBDao.getNewTransaction();
try {
- pdpTransaction.addPdpToGroup(id, XACMLPapServlet.papEngine.getDefaultGroup().getId(), id, "Registered on first startup", Integer.parseInt(jmxport), "PDP autoregister");
- XACMLPapServlet.papEngine.newPDP(id, XACMLPapServlet.papEngine.getDefaultGroup(), id, "Registered on first startup", Integer.parseInt(jmxport));
+ pdpTransaction.addPdpToGroup(id, XACMLPapServlet.papEngine.getDefaultGroup().getId(), id,
+ "Registered on first startup", Integer.parseInt(jmxport), "PDP autoregister");
+ XACMLPapServlet.papEngine.newPDP(id, XACMLPapServlet.papEngine.getDefaultGroup(), id,
+ "Registered on first startup", Integer.parseInt(jmxport));
} catch (NullPointerException | PAPException | IllegalArgumentException | IllegalStateException | PersistenceException | PolicyDBException e) {
pdpTransaction.rollbackTransaction();
String message = "Failed to create new PDP for id: " + id;
@@ -630,13 +660,13 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
return;
}
// get the PDP we just created
- try{
+ try {
pdp = XACMLPapServlet.papEngine.getPDP(id);
- }catch(PAPException e){
+ } catch (PAPException e) {
LOGGER.error(e);
}
if (pdp == null) {
- if(pdpTransaction != null){
+ if (pdpTransaction != null) {
pdpTransaction.rollbackTransaction();
}
String message = "Failed to create new PDP for id: " + id;
@@ -648,42 +678,47 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
return;
}
} else {
- String message = "PDP is Unauthorized to Connect to PAP: "+ id;
+ String message = "PDP is Unauthorized to Connect to PAP: " + id;
loggingContext.transactionEnded();
PolicyLogger.error(MessageCodes.ERROR_PERMISSIONS + " " + message);
- setResponseError(response, HttpServletResponse.SC_UNAUTHORIZED, "PDP not Authorized to connect to this PAP. Please contact the PAP Admin for registration.");
+ setResponseError(response, HttpServletResponse.SC_UNAUTHORIZED,
+ "PDP not Authorized to connect to this PAP. Please contact the PAP Admin for registration" +
+ ".");
PolicyLogger.audit("Transaction Failed - See Error.log");
im.endTransaction();
return;
}
- try{
+ try {
loggingContext.metricStarted();
pdpTransaction.commitTransaction();
loggingContext.metricEnded();
PolicyLogger.metrics("XACMLPapServlet doPost commitTransaction");
- } catch(Exception e){
- PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "XACMLPapServlet", "Could not commit transaction to put pdp in the database");
+ } catch (Exception e) {
+ PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "XACMLPapServlet",
+ "Could not commit transaction to put pdp in the database");
}
}
- if (jmxport != null && jmxport != ""){
- try{
+ if (jmxport != null && !Objects.equals(jmxport, "")) {
+ try {
((StdPDP) pdp).setJmxPort(Integer.valueOf(jmxport));
- }catch(NumberFormatException e){
+ } catch (NumberFormatException e) {
LOGGER.error(e);
}
}
// Get the PDP's Group
- OnapPDPGroup group =null;
- try{
- group= XACMLPapServlet.papEngine.getPDPGroup((OnapPDP) pdp);
- }catch(PAPException e){
+ OnapPDPGroup group = null;
+ try {
+ group = XACMLPapServlet.papEngine.getPDPGroup((OnapPDP) pdp);
+ } catch (PAPException e) {
LOGGER.error(e);
}
if (group == null) {
- PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW + " PDP not associated with any group, even the default");
+ PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW +
+ " PDP not associated with any group, even the default");
loggingContext.transactionEnded();
PolicyLogger.audit("Transaction Failed - See Error.log");
- setResponseError(response, HttpServletResponse.SC_UNAUTHORIZED, "PDP not associated with any group, even the default");
+ setResponseError(response, HttpServletResponse.SC_UNAUTHORIZED,
+ "PDP not associated with any group, even the default");
im.endTransaction();
return;
}
@@ -693,9 +728,9 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
Properties pipconfig = group.getPipConfigProperties();
// Get the current policy/pip configuration that the PDP has
Properties pdpProperties = new Properties();
- try{
+ try {
pdpProperties.load(request.getInputStream());
- }catch(IOException e){
+ } catch (IOException e) {
LOGGER.error(e);
}
LOGGER.info("PDP Current Properties: " + pdpProperties.toString());
@@ -712,33 +747,33 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
// retrieve them.
this.populatePolicyURL(request.getRequestURL(), policies);
// Copy the properties to the output stream
- try{
+ try {
policies.store(response.getOutputStream(), "");
- }catch(IOException e){
+ } catch (IOException e) {
LOGGER.error(e);
}
}
if (pipconfig != null) {
// Copy the properties to the output stream
- try{
+ try {
pipconfig.store(response.getOutputStream(), "");
- }catch(IOException e){
+ } catch (IOException e) {
LOGGER.error(e);
}
}
// We are good - and we are sending them information
response.setStatus(HttpServletResponse.SC_OK);
- try{
+ try {
setPDPSummaryStatus(pdp, PDPStatus.Status.OUT_OF_SYNCH);
- }catch(PAPException e){
+ } catch (PAPException e) {
LOGGER.error(e);
}
} else {
// Tell them they are good
response.setStatus(HttpServletResponse.SC_NO_CONTENT);
- try{
+ try {
setPDPSummaryStatus(pdp, PDPStatus.Status.UP_TO_DATE);
- }catch(PAPException e){
+ } catch (PAPException e) {
LOGGER.error(e);
}
}
@@ -751,7 +786,7 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
auditLogger.info("Success");
PolicyLogger.audit("Transaction Ended Successfully");
} catch (PAPException | IOException | NumberFormatException e) {
- if(pdpTransaction != null){
+ if (pdpTransaction != null) {
pdpTransaction.rollbackTransaction();
}
LOGGER.debug(XACMLErrorConstants.ERROR_PROCESS_FLOW + "POST exception: " + e, e);
@@ -767,233 +802,237 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
im.endTransaction();
}
- private void setResponseError(HttpServletResponse response,int responseCode, String message) {
+ private void setResponseError(HttpServletResponse response, int responseCode, String message) {
try {
- if(message != null && !message.isEmpty()){
- response.sendError(responseCode, message);
+ if (message != null && !message.isEmpty()) {
+ response.sendError(responseCode, message);
}
} catch (IOException e) {
LOGGER.error("Error setting Error response Header ", e);
}
- return;
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
- protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+ protected void doGet(HttpServletRequest request, HttpServletResponse response)
+ throws ServletException, IOException {
ONAPLoggingContext loggingContext = ONAPLoggingUtils.getLoggingContextForRequest(request, baseLoggingContext);
loggingContext.transactionStarted();
loggingContext.setServiceName("PAP.get");
- if ((loggingContext.getRequestID() == null) || (loggingContext.getRequestID() == "")){
+ if ((loggingContext.getRequestID() == null) || (Objects.equals(loggingContext.getRequestID(), ""))) {
UUID requestID = UUID.randomUUID();
loggingContext.setRequestID(requestID.toString());
PolicyLogger.info("requestID not provided in call to XACMLPapSrvlet (doGet) so we generated one");
} else {
PolicyLogger.info("requestID was provided in call to XACMLPapSrvlet (doGet)");
}
- loggingContext.metricStarted();
- XACMLRest.dumpRequest(request);
- loggingContext.metricEnded();
- PolicyLogger.metrics("XACMLPapServlet doGet dumpRequest");
- String pathInfo = request.getRequestURI();
- LOGGER.info("path info: " + pathInfo);
- if (pathInfo != null){
- //DO NOT do a im.startTransaction for the test request
- if (pathInfo.equals("/pap/test")) {
- try {
- testService(loggingContext, response);
- } catch (IOException e) {
- LOGGER.debug(e);
- }
- return;
+ loggingContext.metricStarted();
+ XACMLRest.dumpRequest(request);
+ loggingContext.metricEnded();
+ PolicyLogger.metrics("XACMLPapServlet doGet dumpRequest");
+ String pathInfo = request.getRequestURI();
+ LOGGER.info("path info: " + pathInfo);
+ if (pathInfo != null) {
+ //DO NOT do a im.startTransaction for the test request
+ if (pathInfo.equals("/pap/test")) {
+ try {
+ testService(loggingContext, response);
+ } catch (IOException e) {
+ LOGGER.debug(e);
}
- }
- //This im.startTransaction() covers all other Get transactions
- try {
- loggingContext.metricStarted();
- im.startTransaction();
- loggingContext.metricEnded();
- PolicyLogger.metrics("XACMLPapServlet doGet im startTransaction");
- } catch (AdministrativeStateException ae){
- String message = "GET interface called for PAP " + papResourceName + " but it has an Administrative"
- + " state of " + im.getStateManager().getAdminState()
- + "\n Exception Message: " + ae.getMessage();
- LOGGER.info(message, ae);
- PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR + " " + message);
- loggingContext.transactionEnded();
- PolicyLogger.audit("Transaction Failed - See Error.log");
- setResponseError(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
- return;
- }catch (StandbyStatusException se) {
- String message = "GET interface called for PAP " + papResourceName + " but it has a Standby Status"
- + " of " + im.getStateManager().getStandbyStatus()
- + "\n Exception Message: " + se.getMessage();
- LOGGER.info(message, se);
- PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR + " " + message);
- loggingContext.transactionEnded();
- PolicyLogger.audit("Transaction Failed - See Error.log");
- setResponseError(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
- return;
- } catch (IntegrityMonitorException e) {
- String message = "GET interface called for PAP " + papResourceName + " but an exception occurred"
- + "\n Exception Message: " + e.getMessage();
- LOGGER.info(message, e);
- PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR + " " + message);
- loggingContext.transactionEnded();
- PolicyLogger.audit("Transaction Failed - See Error.log");
- setResponseError(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
return;
}
- // Request from the API to get the gitPath
- String apiflag = request.getParameter("apiflag");
- if (apiflag!=null) {
- if(authorizeRequest(request)){
- APIRequestHandler apiRequestHandler = new APIRequestHandler();
- try{
- loggingContext.metricStarted();
- apiRequestHandler.doGet(request,response, apiflag);
- loggingContext.metricEnded();
- PolicyLogger.metrics("XACMLPapServlet doGet apiRequestHandler doGet");
- }catch(IOException e){
- LOGGER.error(e);
- }
- loggingContext.transactionEnded();
- PolicyLogger.audit("Transaction Ended Successfully");
- im.endTransaction();
- return;
- } else {
- String message = "PEP not Authorized for making this Request!! \n Contact Administrator for this Scope. ";
- PolicyLogger.error(MessageCodes.ERROR_PERMISSIONS + " " + message);
- loggingContext.transactionEnded();
- PolicyLogger.audit("Transaction Failed - See Error.log");
- setResponseError(response, HttpServletResponse.SC_FORBIDDEN, message);
- im.endTransaction();
- return;
- }
- }
- // Is this from the Admin Console?
- String groupId = request.getParameter("groupId");
- if (groupId != null) {
- // this is from the Admin Console, so handle separately
- try{
+ }
+ //This im.startTransaction() covers all other Get transactions
+ try {
+ loggingContext.metricStarted();
+ im.startTransaction();
+ loggingContext.metricEnded();
+ PolicyLogger.metrics("XACMLPapServlet doGet im startTransaction");
+ } catch (AdministrativeStateException ae) {
+ String message = "GET interface called for PAP " + papResourceName + " but it has an Administrative"
+ + " state of " + im.getStateManager().getAdminState()
+ + "\n Exception Message: " + ae.getMessage();
+ LOGGER.info(message, ae);
+ PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR + " " + message);
+ loggingContext.transactionEnded();
+ PolicyLogger.audit("Transaction Failed - See Error.log");
+ setResponseError(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
+ return;
+ } catch (StandbyStatusException se) {
+ String message = "GET interface called for PAP " + papResourceName + " but it has a Standby Status"
+ + " of " + im.getStateManager().getStandbyStatus()
+ + "\n Exception Message: " + se.getMessage();
+ LOGGER.info(message, se);
+ PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR + " " + message);
+ loggingContext.transactionEnded();
+ PolicyLogger.audit("Transaction Failed - See Error.log");
+ setResponseError(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
+ return;
+ } catch (IntegrityMonitorException e) {
+ String message = "GET interface called for PAP " + papResourceName + " but an exception occurred"
+ + "\n Exception Message: " + e.getMessage();
+ LOGGER.info(message, e);
+ PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR + " " + message);
+ loggingContext.transactionEnded();
+ PolicyLogger.audit("Transaction Failed - See Error.log");
+ setResponseError(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
+ return;
+ }
+ // Request from the API to get the gitPath
+ String apiflag = request.getParameter("apiflag");
+ if (apiflag != null) {
+ if (authorizeRequest(request)) {
+ APIRequestHandler apiRequestHandler = new APIRequestHandler();
+ try {
loggingContext.metricStarted();
- doACGet(request, response, groupId, loggingContext);
+ apiRequestHandler.doGet(request, response, apiflag);
loggingContext.metricEnded();
- PolicyLogger.metrics("XACMLPapServlet doGet doACGet");
- } catch(IOException e){
+ PolicyLogger.metrics("XACMLPapServlet doGet apiRequestHandler doGet");
+ } catch (IOException e) {
LOGGER.error(e);
}
loggingContext.transactionEnded();
PolicyLogger.audit("Transaction Ended Successfully");
im.endTransaction();
return;
- }
- // Get the PDP's ID
- String id = this.getPDPID(request);
- LOGGER.info("doGet from: " + id);
- // Get the PDP Object
- OnapPDP pdp = null;
- try{
- pdp = XACMLPapServlet.papEngine.getPDP(id);
- }catch(PAPException e){
- LOGGER.error(e);
- }
- // Is it known?
- if (pdp == null) {
- // Check if request came from localhost
- if (request.getRemoteHost().equals("localhost") ||
- request.getRemoteHost().equals(request.getLocalAddr())) {
- // Return status information - basically all the groups
- loggingContext.setServiceName("PAP.getGroups");
- Set<OnapPDPGroup> groups = null;
- try {
- groups = papEngine.getOnapPDPGroups();
- } catch(PAPException e) {
- LOGGER.debug(e);
- PolicyLogger.error(MessageCodes.ERROR_UNKNOWN, e, "XACMLPapServlet", " GET exception");
- loggingContext.transactionEnded();
- PolicyLogger.audit("Transaction Failed - See Error.log");
- setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.getMessage());
- im.endTransaction();
- return;
- }
- // convert response object to JSON and include in the response
- mapperWriteValue(new ObjectMapper(), response, groups);
- response.setHeader("content-type", "application/json");
- response.setStatus(HttpServletResponse.SC_OK);
- loggingContext.transactionEnded();
- PolicyLogger.audit("Transaction Ended Successfully");
- im.endTransaction();
- return;
- }
- String message = "Unknown PDP: " + id + " from " + request.getRemoteHost() + " us: " + request.getLocalAddr();
+ } else {
+ String message =
+ "PEP not Authorized for making this Request!! \n Contact Administrator for this Scope. ";
PolicyLogger.error(MessageCodes.ERROR_PERMISSIONS + " " + message);
loggingContext.transactionEnded();
PolicyLogger.audit("Transaction Failed - See Error.log");
- setResponseError(response, HttpServletResponse.SC_UNAUTHORIZED, message);
+ setResponseError(response, HttpServletResponse.SC_FORBIDDEN, message);
im.endTransaction();
return;
}
- loggingContext.setServiceName("PAP.getPolicy");
- // Get the PDP's Group
- OnapPDPGroup group = null;
+ }
+ // Is this from the Admin Console?
+ String groupId = request.getParameter("groupId");
+ if (groupId != null) {
+ // this is from the Admin Console, so handle separately
try {
- group = XACMLPapServlet.papEngine.getPDPGroup((OnapPDP) pdp);
- } catch (PAPException e) {
- LOGGER.error(e);
- }
- if (group == null) {
- String message = "No group associated with pdp " + pdp.getId();
- LOGGER.warn(XACMLErrorConstants.ERROR_PERMISSIONS + message);
- loggingContext.transactionEnded();
- PolicyLogger.audit("Transaction Failed - See Error.log");
- setResponseError(response, HttpServletResponse.SC_UNAUTHORIZED, message);
- im.endTransaction();
- return;
- }
- // Which policy do they want?
- String policyId = request.getParameter("id");
- if (policyId == null) {
- String message = "Did not specify an id for the policy";
- LOGGER.warn(XACMLErrorConstants.ERROR_DATA_ISSUE + message);
- loggingContext.transactionEnded();
- PolicyLogger.audit("Transaction Failed - See Error.log");
- setResponseError(response,HttpServletResponse.SC_NOT_FOUND, message);
- im.endTransaction();
- return;
- }
- PDPPolicy policy = group.getPolicy(policyId);
- if (policy == null) {
- String message = "Unknown policy: " + policyId;
- LOGGER.warn(XACMLErrorConstants.ERROR_DATA_ISSUE + message);
- loggingContext.transactionEnded();
- PolicyLogger.audit("Transaction Failed - See Error.log");
- setResponseError(response,HttpServletResponse.SC_NOT_FOUND, message);
- im.endTransaction();
- return;
- }
- try{
- LOGGER.warn("PolicyDebugging: Policy Validity: " + policy.isValid() + "\n "
- + "Policy Name : " + policy.getName() + "\n Policy URI: " + policy.getLocation().toString());
- } catch (PAPException| IOException e){
+ loggingContext.metricStarted();
+ doACGet(request, response, groupId, loggingContext);
+ loggingContext.metricEnded();
+ PolicyLogger.metrics("XACMLPapServlet doGet doACGet");
+ } catch (IOException e) {
LOGGER.error(e);
}
- try (InputStream is = new FileInputStream(((StdPDPGroup)group).getDirectory().toString()+File.separator+policyId); OutputStream os = response.getOutputStream()) {
- // Send the policy back
- IOUtils.copy(is, os);
+ loggingContext.transactionEnded();
+ PolicyLogger.audit("Transaction Ended Successfully");
+ im.endTransaction();
+ return;
+ }
+ // Get the PDP's ID
+ String id = this.getPDPID(request);
+ LOGGER.info("doGet from: " + id);
+ // Get the PDP Object
+ OnapPDP pdp = null;
+ try {
+ pdp = XACMLPapServlet.papEngine.getPDP(id);
+ } catch (PAPException e) {
+ LOGGER.error(e);
+ }
+ // Is it known?
+ if (pdp == null) {
+ // Check if request came from localhost
+ if (request.getRemoteHost().equals("localhost") ||
+ request.getRemoteHost().equals(request.getLocalAddr())) {
+ // Return status information - basically all the groups
+ loggingContext.setServiceName("PAP.getGroups");
+ Set<OnapPDPGroup> groups = null;
+ try {
+ groups = papEngine.getOnapPDPGroups();
+ } catch (PAPException e) {
+ LOGGER.debug(e);
+ PolicyLogger.error(MessageCodes.ERROR_UNKNOWN, e, "XACMLPapServlet", " GET exception");
+ loggingContext.transactionEnded();
+ PolicyLogger.audit("Transaction Failed - See Error.log");
+ setResponseError(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.getMessage());
+ im.endTransaction();
+ return;
+ }
+ // convert response object to JSON and include in the response
+ mapperWriteValue(new ObjectMapper(), response, groups);
+ response.setHeader("content-type", "application/json");
response.setStatus(HttpServletResponse.SC_OK);
loggingContext.transactionEnded();
- auditLogger.info("Success");
PolicyLogger.audit("Transaction Ended Successfully");
- } catch (IOException e) {
- String message = "Failed to open policy id " + policyId;
- LOGGER.debug(e);
- PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " " + message);
- loggingContext.transactionEnded();
- PolicyLogger.audit("Transaction Failed - See Error.log");
- setResponseError(response,HttpServletResponse.SC_NOT_FOUND, message);
+ im.endTransaction();
+ return;
}
+ String message =
+ "Unknown PDP: " + id + " from " + request.getRemoteHost() + " us: " + request.getLocalAddr();
+ PolicyLogger.error(MessageCodes.ERROR_PERMISSIONS + " " + message);
+ loggingContext.transactionEnded();
+ PolicyLogger.audit("Transaction Failed - See Error.log");
+ setResponseError(response, HttpServletResponse.SC_UNAUTHORIZED, message);
+ im.endTransaction();
+ return;
+ }
+ loggingContext.setServiceName("PAP.getPolicy");
+ // Get the PDP's Group
+ OnapPDPGroup group = null;
+ try {
+ group = XACMLPapServlet.papEngine.getPDPGroup((OnapPDP) pdp);
+ } catch (PAPException e) {
+ LOGGER.error(e);
+ }
+ if (group == null) {
+ String message = "No group associated with pdp " + pdp.getId();
+ LOGGER.warn(XACMLErrorConstants.ERROR_PERMISSIONS + message);
+ loggingContext.transactionEnded();
+ PolicyLogger.audit("Transaction Failed - See Error.log");
+ setResponseError(response, HttpServletResponse.SC_UNAUTHORIZED, message);
+ im.endTransaction();
+ return;
+ }
+ // Which policy do they want?
+ String policyId = request.getParameter("id");
+ if (policyId == null) {
+ String message = "Did not specify an id for the policy";
+ LOGGER.warn(XACMLErrorConstants.ERROR_DATA_ISSUE + message);
+ loggingContext.transactionEnded();
+ PolicyLogger.audit("Transaction Failed - See Error.log");
+ setResponseError(response, HttpServletResponse.SC_NOT_FOUND, message);
+ im.endTransaction();
+ return;
+ }
+ PDPPolicy policy = group.getPolicy(policyId);
+ if (policy == null) {
+ String message = "Unknown policy: " + policyId;
+ LOGGER.warn(XACMLErrorConstants.ERROR_DATA_ISSUE + message);
+ loggingContext.transactionEnded();
+ PolicyLogger.audit("Transaction Failed - See Error.log");
+ setResponseError(response, HttpServletResponse.SC_NOT_FOUND, message);
+ im.endTransaction();
+ return;
+ }
+ try {
+ LOGGER.warn("PolicyDebugging: Policy Validity: " + policy.isValid() + "\n "
+ + "Policy Name : " + policy.getName() + "\n Policy URI: " + policy.getLocation().toString());
+ } catch (PAPException | IOException e) {
+ LOGGER.error(e);
+ }
+ try (InputStream is = new FileInputStream(
+ ((StdPDPGroup) group).getDirectory().toString() + File.separator + policyId);
+ OutputStream os = response.getOutputStream()) {
+ // Send the policy back
+ IOUtils.copy(is, os);
+ response.setStatus(HttpServletResponse.SC_OK);
+ loggingContext.transactionEnded();
+ auditLogger.info("Success");
+ PolicyLogger.audit("Transaction Ended Successfully");
+ } catch (IOException e) {
+ String message = "Failed to open policy id " + policyId;
+ LOGGER.debug(e);
+ PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " " + message);
+ loggingContext.transactionEnded();
+ PolicyLogger.audit("Transaction Failed - See Error.log");
+ setResponseError(response, HttpServletResponse.SC_NOT_FOUND, message);
+ }
loggingContext.transactionEnded();
PolicyLogger.audit("Transaction Ended");
im.endTransaction();
@@ -1002,11 +1041,12 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
/**
* @see HttpServlet#doPut(HttpServletRequest request, HttpServletResponse response)
*/
- protected void doPut(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+ protected void doPut(HttpServletRequest request, HttpServletResponse response)
+ throws ServletException, IOException {
ONAPLoggingContext loggingContext = ONAPLoggingUtils.getLoggingContextForRequest(request, baseLoggingContext);
loggingContext.transactionStarted();
loggingContext.setServiceName("PAP.put");
- if ((loggingContext.getRequestID() == null) || (loggingContext.getRequestID() == "")){
+ if ((loggingContext.getRequestID() == null) || (Objects.equals(loggingContext.getRequestID(), ""))) {
UUID requestID = UUID.randomUUID();
loggingContext.setRequestID(requestID.toString());
PolicyLogger.info("requestID not provided in call to XACMLPapSrvlet (doPut) so we generated one");
@@ -1022,10 +1062,10 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
String message = "PUT interface called for PAP " + papResourceName;
if (e instanceof AdministrativeStateException) {
message += " but it has an Administrative state of "
- + im.getStateManager().getAdminState();
+ + im.getStateManager().getAdminState();
} else if (e instanceof StandbyStatusException) {
message += " but it has a Standby Status of "
- + im.getStateManager().getStandbyStatus();
+ + im.getStateManager().getStandbyStatus();
} else {
message += " but an exception occurred";
@@ -1036,7 +1076,7 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR + " " + message);
loggingContext.transactionEnded();
PolicyLogger.audit("Transaction Failed - See Error.log");
- setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
+ setResponseError(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
return;
}
@@ -1048,13 +1088,13 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
String apiflag = request.getParameter("apiflag");
//This would occur if a PolicyDBDao notification was received
String policyDBDaoRequestUrl = request.getParameter("policydbdaourl");
- if(policyDBDaoRequestUrl != null){
- LOGGER.info("XACMLPapServlet: PolicyDBDao Notification received." );
+ if (policyDBDaoRequestUrl != null) {
+ LOGGER.info("XACMLPapServlet: PolicyDBDao Notification received.");
String policyDBDaoRequestEntityId = request.getParameter("entityid");
String policyDBDaoRequestEntityType = request.getParameter("entitytype");
String policyDBDaoRequestExtraData = request.getParameter("extradata");
- if(policyDBDaoRequestEntityId == null || policyDBDaoRequestEntityType == null){
- setResponseError(response,400, "entityid or entitytype not supplied");
+ if (policyDBDaoRequestEntityId == null || policyDBDaoRequestEntityType == null) {
+ setResponseError(response, 400, "entityid or entitytype not supplied");
loggingContext.transactionEnded();
PolicyLogger.audit("Transaction Ended Successfully");
im.endTransaction();
@@ -1062,7 +1102,8 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
}
loggingContext.metricStarted();
LOGGER.info("XACMLPapServlet: Calling PolicyDBDao to handlIncomingHttpNotification");
- policyDBDao.handleIncomingHttpNotification(policyDBDaoRequestUrl,policyDBDaoRequestEntityId,policyDBDaoRequestEntityType,policyDBDaoRequestExtraData,this);
+ policyDBDao.handleIncomingHttpNotification(policyDBDaoRequestUrl, policyDBDaoRequestEntityId,
+ policyDBDaoRequestEntityType, policyDBDaoRequestExtraData, this);
loggingContext.metricEnded();
PolicyLogger.metrics("XACMLPapServlet doPut handle incoming http notification");
response.setStatus(200);
@@ -1076,24 +1117,25 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
*/
String importService = request.getParameter("importService");
if (importService != null) {
- if(authorizeRequest(request)){
+ if (authorizeRequest(request)) {
APIRequestHandler apiRequestHandler = new APIRequestHandler();
- try{
+ try {
loggingContext.metricStarted();
apiRequestHandler.doPut(request, response, importService);
loggingContext.metricEnded();
PolicyLogger.metrics("XACMLPapServlet doPut apiRequestHandler doPut");
- }catch(IOException e){
+ } catch (IOException e) {
LOGGER.error(e);
}
im.endTransaction();
return;
} else {
- String message = "PEP not Authorized for making this Request!! \n Contact Administrator for this Scope. ";
- LOGGER.error(XACMLErrorConstants.ERROR_PERMISSIONS + message );
+ String message =
+ "PEP not Authorized for making this Request!! \n Contact Administrator for this Scope. ";
+ LOGGER.error(XACMLErrorConstants.ERROR_PERMISSIONS + message);
loggingContext.transactionEnded();
PolicyLogger.audit("Transaction Failed - See Error.log");
- setResponseError(response,HttpServletResponse.SC_FORBIDDEN, message);
+ setResponseError(response, HttpServletResponse.SC_FORBIDDEN, message);
return;
}
}
@@ -1104,7 +1146,7 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
if (acURLString != null) {
loggingContext.setServiceName("AC:PAP.register");
// remember this Admin Console for future updates
- if ( ! adminConsoleURLStringList.contains(acURLString)) {
+ if (!adminConsoleURLStringList.contains(acURLString)) {
adminConsoleURLStringList.add(acURLString);
}
if (LOGGER.isDebugEnabled()) {
@@ -1124,19 +1166,20 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
*/
String groupId = request.getParameter("groupId");
if (groupId != null) {
- if(apiflag!=null){
- if(!authorizeRequest(request)){
- String message = "PEP not Authorized for making this Request!! \n Contact Administrator for this Scope. ";
+ if (apiflag != null) {
+ if (!authorizeRequest(request)) {
+ String message =
+ "PEP not Authorized for making this Request!! \n Contact Administrator for this Scope. ";
PolicyLogger.error(MessageCodes.ERROR_PERMISSIONS + " " + message);
loggingContext.transactionEnded();
PolicyLogger.audit("Transaction Failed - See Error.log");
- setResponseError(response,HttpServletResponse.SC_FORBIDDEN, message);
+ setResponseError(response, HttpServletResponse.SC_FORBIDDEN, message);
return;
}
- if(apiflag.equalsIgnoreCase("addPolicyToGroup")){
- try{
+ if (apiflag.equalsIgnoreCase("addPolicyToGroup")) {
+ try {
updateGroupsFromAPI(request, response, groupId, loggingContext);
- }catch(IOException e){
+ } catch (IOException e) {
LOGGER.error(e);
}
loggingContext.transactionEnded();
@@ -1162,10 +1205,10 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
//
// Request is for policy validation and creation
//
- if (apiflag != null && apiflag.equalsIgnoreCase("admin")){
+ if (apiflag != null && apiflag.equalsIgnoreCase("admin")) {
// this request is from the Admin Console
SavePolicyHandler savePolicyHandler = SavePolicyHandler.getInstance();
- try{
+ try {
loggingContext.metricStarted();
savePolicyHandler.doPolicyAPIPut(request, response);
loggingContext.metricEnded();
@@ -1179,9 +1222,9 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
return;
} else if (apiflag != null && "api".equalsIgnoreCase(apiflag)) {
// this request is from the Policy Creation API
- if(authorizeRequest(request)){
+ if (authorizeRequest(request)) {
APIRequestHandler apiRequestHandler = new APIRequestHandler();
- try{
+ try {
loggingContext.metricStarted();
apiRequestHandler.doPut(request, response, request.getHeader("ClientScope"));
loggingContext.metricEnded();
@@ -1198,7 +1241,7 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
PolicyLogger.error(MessageCodes.ERROR_PERMISSIONS + " " + message);
loggingContext.transactionEnded();
PolicyLogger.audit("Transaction Failed - See Error.log");
- setResponseError(response,HttpServletResponse.SC_FORBIDDEN, message);
+ setResponseError(response, HttpServletResponse.SC_FORBIDDEN, message);
im.endTransaction();
return;
}
@@ -1208,7 +1251,7 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
LOGGER.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "Request does not have groupId or apiflag");
loggingContext.transactionEnded();
PolicyLogger.audit("Transaction Failed - See Error.log");
- setResponseError(response,HttpServletResponse.SC_BAD_REQUEST, "Request does not have groupId or apiflag");
+ setResponseError(response, HttpServletResponse.SC_BAD_REQUEST, "Request does not have groupId or apiflag");
loggingContext.transactionEnded();
PolicyLogger.audit("Transaction Failed - See error.log");
im.endTransaction();
@@ -1217,11 +1260,12 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
/**
* @see HttpServlet#doDelete(HttpServletRequest request, HttpServletResponse response)
*/
- protected void doDelete(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+ protected void doDelete(HttpServletRequest request, HttpServletResponse response)
+ throws ServletException, IOException {
ONAPLoggingContext loggingContext = ONAPLoggingUtils.getLoggingContextForRequest(request, baseLoggingContext);
loggingContext.transactionStarted();
loggingContext.setServiceName("PAP.delete");
- if ((loggingContext.getRequestID() == null) || (loggingContext.getRequestID() == "")){
+ if ((loggingContext.getRequestID() == null) || (Objects.equals(loggingContext.getRequestID(), ""))) {
UUID requestID = UUID.randomUUID();
loggingContext.setRequestID(requestID.toString());
PolicyLogger.info("requestID not provided in call to XACMLPapSrvlet (doDelete) so we generated one");
@@ -1233,7 +1277,7 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
im.startTransaction();
loggingContext.metricEnded();
PolicyLogger.metrics("XACMLPapServlet doDelete im startTransaction");
- } catch (AdministrativeStateException ae){
+ } catch (AdministrativeStateException ae) {
String message = "DELETE interface called for PAP " + papResourceName + " but it has an Administrative"
+ " state of " + im.getStateManager().getAdminState()
+ "\n Exception Message: " + ae.getMessage();
@@ -1241,9 +1285,9 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR + " " + message);
loggingContext.transactionEnded();
PolicyLogger.audit("Transaction Failed - See Error.log");
- setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
+ setResponseError(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
return;
- }catch (StandbyStatusException se) {
+ } catch (StandbyStatusException se) {
String message = "PUT interface called for PAP " + papResourceName + " but it has a Standby Status"
+ " of " + im.getStateManager().getStandbyStatus()
+ "\n Exception Message: " + se.getMessage();
@@ -1251,7 +1295,7 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR + " " + message);
loggingContext.transactionEnded();
PolicyLogger.audit("Transaction Failed - See Error.log");
- setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
+ setResponseError(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
return;
} catch (IntegrityMonitorException e) {
String message = "PUT interface called for PAP " + papResourceName + " but an exception occurred"
@@ -1260,7 +1304,7 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR + " " + message);
loggingContext.transactionEnded();
PolicyLogger.audit("Transaction Failed - See Error.log");
- setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
+ setResponseError(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
return;
}
loggingContext.metricStarted();
@@ -1271,13 +1315,14 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
String apiflag = request.getParameter("apiflag");
if (groupId != null) {
// Is this from the Admin Console or API?
- if(apiflag!=null) {
- if(!authorizeRequest(request)){
- String message = "PEP not Authorized for making this Request!! \n Contact Administrator for this Scope. ";
+ if (apiflag != null) {
+ if (!authorizeRequest(request)) {
+ String message =
+ "PEP not Authorized for making this Request!! \n Contact Administrator for this Scope. ";
PolicyLogger.error(MessageCodes.ERROR_PERMISSIONS + " " + message);
loggingContext.transactionEnded();
PolicyLogger.audit("Transaction Failed - See Error.log");
- setResponseError(response,HttpServletResponse.SC_FORBIDDEN, message);
+ setResponseError(response, HttpServletResponse.SC_FORBIDDEN, message);
return;
}
APIRequestHandler apiRequestHandler = new APIRequestHandler();
@@ -1287,15 +1332,15 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
loggingContext.metricEnded();
PolicyLogger.metrics("XACMLPapServlet doDelete apiRequestHandler doDelete");
} catch (Exception e) {
- LOGGER.error("Exception Occured"+e);
+ LOGGER.error("Exception Occured" + e);
}
- if(apiRequestHandler.getNewGroup()!=null){
+ if (apiRequestHandler.getNewGroup() != null) {
groupChanged(apiRequestHandler.getNewGroup(), loggingContext);
}
return;
}
// this is from the Admin Console, so handle separately
- try{
+ try {
loggingContext.metricStarted();
doACDelete(request, response, groupId, loggingContext);
loggingContext.metricEnded();
@@ -1312,7 +1357,7 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " Request does not have groupId");
loggingContext.transactionEnded();
PolicyLogger.audit("Transaction Failed - See Error.log");
- setResponseError(response,HttpServletResponse.SC_BAD_REQUEST, "Request does not have groupId");
+ setResponseError(response, HttpServletResponse.SC_BAD_REQUEST, "Request does not have groupId");
im.endTransaction();
}
@@ -1320,7 +1365,8 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
String localRootPolicies = policies.getProperty(XACMLProperties.PROP_ROOTPOLICIES);
String localReferencedPolicies = policies.getProperty(XACMLProperties.PROP_REFERENCEDPOLICIES);
if (localRootPolicies == null || localReferencedPolicies == null) {
- LOGGER.warn(XACMLErrorConstants.ERROR_DATA_ISSUE + "Missing property on PAP server: RootPolicies="+localRootPolicies+" ReferencedPolicies="+localReferencedPolicies);
+ LOGGER.warn(XACMLErrorConstants.ERROR_DATA_ISSUE + "Missing property on PAP server: RootPolicies=" +
+ localRootPolicies + " ReferencedPolicies=" + localReferencedPolicies);
return false;
}
// Compare the policies and pipconfig properties to the pdpProperties
@@ -1373,7 +1419,8 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
String pdpJMMX = request.getHeader(XACMLRestProperties.PROP_PDP_HTTP_HEADER_JMX_PORT);
if (pdpJMMX == null || pdpJMMX.isEmpty()) {
// Should send back its port for identification
- LOGGER.warn(XACMLErrorConstants.ERROR_DATA_ISSUE + "PDP did not send custom header for JMX Port so the value of 0 is assigned");
+ LOGGER.warn(XACMLErrorConstants.ERROR_DATA_ISSUE +
+ "PDP did not send custom header for JMX Port so the value of 0 is assigned");
return null;
}
return pdpJMMX;
@@ -1389,7 +1436,8 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
* @throws ServletException
* @throws IOException
*/
- public void updateGroupsFromAPI(HttpServletRequest request, HttpServletResponse response, String groupId, ONAPLoggingContext loggingContext) throws IOException {
+ public void updateGroupsFromAPI(HttpServletRequest request, HttpServletResponse response, String groupId,
+ ONAPLoggingContext loggingContext) throws IOException {
PolicyDBDaoTransaction acPutTransaction = policyDBDao.getNewTransaction();
PolicyLogger.audit("PolicyDBDaoTransaction started for updateGroupsFromAPI");
try {
@@ -1400,7 +1448,7 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
String json = null;
java.util.Scanner scanner = new java.util.Scanner(request.getInputStream());
scanner.useDelimiter("\\A");
- json = scanner.hasNext() ? scanner.next() : "";
+ json = scanner.hasNext() ? scanner.next() : "";
scanner.close();
PolicyLogger.info("pushPolicy request from API: " + json);
@@ -1413,8 +1461,9 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
currentPoliciesInGroup = group.getPolicies();
//If the selected policy is in the group we must remove the old version of it
LOGGER.info("Removing old version of the policy");
- for(PDPPolicy existingPolicy : currentPoliciesInGroup) {
- if (existingPolicy.getName().equals(policy.getName()) && !existingPolicy.getId().equals(policy.getId())){
+ for (PDPPolicy existingPolicy : currentPoliciesInGroup) {
+ if (existingPolicy.getName().equals(policy.getName()) &&
+ !existingPolicy.getId().equals(policy.getId())) {
group.removePolicy(existingPolicy);
LOGGER.info("Removing policy: " + existingPolicy);
break;
@@ -1423,23 +1472,24 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
// Assume that this is an update of an existing PDP Group
loggingContext.setServiceName("PolicyEngineAPI:PAP.updateGroup");
- try{
+ try {
acPutTransaction.updateGroup(group, "XACMLPapServlet.doACPut");
- } catch(Exception e){
- PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "XACMLPapServlet", " Error while updating group in the database: "
- +"group="+group.getId());
+ } catch (Exception e) {
+ PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "XACMLPapServlet",
+ " Error while updating group in the database: "
+ + "group=" + group.getId());
throw new PAPException(e.getMessage());
}
LOGGER.info("Calling updatGroup() with new group");
papEngine.updateGroup(group);
String policyId = "empty";
- if(policy !=null && policy.getId() != null){
+ if (policy != null && policy.getId() != null) {
policyId = policy.getId();
}
- if(!policyId.matches(REGEX) ){
+ if (!policyId.matches(REGEX)) {
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
- response.addHeader("error",ADD_GROUP_ERROR);
+ response.addHeader("error", ADD_GROUP_ERROR);
response.addHeader("message", "Policy Id is not valid");
return;
}
@@ -1464,7 +1514,8 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
loggingContext.transactionEnded();
LOGGER.info("Success");
- if (policy != null && ((policy.getId().contains("Config_MS_")) || (policy.getId().contains("BRMS_Param")))) {
+ if (policy != null &&
+ ((policy.getId().contains("Config_MS_")) || (policy.getId().contains("BRMS_Param")))) {
PushPolicyHandler pushPolicyHandler = PushPolicyHandler.getInstance();
if (pushPolicyHandler.preSafetyCheck(policy, configHome)) {
LOGGER.debug("Precheck Successful.");
@@ -1472,18 +1523,17 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
}
PolicyLogger.audit("Transaction Ended Successfully");
- return;
} catch (PAPException e) {
acPutTransaction.rollbackTransaction();
PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "XACMLPapServlet", " API PUT exception");
loggingContext.transactionEnded();
PolicyLogger.audit("Transaction Failed - See Error.log");
- String message = XACMLErrorConstants.ERROR_PROCESS_FLOW + "Exception in request to update group from API - See Error.log on on the PAP.";
+ String message = XACMLErrorConstants.ERROR_PROCESS_FLOW +
+ "Exception in request to update group from API - See Error.log on on the PAP.";
setResponseError(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.getMessage());
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
- response.addHeader("error",ADD_GROUP_ERROR);
+ response.addHeader("error", ADD_GROUP_ERROR);
response.addHeader("message", message);
- return;
}
}
@@ -1497,18 +1547,20 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
* @throws ServletException
* @throws IOException
*/
- private void doACPost(HttpServletRequest request, HttpServletResponse response, String groupId, ONAPLoggingContext loggingContext) throws ServletException, IOException {
+ private void doACPost(HttpServletRequest request, HttpServletResponse response, String groupId,
+ ONAPLoggingContext loggingContext) throws ServletException, IOException {
PolicyDBDaoTransaction doACPostTransaction = null;
try {
String groupName = request.getParameter("groupName");
String groupDescription = request.getParameter("groupDescription");
String apiflag = request.getParameter("apiflag");
if (groupName != null && groupDescription != null) {
- // Args: group=<groupId> groupName=<name> groupDescription=<description> <= create a new group
+ // Args: group=<groupId> groupName=<name> groupDescription=<description> <= create
+ // a new group
loggingContext.setServiceName("AC:PAP.createGroup");
String unescapedName = null;
String unescapedDescription = null;
- try{
+ try {
unescapedName = URLDecoder.decode(groupName, "UTF-8");
unescapedDescription = URLDecoder.decode(groupDescription, "UTF-8");
} catch (UnsupportedEncodingException e) {
@@ -1516,7 +1568,8 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
}
PolicyDBDaoTransaction newGroupTransaction = policyDBDao.getNewTransaction();
try {
- newGroupTransaction.createGroup(PolicyDBDao.createNewPDPGroupId(unescapedName), unescapedName, unescapedDescription,"XACMLPapServlet.doACPost");
+ newGroupTransaction.createGroup(PolicyDBDao.createNewPDPGroupId(unescapedName), unescapedName,
+ unescapedDescription, "XACMLPapServlet.doACPost");
papEngine.newGroup(unescapedName, unescapedDescription);
loggingContext.metricStarted();
newGroupTransaction.commitTransaction();
@@ -1524,10 +1577,12 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
PolicyLogger.metrics("XACMLPapServlet doACPost commitTransaction");
} catch (Exception e) {
newGroupTransaction.rollbackTransaction();
- PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "XACMLPapServlet", " Unable to create new group");
+ PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "XACMLPapServlet",
+ " Unable to create new group");
loggingContext.transactionEnded();
PolicyLogger.audit("Transaction Failed - See Error.log");
- setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "Unable to create new group '" + groupId + "'");
+ setResponseError(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR,
+ "Unable to create new group '" + groupId + "'");
return;
}
response.setStatus(HttpServletResponse.SC_NO_CONTENT);
@@ -1548,30 +1603,30 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
}
// for all remaining POST operations the group must exist before the operation can be done
OnapPDPGroup group = null;
- try{
+ try {
group = papEngine.getGroup(groupId);
- } catch (PAPException e){
+ } catch (PAPException e) {
LOGGER.error(e);
}
if (group == null) {
String message = "Unknown groupId '" + groupId + "'";
//for fixing Header Manipulation of Fortify issue
- if(!message.matches(REGEX)){
+ if (!message.matches(REGEX)) {
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
- response.addHeader("error",ADD_GROUP_ERROR);
+ response.addHeader("error", ADD_GROUP_ERROR);
response.addHeader("message", "GroupId Id is not valid");
return;
}
PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " " + message);
loggingContext.transactionEnded();
PolicyLogger.audit("Transaction Failed - See Error.log");
- if (apiflag!=null){
+ if (apiflag != null) {
response.addHeader("error", "unknownGroupId");
response.addHeader("operation", "push");
response.addHeader("message", message);
response.setStatus(HttpServletResponse.SC_NOT_FOUND);
} else {
- setResponseError(response,HttpServletResponse.SC_NOT_FOUND, message);
+ setResponseError(response, HttpServletResponse.SC_NOT_FOUND, message);
}
return;
}
@@ -1579,7 +1634,7 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
// If the request contains a policyId then we know we are pushing the policy to PDP
if (request.getParameter("policyId") != null) {
- if(apiflag!=null){
+ if (apiflag != null) {
loggingContext.setServiceName("PolicyEngineAPI:PAP.postPolicy");
LOGGER.info("PushPolicy Request From The API");
} else {
@@ -1593,7 +1648,8 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
try {
//Copying the policy to the file system and updating groups in database
LOGGER.info("PapServlet: calling PolicyDBDao.addPolicyToGroup()");
- updatedGroup = addPolicyToGroupTransaction.addPolicyToGroup(group.getId(), policyId,"XACMLPapServlet.doACPost");
+ updatedGroup = addPolicyToGroupTransaction
+ .addPolicyToGroup(group.getId(), policyId, "XACMLPapServlet.doACPost");
loggingContext.metricStarted();
addPolicyToGroupTransaction.commitTransaction();
loggingContext.metricEnded();
@@ -1602,30 +1658,31 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
} catch (Exception e) {
addPolicyToGroupTransaction.rollbackTransaction();
- String message = "Policy '" + policyId + "' not copied to group '" + groupId +"': " + e;
+ String message = "Policy '" + policyId + "' not copied to group '" + groupId + "': " + e;
//for fixing Header Manipulation of Fortify issue
- if(!message.matches(REGEX)){
+ if (!message.matches(REGEX)) {
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
- response.addHeader("error",ADD_GROUP_ERROR);
+ response.addHeader("error", ADD_GROUP_ERROR);
response.addHeader("message", "Policy Id is not valid");
return;
}
PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW + " " + message);
loggingContext.transactionEnded();
PolicyLogger.audit("Transaction Failed - See Error.log");
- if (apiflag!=null){
+ if (apiflag != null) {
response.addHeader("error", "policyCopyError");
response.addHeader("message", message);
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
} else {
- setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
+ setResponseError(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
}
return;
}
- if(apiflag != null){
+ if (apiflag != null) {
/*
- * If request comes from the API we need to run the PolicyDBDao updateGroup() to notify other paps of the change.
+ * If request comes from the API we need to run the PolicyDBDao updateGroup() to notify other
+ * paps of the change.
* The GUI does this from the POLICY-SDK-APP code.
*/
@@ -1635,7 +1692,7 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
// get the request content into a String and read the inputStream into a buffer
java.util.Scanner scanner = new java.util.Scanner(request.getInputStream());
scanner.useDelimiter("\\A");
- String json = scanner.hasNext() ? scanner.next() : "";
+ String json = scanner.hasNext() ? scanner.next() : "";
scanner.close();
// convert Object sent as JSON into local object
@@ -1647,11 +1704,12 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
// Assume that this is an update of an existing PDP Group
loggingContext.setServiceName("PolicyEngineAPI:PAP.updateGroup");
- try{
+ try {
acPutTransaction.updateGroup(updatedGroup, "XACMLPapServlet.doACPut");
- } catch(Exception e){
- PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "XACMLPapServlet", " Error occurred when notifying PAPs of a group change: "
- + e);
+ } catch (Exception e) {
+ PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "XACMLPapServlet",
+ " Error occurred when notifying PAPs of a group change: "
+ + e);
throw new PAPException(e.getMessage());
}
@@ -1672,11 +1730,12 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
PolicyLogger.metrics("XACMLPapServlet updateGroupsFromAPI notifyAC");
// Group changed to send notification to PDPs, which might include changing the policies
- groupChanged(updatedGroup,loggingContext);
+ groupChanged(updatedGroup, loggingContext);
loggingContext.transactionEnded();
LOGGER.info("Success");
- if (policy != null && ((policy.getName().contains("Config_MS_")) || (policy.getId().contains("BRMS_Param")))) {
+ if (policy != null && ((policy.getName().contains("Config_MS_")) ||
+ (policy.getId().contains("BRMS_Param")))) {
PushPolicyHandler pushPolicyHandler = PushPolicyHandler.getInstance();
if (pushPolicyHandler.preSafetyCheck(policy, configHome)) {
LOGGER.debug("Precheck Successful.");
@@ -1691,11 +1750,12 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "XACMLPapServlet", " API PUT exception");
loggingContext.transactionEnded();
PolicyLogger.audit("Transaction Failed - See Error.log");
- String message = XACMLErrorConstants.ERROR_PROCESS_FLOW + "Exception occurred when updating the group from API.";
+ String message = XACMLErrorConstants.ERROR_PROCESS_FLOW +
+ "Exception occurred when updating the group from API.";
LOGGER.error(message);
setResponseError(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.getMessage());
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
- response.addHeader("error",ADD_GROUP_ERROR);
+ response.addHeader("error", ADD_GROUP_ERROR);
response.addHeader("message", message);
return;
}
@@ -1712,13 +1772,14 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
auditLogger.info("Success");
LOGGER.info("Transaction Ended Successfully");
- return;
} else if (request.getParameter("default") != null) {
// Args: group=<groupId> default=true <= make default
// change the current default group to be the one identified in the request.
loggingContext.setServiceName("AC:PAP.setDefaultGroup");
- // This is a POST operation rather than a PUT "update group" because of the side-effect that the current default group is also changed.
- // It should never be the case that multiple groups are currently marked as the default, but protect against that anyway.
+ // This is a POST operation rather than a PUT "update group" because of the side-effect that the
+ // current default group is also changed.
+ // It should never be the case that multiple groups are currently marked as the default, but protect
+ // against that anyway.
PolicyDBDaoTransaction setDefaultGroupTransaction = policyDBDao.getNewTransaction();
try {
setDefaultGroupTransaction.changeDefaultGroup(group, "XACMLPapServlet.doACPost");
@@ -1732,7 +1793,8 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "XACMLPapServlet", " Unable to set group");
loggingContext.transactionEnded();
PolicyLogger.audit("Transaction Failed - See Error.log");
- setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "Unable to set group '" + groupId + "' to default");
+ setResponseError(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR,
+ "Unable to set group '" + groupId + "' to default");
return;
}
response.setStatus(HttpServletResponse.SC_NO_CONTENT);
@@ -1740,8 +1802,10 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
LOGGER.debug("Group '" + groupId + "' set to be default");
}
// Notify the Admin Consoles that something changed
- // For now the AC cannot handle anything more detailed than the whole set of PDPGroups, so just notify on that
- //TODO - Future: FIGURE OUT WHAT LEVEL TO NOTIFY: 2 groups or entire set - currently notify AC to update whole configuration of all groups
+ // For now the AC cannot handle anything more detailed than the whole set of PDPGroups, so just
+ // notify on that
+ //TODO - Future: FIGURE OUT WHAT LEVEL TO NOTIFY: 2 groups or entire set - currently notify AC to
+ // update whole configuration of all groups
loggingContext.metricStarted();
notifyAC();
// This does not affect any PDPs in the existing groups, so no need to notify them of this change
@@ -1750,7 +1814,6 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
loggingContext.transactionEnded();
auditLogger.info("Success");
LOGGER.info("Transaction Ended Successfully");
- return;
} else if (request.getParameter("pdpId") != null) {
doACPostTransaction = policyDBDao.getNewTransaction();
// Args: group=<groupId> pdpId=<pdpId> <= move PDP to group
@@ -1758,25 +1821,26 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
String pdpId = request.getParameter("pdpId");
OnapPDP pdp = papEngine.getPDP(pdpId);
OnapPDPGroup originalGroup = papEngine.getPDPGroup((OnapPDP) pdp);
- try{
+ try {
doACPostTransaction.movePdp(pdp, group, "XACMLPapServlet.doACPost");
- }catch(Exception e){
+ } catch (Exception e) {
doACPostTransaction.rollbackTransaction();
PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "XACMLPapServlet",
" Error while moving pdp in the database: "
- +"pdp="+pdp.getId()+",to group="+group.getId());
+ + "pdp=" + pdp.getId() + ",to group=" + group.getId());
throw new PAPException(e.getMessage());
}
papEngine.movePDP((OnapPDP) pdp, group);
response.setStatus(HttpServletResponse.SC_NO_CONTENT);
if (LOGGER.isDebugEnabled()) {
- LOGGER.debug("PDP '" + pdp.getId() +"' moved to group '" + group.getId() + "' set to be default");
+ LOGGER.debug("PDP '" + pdp.getId() + "' moved to group '" + group.getId() + "' set to be default");
}
// update the status of both the original group and the new one
- ((StdPDPGroup)originalGroup).resetStatus();
- ((StdPDPGroup)group).resetStatus();
+ ((StdPDPGroup) originalGroup).resetStatus();
+ ((StdPDPGroup) group).resetStatus();
// Notify the Admin Consoles that something changed
- // For now the AC cannot handle anything more detailed than the whole set of PDPGroups, so just notify on that
+ // For now the AC cannot handle anything more detailed than the whole set of PDPGroups, so just
+ // notify on that
loggingContext.metricStarted();
notifyAC();
loggingContext.metricEnded();
@@ -1790,14 +1854,12 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
loggingContext.transactionEnded();
auditLogger.info("Success");
PolicyLogger.audit("Transaction Ended Successfully");
- return;
}
} catch (PAPException e) {
PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "XACMLPapServlet", " AC POST exception");
loggingContext.transactionEnded();
PolicyLogger.audit("Transaction Failed - See Error.log");
- setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.getMessage());
- return;
+ setResponseError(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.getMessage());
}
}
@@ -1811,7 +1873,8 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
* @throws ServletException
* @throws IOException
*/
- private void doACGet(HttpServletRequest request, HttpServletResponse response, String groupId, ONAPLoggingContext loggingContext) throws IOException {
+ private void doACGet(HttpServletRequest request, HttpServletResponse response, String groupId,
+ ONAPLoggingContext loggingContext) throws IOException {
try {
String parameterDefault = request.getParameter("default");
String pdpId = request.getParameter("pdpId");
@@ -1823,15 +1886,15 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
loggingContext.setServiceName("AC:PAP.getDefaultGroup");
OnapPDPGroup group = papEngine.getDefaultGroup();
// convert response object to JSON and include in the response
- mapperWriteValue(new ObjectMapper(), response, group);
+ mapperWriteValue(new ObjectMapper(), response, group);
if (LOGGER.isDebugEnabled()) {
LOGGER.debug("GET Default group req from '" + request.getRequestURL() + "'");
}
response.setStatus(HttpServletResponse.SC_OK);
response.setHeader("content-type", "application/json");
- try{
+ try {
response.getOutputStream().close();
- } catch (IOException e){
+ } catch (IOException e) {
LOGGER.error(e);
}
loggingContext.transactionEnded();
@@ -1844,21 +1907,21 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
// Request is for the (unspecified) group containing a given PDP
loggingContext.setServiceName("AC:PAP.getPDP");
OnapPDP pdp = null;
- try{
+ try {
pdp = papEngine.getPDP(pdpId);
- }catch(PAPException e){
+ } catch (PAPException e) {
LOGGER.error(e);
}
// convert response object to JSON and include in the response
- mapperWriteValue(new ObjectMapper(), response, pdp);
+ mapperWriteValue(new ObjectMapper(), response, pdp);
if (LOGGER.isDebugEnabled()) {
LOGGER.debug("GET pdp '" + pdpId + "' req from '" + request.getRequestURL() + "'");
}
response.setStatus(HttpServletResponse.SC_OK);
response.setHeader("content-type", "application/json");
- try{
+ try {
response.getOutputStream().close();
- } catch (IOException e){
+ } catch (IOException e) {
LOGGER.error(e);
}
loggingContext.transactionEnded();
@@ -1868,23 +1931,23 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
} else {
// Request is for the group containing a given PDP
loggingContext.setServiceName("AC:PAP.getGroupForPDP");
- OnapPDPGroup group =null;
- try{
+ OnapPDPGroup group = null;
+ try {
OnapPDP pdp = papEngine.getPDP(pdpId);
group = papEngine.getPDPGroup((OnapPDP) pdp);
- }catch(PAPException e){
+ } catch (PAPException e) {
LOGGER.error(e);
}
// convert response object to JSON and include in the response
- mapperWriteValue(new ObjectMapper(), response, group);
+ mapperWriteValue(new ObjectMapper(), response, group);
if (LOGGER.isDebugEnabled()) {
LOGGER.debug("GET PDP '" + pdpId + "' Group req from '" + request.getRequestURL() + "'");
}
response.setStatus(HttpServletResponse.SC_OK);
response.setHeader("content-type", "application/json");
- try{
+ try {
response.getOutputStream().close();
- } catch (IOException e){
+ } catch (IOException e) {
LOGGER.error(e);
}
loggingContext.transactionEnded();
@@ -1898,23 +1961,23 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
Set<OnapPDPGroup> groups = null;
try {
groups = papEngine.getOnapPDPGroups();
- } catch(PAPException e) {
+ } catch (PAPException e) {
PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "XACMLPapServlet", " AC Get exception");
loggingContext.transactionEnded();
PolicyLogger.audit("Transaction Failed - See Error.log");
- setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.getMessage());
+ setResponseError(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.getMessage());
return;
}
// convert response object to JSON and include in the response
- mapperWriteValue(new ObjectMapper(), response, groups);
+ mapperWriteValue(new ObjectMapper(), response, groups);
if (LOGGER.isDebugEnabled()) {
LOGGER.debug("GET All groups req");
}
response.setStatus(HttpServletResponse.SC_OK);
response.setHeader("content-type", "application/json");
- try{
+ try {
response.getOutputStream().close();
- } catch (IOException e){
+ } catch (IOException e) {
LOGGER.error(e);
}
loggingContext.transactionEnded();
@@ -1925,24 +1988,24 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
}
// for all other GET operations the group must exist before the operation can be done
OnapPDPGroup group = null;
- try{
+ try {
group = papEngine.getGroup(groupId);
- } catch(PAPException e){
+ } catch (PAPException e) {
LOGGER.error(e);
}
if (group == null) {
String message = "Unknown groupId '" + groupId + "'";
//for fixing Header Manipulation of Fortify issue
- if(!message.matches(REGEX)){
+ if (!message.matches(REGEX)) {
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
- response.addHeader("error",ADD_GROUP_ERROR);
+ response.addHeader("error", ADD_GROUP_ERROR);
response.addHeader("message", "Group Id is not valid");
return;
}
PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " " + message);
loggingContext.transactionEnded();
PolicyLogger.audit("Transaction Failed - See Error.log");
- setResponseError(response,HttpServletResponse.SC_NOT_FOUND, message);
+ setResponseError(response, HttpServletResponse.SC_NOT_FOUND, message);
return;
}
// Figure out which request this is based on the parameters
@@ -1954,20 +2017,20 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " GET Policy not implemented");
loggingContext.transactionEnded();
PolicyLogger.audit("Transaction Failed - See Error.log");
- setResponseError(response,HttpServletResponse.SC_BAD_REQUEST, "GET Policy not implemented");
+ setResponseError(response, HttpServletResponse.SC_BAD_REQUEST, "GET Policy not implemented");
} else {
// No other parameters, so return the identified Group
loggingContext.setServiceName("AC:PAP.getGroup");
// convert response object to JSON and include in the response
- mapperWriteValue(new ObjectMapper(), response, group);
+ mapperWriteValue(new ObjectMapper(), response, group);
if (LOGGER.isDebugEnabled()) {
LOGGER.debug("GET group '" + group.getId() + "' req from '" + request.getRequestURL() + "'");
}
response.setStatus(HttpServletResponse.SC_OK);
response.setHeader("content-type", "application/json");
- try{
+ try {
response.getOutputStream().close();
- } catch (IOException e){
+ } catch (IOException e) {
LOGGER.error(e);
}
loggingContext.transactionEnded();
@@ -1976,7 +2039,8 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
return;
}
// Currently there are no other GET calls from the AC.
- // The AC uses the "GET All Groups" operation to fill its local cache and uses that cache for all other GETs without calling the PAP.
+ // The AC uses the "GET All Groups" operation to fill its local cache and uses that cache for all other
+ // GETs without calling the PAP.
// Other GETs that could be called:
// Specific Group (groupId=<groupId>)
// A Policy (groupId=<groupId> policyId=<policyId>)
@@ -1984,13 +2048,12 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " UNIMPLEMENTED ");
loggingContext.transactionEnded();
PolicyLogger.audit("Transaction Failed - See Error.log");
- setResponseError(response,HttpServletResponse.SC_BAD_REQUEST, "UNIMPLEMENTED");
+ setResponseError(response, HttpServletResponse.SC_BAD_REQUEST, "UNIMPLEMENTED");
} catch (PAPException e) {
PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "XACMLPapServlet", " AC Get exception");
loggingContext.transactionEnded();
PolicyLogger.audit("Transaction Failed - See Error.log");
- setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.getMessage());
- return;
+ setResponseError(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.getMessage());
}
}
@@ -2004,7 +2067,8 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
* @throws ServletException
* @throws IOException
*/
- private void doACPut(HttpServletRequest request, HttpServletResponse response, String groupId, ONAPLoggingContext loggingContext) throws IOException {
+ private void doACPut(HttpServletRequest request, HttpServletResponse response, String groupId,
+ ONAPLoggingContext loggingContext) throws IOException {
PolicyDBDaoTransaction acPutTransaction = policyDBDao.getNewTransaction();
try {
// for PUT operations the group may or may not need to exist before the operation can be done
@@ -2016,19 +2080,20 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " " + message);
loggingContext.transactionEnded();
PolicyLogger.audit("Transaction Failed - See Error.log");
- setResponseError(response,HttpServletResponse.SC_NOT_FOUND, message);
+ setResponseError(response, HttpServletResponse.SC_NOT_FOUND, message);
return;
}
if (request.getParameter("policy") != null) {
- // group=<groupId> policy=<policyId> contents=policy file <= Create new policy file in group dir, or replace it if it already exists (do not touch properties)
+ // group=<groupId> policy=<policyId> contents=policy file <= Create new policy
+ // file in group dir, or replace it if it already exists (do not touch properties)
loggingContext.setServiceName("AC:PAP.putPolicy");
- PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " PARTIALLY IMPLEMENTED!!! ACTUAL CHANGES SHOULD BE MADE BY PAP SERVLET!!! ");
+ PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE +
+ " PARTIALLY IMPLEMENTED!!! ACTUAL CHANGES SHOULD BE MADE BY PAP SERVLET!!! ");
response.setStatus(HttpServletResponse.SC_NO_CONTENT);
loggingContext.transactionEnded();
PolicyLogger.audit("Transaction Failed - See Error.log");
auditLogger.info("Success");
PolicyLogger.audit("Transaction Ended Successfully");
- return;
} else if (request.getParameter("pdpId") != null) {
// ARGS: group=<groupId> pdpId=<pdpId/URL> <= create a new PDP or Update an Existing one
String pdpId = request.getParameter("pdpId");
@@ -2040,12 +2105,12 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
// get the request content into a String
String json = null;
// read the inputStream into a buffer (trick found online scans entire input looking for end-of-file)
- try{
+ try {
Scanner scanner = new Scanner(request.getInputStream());
scanner.useDelimiter("\\A");
- json = scanner.hasNext() ? scanner.next() : "";
+ json = scanner.hasNext() ? scanner.next() : "";
scanner.close();
- }catch(IOException e){
+ } catch (IOException e) {
LOGGER.error(e);
}
LOGGER.info("JSON request from AC: " + json);
@@ -2054,54 +2119,58 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
Object objectFromJSON = null;
try {
objectFromJSON = mapper.readValue(json, StdPDP.class);
- } catch(Exception e) {
+ } catch (Exception e) {
LOGGER.error(e);
}
if (pdpId == null ||
objectFromJSON == null ||
- ! (objectFromJSON instanceof StdPDP) ||
- ((StdPDP)objectFromJSON).getId() == null ||
- ! ((StdPDP)objectFromJSON).getId().equals(pdpId)) {
- PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " PDP new/update had bad input. pdpId=" + pdpId + " objectFromJSON="+objectFromJSON);
+ !(objectFromJSON instanceof StdPDP) ||
+ ((StdPDP) objectFromJSON).getId() == null ||
+ !((StdPDP) objectFromJSON).getId().equals(pdpId)) {
+ PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " PDP new/update had bad input. pdpId=" + pdpId +
+ " objectFromJSON=" + objectFromJSON);
loggingContext.transactionEnded();
PolicyLogger.audit("Transaction Failed - See Error.log");
- setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "Bad input pdpid for object:"+objectFromJSON);
+ setResponseError(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR,
+ "Bad input pdpid for object:" + objectFromJSON);
}
StdPDP pdp = (StdPDP) objectFromJSON;
- if(pdp != null){
+ if (pdp != null) {
OnapPDP oPDP = null;
- try{
+ try {
oPDP = papEngine.getPDP(pdpId);
- }catch (PAPException e){
+ } catch (PAPException e) {
LOGGER.error(e);
}
if (oPDP == null) {
// this is a request to create a new PDP object
- try{
+ try {
acPutTransaction.addPdpToGroup(pdp.getId(), group.getId(), pdp.getName(),
- pdp.getDescription(), pdp.getJmxPort(),"XACMLPapServlet.doACPut");
- } catch(Exception e){
- PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "XACMLPapServlet", " Error while adding pdp to group in the database: "
- +"pdp="+ (pdp.getId()) +",to group="+group.getId());
+ pdp.getDescription(), pdp.getJmxPort(), "XACMLPapServlet.doACPut");
+ } catch (Exception e) {
+ PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "XACMLPapServlet",
+ " Error while adding pdp to group in the database: "
+ + "pdp=" + (pdp.getId()) + ",to group=" + group.getId());
throw new PAPException(e.getMessage());
}
- try{
+ try {
papEngine.newPDP(pdp.getId(), group, pdp.getName(), pdp.getDescription(), pdp.getJmxPort());
- }catch(PAPException e){
+ } catch (PAPException e) {
LOGGER.error(e);
}
} else {
- try{
+ try {
acPutTransaction.updatePdp(pdp, "XACMLPapServlet.doACPut");
- } catch(Exception e){
- PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "XACMLPapServlet", " Error while updating pdp in the database: "
- +"pdp="+ pdp.getId());
+ } catch (Exception e) {
+ PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "XACMLPapServlet",
+ " Error while updating pdp in the database: "
+ + "pdp=" + pdp.getId());
throw new PAPException(e.getMessage());
}
// this is a request to update the pdp
- try{
+ try {
papEngine.updatePDP(pdp);
- }catch(PAPException e){
+ } catch (PAPException e) {
LOGGER.error(e);
}
}
@@ -2110,7 +2179,7 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
LOGGER.debug("PDP '" + pdpId + "' created/updated");
}
// adjust the group's state including the new PDP
- ((StdPDPGroup)group).resetStatus();
+ ((StdPDPGroup) group).resetStatus();
// tell the Admin Consoles there is a change
loggingContext.metricStarted();
notifyAC();
@@ -2125,24 +2194,24 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
loggingContext.transactionEnded();
auditLogger.info("Success");
PolicyLogger.audit("Transaction Ended Successfully");
- return;
- }else{
- try{
- PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, "XACMLPapServlet", " Error while adding pdp to group in the database: "
- +"pdp=null" + ",to group="+group.getId());
+ } else {
+ try {
+ PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, "XACMLPapServlet",
+ " Error while adding pdp to group in the database: "
+ + "pdp=null" + ",to group=" + group.getId());
throw new PAPException("PDP is null");
- } catch(Exception e){
- throw new PAPException("PDP is null" + e.getMessage() +e);
+ } catch (Exception e) {
+ throw new PAPException("PDP is null" + e.getMessage() + e);
}
}
} else if (request.getParameter("pipId") != null) {
- // group=<groupId> pipId=<pipEngineId> contents=pip properties <= add a PIP to pip config, or replace it if it already exists (lenient operation)
+ // group=<groupId> pipId=<pipEngineId> contents=pip properties <= add a
+ // PIP to pip config, or replace it if it already exists (lenient operation)
loggingContext.setServiceName("AC:PAP.putPIP");
PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR + " UNIMPLEMENTED");
loggingContext.transactionEnded();
PolicyLogger.audit("Transaction Failed - See Error.log");
- setResponseError(response,HttpServletResponse.SC_BAD_REQUEST, "UNIMPLEMENTED");
- return;
+ setResponseError(response, HttpServletResponse.SC_BAD_REQUEST, "UNIMPLEMENTED");
} else {
// Assume that this is an update of an existing PDP Group
// ARGS: group=<groupId> <= Update an Existing Group
@@ -2150,12 +2219,12 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
// get the request content into a String
String json = null;
// read the inputStream into a buffer (trick found online scans entire input looking for end-of-file)
- try{
+ try {
Scanner scanner = new Scanner(request.getInputStream());
scanner.useDelimiter("\\A");
- json = scanner.hasNext() ? scanner.next() : "";
+ json = scanner.hasNext() ? scanner.next() : "";
scanner.close();
- }catch(IOException e){
+ } catch (IOException e) {
LOGGER.error(e);
}
LOGGER.info("JSON request from AC: " + json);
@@ -2163,44 +2232,47 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
ObjectMapper mapper = new ObjectMapper();
Object objectFromJSON = null;
try {
- objectFromJSON = mapper.readValue(json, StdPDPGroup.class);
- } catch(Exception e) {
+ objectFromJSON = mapper.readValue(json, StdPDPGroup.class);
+ } catch (Exception e) {
LOGGER.error(e);
}
- if (objectFromJSON == null || ! (objectFromJSON instanceof StdPDPGroup) ||
- ! ((StdPDPGroup)objectFromJSON).getId().equals(group.getId())) {
- PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " Group update had bad input. id=" + group.getId() + " objectFromJSON="+objectFromJSON);
+ if (objectFromJSON == null || !(objectFromJSON instanceof StdPDPGroup) ||
+ !((StdPDPGroup) objectFromJSON).getId().equals(group.getId())) {
+ PolicyLogger
+ .error(MessageCodes.ERROR_DATA_ISSUE + " Group update had bad input. id=" + group.getId() +
+ " objectFromJSON=" + objectFromJSON);
loggingContext.transactionEnded();
PolicyLogger.audit("Transaction Failed - See Error.log");
- setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "Bad input id for object:"+objectFromJSON);
+ setResponseError(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR,
+ "Bad input id for object:" + objectFromJSON);
}
// The Path on the PAP side is not carried on the RESTful interface with the AC
// (because it is local to the PAP)
// so we need to fill that in before submitting the group for update
- if(objectFromJSON != null){
- ((StdPDPGroup)objectFromJSON).setDirectory(((StdPDPGroup)group).getDirectory());
+ if (objectFromJSON != null) {
+ ((StdPDPGroup) objectFromJSON).setDirectory(((StdPDPGroup) group).getDirectory());
}
- try{
- if("delete".equals(((StdPDPGroup)objectFromJSON).getOperation())){
- acPutTransaction.updateGroup((StdPDPGroup)objectFromJSON, "XACMLPapServlet.doDelete");
+ try {
+ if ("delete".equals(((StdPDPGroup) objectFromJSON).getOperation())) {
+ acPutTransaction.updateGroup((StdPDPGroup) objectFromJSON, "XACMLPapServlet.doDelete");
} else {
- acPutTransaction.updateGroup((StdPDPGroup)objectFromJSON, "XACMLPapServlet.doACPut");
+ acPutTransaction.updateGroup((StdPDPGroup) objectFromJSON, "XACMLPapServlet.doACPut");
}
- } catch(Exception e){
+ } catch (Exception e) {
PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW + " Error while updating group in the database: "
- +"group="+group.getId());
+ + "group=" + group.getId());
LOGGER.error(e);
throw new PAPException(e.getMessage());
}
PushPolicyHandler pushPolicyHandler = PushPolicyHandler.getInstance();
- OnapPDPGroup updatedGroup = (StdPDPGroup)objectFromJSON;
+ OnapPDPGroup updatedGroup = (StdPDPGroup) objectFromJSON;
if (pushPolicyHandler.preSafetyCheck(updatedGroup, configHome)) {
LOGGER.debug("Precheck Successful.");
}
- try{
- papEngine.updateGroup((StdPDPGroup)objectFromJSON);
- }catch(PAPException e){
+ try {
+ papEngine.updateGroup((StdPDPGroup) objectFromJSON);
+ } catch (PAPException e) {
LOGGER.error(e);
}
response.setStatus(HttpServletResponse.SC_NO_CONTENT);
@@ -2221,7 +2293,6 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
loggingContext.transactionEnded();
auditLogger.info("Success");
PolicyLogger.audit("Transaction Ended Successfully");
- return;
}
} catch (PAPException e) {
LOGGER.debug(e);
@@ -2229,8 +2300,7 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "XACMLPapServlet", " AC PUT exception");
loggingContext.transactionEnded();
PolicyLogger.audit("Transaction Failed - See Error.log");
- setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.getMessage());
- return;
+ setResponseError(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.getMessage());
}
}
@@ -2244,7 +2314,8 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
* @throws ServletException
* @throws IOException
*/
- private void doACDelete(HttpServletRequest request, HttpServletResponse response, String groupId, ONAPLoggingContext loggingContext) throws IOException {
+ private void doACDelete(HttpServletRequest request, HttpServletResponse response, String groupId,
+ ONAPLoggingContext loggingContext) throws IOException {
PolicyDBDaoTransaction removePdpOrGroupTransaction = policyDBDao.getNewTransaction();
try {
// for all DELETE operations the group must exist before the operation can be done
@@ -2255,34 +2326,34 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " " + message);
loggingContext.transactionEnded();
PolicyLogger.audit("Transaction Failed - See Error.log");
- setResponseError(response,HttpServletResponse.SC_NOT_FOUND, "Unknown groupId '" + groupId +"'");
+ setResponseError(response, HttpServletResponse.SC_NOT_FOUND, "Unknown groupId '" + groupId + "'");
return;
}
// determine the operation needed based on the parameters in the request
if (request.getParameter("policy") != null) {
- // group=<groupId> policy=<policyId> [delete=<true|false>] <= delete policy file from group
+ // group=<groupId> policy=<policyId> [delete=<true|false>] <= delete policy file from
+ // group
loggingContext.setServiceName("AC:PAP.deletePolicy");
PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR + " UNIMPLEMENTED");
loggingContext.transactionEnded();
PolicyLogger.audit("Transaction Failed - See Error.log");
- setResponseError(response,HttpServletResponse.SC_BAD_REQUEST, "UNIMPLEMENTED");
- return;
+ setResponseError(response, HttpServletResponse.SC_BAD_REQUEST, "UNIMPLEMENTED");
} else if (request.getParameter("pdpId") != null) {
// ARGS: group=<groupId> pdpId=<pdpId> <= delete PDP
String pdpId = request.getParameter("pdpId");
OnapPDP pdp = papEngine.getPDP(pdpId);
- try{
- removePdpOrGroupTransaction.removePdpFromGroup(pdp.getId(),"XACMLPapServlet.doACDelete");
- } catch(Exception e){
+ try {
+ removePdpOrGroupTransaction.removePdpFromGroup(pdp.getId(), "XACMLPapServlet.doACDelete");
+ } catch (Exception e) {
throw new PAPException(e);
}
- try{
+ try {
papEngine.removePDP((OnapPDP) pdp);
- }catch(PAPException e){
+ } catch (PAPException e) {
LOGGER.error(e);
}
// adjust the status of the group, which may have changed when we removed this PDP
- ((StdPDPGroup)group).resetStatus();
+ ((StdPDPGroup) group).resetStatus();
response.setStatus(HttpServletResponse.SC_NO_CONTENT);
loggingContext.metricStarted();
notifyAC();
@@ -2297,23 +2368,22 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
loggingContext.transactionEnded();
auditLogger.info("Success");
PolicyLogger.audit("Transaction Ended Successfully");
- return;
} else if (request.getParameter("pipId") != null) {
// group=<groupId> pipId=<pipEngineId> <= delete PIP config for given engine
loggingContext.setServiceName("AC:PAP.deletePIPConfig");
PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR + " UNIMPLEMENTED");
loggingContext.transactionEnded();
PolicyLogger.audit("Transaction Failed - See Error.log");
- setResponseError(response,HttpServletResponse.SC_BAD_REQUEST, "UNIMPLEMENTED");
- return;
+ setResponseError(response, HttpServletResponse.SC_BAD_REQUEST, "UNIMPLEMENTED");
} else {
- // ARGS: group=<groupId> movePDPsToGroupId=<movePDPsToGroupId> <= delete a group and move all its PDPs to the given group
+ // ARGS: group=<groupId> movePDPsToGroupId=<movePDPsToGroupId> <= delete a group and
+ // move all its PDPs to the given group
String moveToGroupId = request.getParameter("movePDPsToGroupId");
OnapPDPGroup moveToGroup = null;
if (moveToGroupId != null) {
- try{
+ try {
moveToGroup = papEngine.getGroup(moveToGroupId);
- }catch(PAPException e){
+ } catch (PAPException e) {
LOGGER.error(e);
}
}
@@ -2321,15 +2391,16 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
Set<OnapPDP> movedPDPs = new HashSet<>();
movedPDPs.addAll(group.getOnapPdps());
// do the move/remove
- try{
- removePdpOrGroupTransaction.deleteGroup(group, moveToGroup,"XACMLPapServlet.doACDelete");
- } catch(Exception e){
- PolicyLogger.error(MessageCodes.ERROR_UNKNOWN, e, "XACMLPapServlet", " Failed to delete PDP Group. Exception");
+ try {
+ removePdpOrGroupTransaction.deleteGroup(group, moveToGroup, "XACMLPapServlet.doACDelete");
+ } catch (Exception e) {
+ PolicyLogger.error(MessageCodes.ERROR_UNKNOWN, e, "XACMLPapServlet",
+ " Failed to delete PDP Group. Exception");
throw new PAPException(e.getMessage());
}
- try{
+ try {
papEngine.removeGroup(group, moveToGroup);
- }catch(PAPException e){
+ } catch (PAPException e) {
LOGGER.error(e);
}
response.setStatus(HttpServletResponse.SC_NO_CONTENT);
@@ -2348,37 +2419,36 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
loggingContext.transactionEnded();
auditLogger.info("Success");
PolicyLogger.audit("Transaction Ended Successfully");
- return;
}
} catch (PAPException e) {
removePdpOrGroupTransaction.rollbackTransaction();
PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "XACMLPapServlet", " AC DELETE exception");
loggingContext.transactionEnded();
PolicyLogger.audit("Transaction Failed - See Error.log");
- setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.getMessage());
- return;
+ setResponseError(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.getMessage());
}
}
/**
* Heartbeat thread - periodically check on PDPs' status
- *
+ * <p>
* Heartbeat with all known PDPs.
- *
+ * <p>
* Implementation note:
- *
+ * <p>
* The PDPs are contacted Sequentially, not in Parallel.
- *
+ * <p>
* If we did this in parallel using multiple threads we would simultaneously use
- * - 1 thread and
- * - 1 connection
+ * - 1 thread and
+ * - 1 connection
* for EACH PDP.
* This could become a resource problem since we already use multiple threads and connections for updating the PDPs
* when user changes occur.
* Using separate threads can also make it tricky dealing with timeouts on PDPs that are non-responsive.
- *
+ * <p>
* The Sequential operation does a heartbeat request to each PDP one at a time.
- * This has the flaw that any PDPs that do not respond will hold up the entire heartbeat sequence until they timeout.
+ * This has the flaw that any PDPs that do not respond will hold up the entire heartbeat sequence until they
+ * timeout.
* If there are a lot of non-responsive PDPs and the timeout is large-ish (the default is 20 seconds)
* it could take a long time to cycle through all of the PDPs.
* That means that this may not notice a PDP being down in a predictable time.
@@ -2401,14 +2471,16 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
public Heartbeat(PAPPolicyEngine papEngine2) {
papEngine = papEngine2;
- this.heartbeatInterval = Integer.parseInt(XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_HEARTBEAT_INTERVAL, "10000"));
- this.heartbeatTimeout = Integer.parseInt(XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_HEARTBEAT_TIMEOUT, "10000"));
+ this.heartbeatInterval = Integer.parseInt(
+ XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_HEARTBEAT_INTERVAL, "10000"));
+ this.heartbeatTimeout = Integer.parseInt(
+ XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_HEARTBEAT_TIMEOUT, "10000"));
}
@Override
public void run() {
// Set ourselves as running
- synchronized(this) {
+ synchronized (this) {
this.isRunning = true;
}
HashMap<String, URL> idToURLMap = new HashMap<>();
@@ -2418,7 +2490,7 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
Thread.sleep(heartbeatInterval);
// get the list of PDPs (may have changed since last time)
pdps.clear();
- synchronized(papEngine) {
+ synchronized (papEngine) {
try {
for (OnapPDPGroup g : papEngine.getOnapPDPGroups()) {
for (OnapPDP p : g.getOnapPdps()) {
@@ -2426,7 +2498,8 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
}
}
} catch (PAPException e) {
- PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "XACMLPapServlet", "Heartbeat unable to read PDPs from PAPEngine");
+ PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "XACMLPapServlet",
+ "Heartbeat unable to read PDPs from PAPEngine");
}
}
// Check for shutdown
@@ -2449,13 +2522,14 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
String fullURLString = null;
try {
// Check PDP ID
- if(CheckPDP.validateID(pdp.getId())){
+ if (CheckPDP.validateID(pdp.getId())) {
fullURLString = pdp.getId() + "?type=hb";
pdpURL = new URL(fullURLString);
idToURLMap.put(pdp.getId(), pdpURL);
}
} catch (MalformedURLException e) {
- PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, e, "XACMLPapServlet", " PDP id '" + fullURLString + "' is not a valid URL");
+ PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, e, "XACMLPapServlet",
+ " PDP id '" + fullURLString + "' is not a valid URL");
continue;
}
}
@@ -2464,14 +2538,14 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
HttpURLConnection connection = null;
try {
// Open up the connection
- if(pdpURL != null){
- connection = (HttpURLConnection)pdpURL.openConnection();
+ if (pdpURL != null) {
+ connection = (HttpURLConnection) pdpURL.openConnection();
// Setup our method and headers
connection.setRequestMethod("GET");
connection.setConnectTimeout(heartbeatTimeout);
// Authentication
String encoding = CheckPDP.getEncoding(pdp.getId());
- if(encoding !=null){
+ if (encoding != null) {
connection.setRequestProperty("Authorization", "Basic " + encoding);
}
// Do the connect
@@ -2484,34 +2558,42 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
} else {
// anything else is an unexpected result
newStatus = PDPStatus.Status.UNKNOWN.toString();
- PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR + " Heartbeat connect response code " + connection.getResponseCode() + ": " + pdp.getId());
+ PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR +
+ " Heartbeat connect response code " + connection.getResponseCode() + ": " +
+ pdp.getId());
}
}
} catch (UnknownHostException e) {
newStatus = PDPStatus.Status.NO_SUCH_HOST.toString();
- PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "XACMLPapServlet", " Heartbeat '" + pdp.getId() + "' NO_SUCH_HOST");
+ PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "XACMLPapServlet",
+ " Heartbeat '" + pdp.getId() + "' NO_SUCH_HOST");
} catch (SocketTimeoutException e) {
newStatus = PDPStatus.Status.CANNOT_CONNECT.toString();
- PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "XACMLPapServlet", " Heartbeat '" + pdp.getId() + "' connection timeout");
+ PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "XACMLPapServlet",
+ " Heartbeat '" + pdp.getId() + "' connection timeout");
} catch (ConnectException e) {
newStatus = PDPStatus.Status.CANNOT_CONNECT.toString();
- PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "XACMLPapServlet", " Heartbeat '" + pdp.getId() + "' cannot connect");
+ PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "XACMLPapServlet",
+ " Heartbeat '" + pdp.getId() + "' cannot connect");
} catch (Exception e) {
newStatus = PDPStatus.Status.UNKNOWN.toString();
- PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "XACMLPapServlet", "Heartbeat '" + pdp.getId() + "' connect exception");
+ PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "XACMLPapServlet",
+ "Heartbeat '" + pdp.getId() + "' connect exception");
} finally {
// cleanup the connection
- if(connection != null)
+ if (connection != null)
connection.disconnect();
}
- if ( ! pdp.getStatus().getStatus().toString().equals(newStatus)) {
+ if (!pdp.getStatus().getStatus().toString().equals(newStatus)) {
if (LOGGER.isDebugEnabled()) {
- LOGGER.debug("previous status='" + pdp.getStatus().getStatus()+"' new Status='" + newStatus + "'");
+ LOGGER.debug("previous status='" + pdp.getStatus().getStatus() + "' new Status='" +
+ newStatus + "'");
}
try {
setPDPSummaryStatus(pdp, newStatus);
} catch (PAPException e) {
- PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "XACMLPapServlet", "Unable to set state for PDP '" + pdp.getId());
+ PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "XACMLPapServlet",
+ "Unable to set state for PDP '" + pdp.getId());
}
changeSeen = true;
}
@@ -2543,12 +2625,12 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
}
private void setPDPSummaryStatus(OnapPDP pdp, String newStatus) throws PAPException {
- synchronized(papEngine) {
+ synchronized (papEngine) {
StdPDPStatus status = new StdPDPStatus();
status.setStatus(PDPStatus.Status.valueOf(newStatus));
- ((StdPDP)pdp).setStatus(status);
+ ((StdPDP) pdp).setStatus(status);
// now adjust the group
- StdPDPGroup group = (StdPDPGroup)papEngine.getPDPGroup((OnapPDP) pdp);
+ StdPDPGroup group = (StdPDPGroup) papEngine.getPDPGroup((OnapPDP) pdp);
// if the PDP was just deleted it may transiently exist but not be in a group
if (group != null) {
group.resetStatus();
@@ -2605,22 +2687,24 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
}
@Override
- public void pdpChanged(OnapPDP pdp) {
+ public void pdpChanged(OnapPDP pdp) {
// kick off a thread to do an event notification for each PDP.
// This needs to be on a separate thread so that PDPs that do not respond (down, non-existent, etc)
- // do not block the PSP response to the AC, which would freeze the GUI until all PDPs sequentially respond or time-out.
+ // do not block the PSP response to the AC, which would freeze the GUI until all PDPs sequentially respond or
+ // time-out.
Thread t = new Thread(new UpdatePDPThread(pdp));
- if(CheckPDP.validateID(pdp.getId())){
+ if (CheckPDP.validateID(pdp.getId())) {
t.start();
}
}
- public void pdpChanged(OnapPDP pdp, ONAPLoggingContext loggingContext) {
+ public void pdpChanged(OnapPDP pdp, ONAPLoggingContext loggingContext) {
// kick off a thread to do an event notification for each PDP.
// This needs to be on a separate thread so that PDPs that do not respond (down, non-existent, etc)
- // do not block the PSP response to the AC, which would freeze the GUI until all PDPs sequentially respond or time-out.
+ // do not block the PSP response to the AC, which would freeze the GUI until all PDPs sequentially respond or
+ // time-out.
Thread t = new Thread(new UpdatePDPThread(pdp, loggingContext));
- if(CheckPDP.validateID(pdp.getId())){
+ if (CheckPDP.validateID(pdp.getId())) {
t.start();
}
}
@@ -2636,8 +2720,9 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
public UpdatePDPThread(OnapPDP pdp, ONAPLoggingContext loggingContext) {
this.pdp = pdp;
- if ((loggingContext != null) && (loggingContext.getRequestID() != null || loggingContext.getRequestID() == "")) {
- this.requestId = loggingContext.getRequestID();
+ if ((loggingContext != null) && (loggingContext.getRequestID() != null ||
+ Objects.equals(loggingContext.getRequestID(), ""))) {
+ this.requestId = loggingContext.getRequestID();
}
this.loggingContext = loggingContext;
}
@@ -2648,40 +2733,47 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
// get a new logging context for the thread
try {
if (this.loggingContext == null) {
- loggingContext = new ONAPLoggingContext(baseLoggingContext);
+ loggingContext = new ONAPLoggingContext(baseLoggingContext);
}
} catch (Exception e) {
- PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "XACMLPapServlet", " Failed to send property file to " + pdp.getId());
+ PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "XACMLPapServlet",
+ " Failed to send property file to " + pdp.getId());
// Since this is a server-side error, it probably does not reflect a problem on the client,
// so do not change the PDP status.
return;
}
try {
loggingContext.setServiceName("PAP:PDP.putConfig");
- // If a requestId was provided, use it, otherwise generate one; post to loggingContext to be used later when calling PDP
- if ((requestId == null) || (requestId == "")) {
+ // If a requestId was provided, use it, otherwise generate one; post to loggingContext to be used
+ // later when calling PDP
+ if ((requestId == null) || (Objects.equals(requestId, ""))) {
UUID requestID = UUID.randomUUID();
loggingContext.setRequestID(requestID.toString());
- PolicyLogger.info("requestID not provided in call to XACMLPapSrvlet (UpdatePDPThread) so we generated one: " + loggingContext.getRequestID());
+ PolicyLogger
+ .info("requestID not provided in call to XACMLPapSrvlet (UpdatePDPThread) so we generated" +
+ " one: " +
+ loggingContext.getRequestID());
} else {
loggingContext.setRequestID(requestId);
- PolicyLogger.info("requestID was provided in call to XACMLPapSrvlet (UpdatePDPThread): " + loggingContext.getRequestID());
+ PolicyLogger.info("requestID was provided in call to XACMLPapSrvlet (UpdatePDPThread): " +
+ loggingContext.getRequestID());
}
loggingContext.transactionStarted();
// the Id of the PDP is its URL
if (LOGGER.isDebugEnabled()) {
LOGGER.debug("creating url for id '" + pdp.getId() + "'");
}
- //TODO - currently always send both policies and pips. Do we care enough to add code to allow sending just one or the other?
+ //TODO - currently always send both policies and pips. Do we care enough to add code to allow
+ // sending just one or the other?
//TODO (need to change "cache=", implying getting some input saying which to change)
URL url = new URL(pdp.getId() + "?cache=all");
// Open up the connection
- connection = (HttpURLConnection)url.openConnection();
+ connection = (HttpURLConnection) url.openConnection();
// Setup our method and headers
connection.setRequestMethod("PUT");
// Authentication
String encoding = CheckPDP.getEncoding(pdp.getId());
- if(encoding !=null){
+ if (encoding != null) {
connection.setRequestProperty("Authorization", "Basic " + encoding);
}
connection.setRequestProperty("Content-Type", "text/x-java-properties");
@@ -2705,13 +2797,15 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
group.getPolicyProperties().store(os, "");
Properties policyLocations = new Properties();
for (PDPPolicy policy : group.getPolicies()) {
- policyLocations.put(policy.getId() + ".url", XACMLPapServlet.papURL + "?id=" + policy.getId());
+ policyLocations
+ .put(policy.getId() + ".url", XACMLPapServlet.papURL + "?id=" + policy.getId());
}
policyLocations.store(os, "");
group.getPipConfigProperties().store(os, "");
}
} catch (Exception e) {
- PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "XACMLPapServlet", " Failed to send property file to " + pdp.getId());
+ PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "XACMLPapServlet",
+ " Failed to send property file to " + pdp.getId());
// Since this is a server-side error, it probably does not reflect a problem on the client,
// so do not change the PDP status.
return;
@@ -2734,27 +2828,34 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
PolicyLogger.audit("Transaction Success. PDP is configured correctly.");
setPDPSummaryStatus(pdp, PDPStatus.Status.OUT_OF_SYNCH);
} else {
- LOGGER.warn("Failed: " + connection.getResponseCode() + " message: " + connection.getResponseMessage());
+ LOGGER.warn("Failed: " + connection.getResponseCode() + " message: " +
+ connection.getResponseMessage());
loggingContext.transactionEnded();
- auditLogger.warn("Failed: " + connection.getResponseCode() + " message: " + connection.getResponseMessage());
- PolicyLogger.audit("Transaction Failed: " + connection.getResponseCode() + " message: " + connection.getResponseMessage());
+ auditLogger.warn("Failed: " + connection.getResponseCode() + " message: " +
+ connection.getResponseMessage());
+ PolicyLogger.audit("Transaction Failed: " + connection.getResponseCode() + " message: " +
+ connection.getResponseMessage());
setPDPSummaryStatus(pdp, PDPStatus.Status.UNKNOWN);
}
} catch (Exception e) {
LOGGER.debug(e);
- PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "XACMLPapServlet", " Unable to sync config with PDP '" + pdp.getId() + "'");
+ PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "XACMLPapServlet",
+ " Unable to sync config with PDP '" + pdp.getId() + "'");
loggingContext.transactionEnded();
PolicyLogger.audit("Transaction Failed: Unable to sync config with PDP '" + pdp.getId() + "': " + e);
try {
setPDPSummaryStatus(pdp, PDPStatus.Status.UNKNOWN);
} catch (PAPException e1) {
LOGGER.debug(e1);
- PolicyLogger.audit("Transaction Failed: Unable to set status of PDP " + pdp.getId() + " to UNKNOWN: " + e);
- PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "XACMLPapServlet", " Unable to set status of PDP '" + pdp.getId() + "' to UNKNOWN");
+ PolicyLogger
+ .audit("Transaction Failed: Unable to set status of PDP " + pdp.getId() + " to UNKNOWN: " +
+ e);
+ PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "XACMLPapServlet",
+ " Unable to set status of PDP '" + pdp.getId() + "' to UNKNOWN");
}
} finally {
// cleanup the connection
- if(connection != null){
+ if (connection != null) {
connection.disconnect();
}
// tell the AC to update it's status info
@@ -2783,17 +2884,19 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
HttpURLConnection connection = null;
try {
acURL += "?PAPNotification=true";
- //TODO - Currently we just tell AC that "Something changed" without being specific. Do we want to tell it which group/pdp changed?
+ //TODO - Currently we just tell AC that "Something changed" without being specific. Do we want
+ // to tell it which group/pdp changed?
//TODO - If so, put correct parameters into the Query string here
acURL += "&objectType=all" + "&action=update";
if (LOGGER.isDebugEnabled()) {
LOGGER.debug("creating url for id '" + acURL + "'");
}
- //TODO - currently always send both policies and pips. Do we care enough to add code to allow sending just one or the other?
+ //TODO - currently always send both policies and pips. Do we care enough to add code to allow
+ // sending just one or the other?
//TODO (need to change "cache=", implying getting some input saying which to change)
- URL url = new URL(acURL );
+ URL url = new URL(acURL);
// Open up the connection
- connection = (HttpURLConnection)url.openConnection();
+ connection = (HttpURLConnection) url.openConnection();
// Setup our method and headers
connection.setRequestMethod("PUT");
connection.setRequestProperty("Content-Type", "text/x-java-properties");
@@ -2812,15 +2915,17 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
if (connection.getResponseCode() == 204) {
LOGGER.info("Success. We updated correctly.");
} else {
- LOGGER.warn(XACMLErrorConstants.ERROR_SYSTEM_ERROR + "Failed: " + connection.getResponseCode() + " message: " + connection.getResponseMessage());
+ LOGGER.warn(XACMLErrorConstants.ERROR_SYSTEM_ERROR + "Failed: " + connection.getResponseCode() +
+ " message: " + connection.getResponseMessage());
}
} catch (Exception e) {
- PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "XACMLPapServlet", " Unable to sync config AC '" + acURL + "'");
+ PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "XACMLPapServlet",
+ " Unable to sync config AC '" + acURL + "'");
disconnectedACs.add(acURL);
} finally {
// cleanup the connection
- if(connection != null)
+ if (connection != null)
connection.disconnect();
}
}
@@ -2831,7 +2936,7 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
}
}
- private void testService(ONAPLoggingContext loggingContext, HttpServletResponse response) throws IOException{
+ private void testService(ONAPLoggingContext loggingContext, HttpServletResponse response) throws IOException {
LOGGER.info("Test request received");
try {
im.evaluateSanity();
@@ -2841,8 +2946,7 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
loggingContext.transactionEnded();
PolicyLogger.audit("Transaction Failed - See Error.log");
response.setStatus(HttpServletResponse.SC_OK);
- return;
- }catch (ForwardProgressException | AdministrativeStateException | StandbyStatusException e){
+ } catch (ForwardProgressException | AdministrativeStateException | StandbyStatusException e) {
String submsg;
if (e instanceof ForwardProgressException) {
submsg = " is not making forward progress.";
@@ -2858,12 +2962,11 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR + " " + message);
loggingContext.transactionEnded();
PolicyLogger.audit("Transaction Failed - See Error.log");
- setResponseError(response,HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
- return;
- }catch (Exception e) {
+ setResponseError(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
+ } catch (Exception e) {
//A subsystem is not making progress, is locked, standby or is not responding
String eMsg = e.getMessage();
- if(eMsg == null){
+ if (eMsg == null) {
eMsg = "No Exception Message";
}
String message = "GET:/pap/test called and PAP " + papResourceName + " has had a subsystem failure."
@@ -2874,21 +2977,20 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
PolicyLogger.audit("Transaction Failed - See Error.log");
//Get the specific list of subsystems that failed
String ssFailureList = null;
- for(String failedSS : papDependencyGroupsFlatArray){
- if(eMsg.contains(failedSS)){
- if(ssFailureList == null){
+ for (String failedSS : papDependencyGroupsFlatArray) {
+ if (eMsg.contains(failedSS)) {
+ if (ssFailureList == null) {
ssFailureList = failedSS;
- }else{
- ssFailureList = ssFailureList.concat(","+failedSS);
+ } else {
+ ssFailureList = ssFailureList.concat("," + failedSS);
}
}
}
- if(ssFailureList == null){
+ if (ssFailureList == null) {
ssFailureList = "UnknownSubSystem";
}
response.addHeader("X-ONAP-SubsystemFailure", ssFailureList);
setResponseError(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
- return;
}
}
@@ -2898,29 +3000,31 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
private boolean authorizeRequest(HttpServletRequest request) {
String clientCredentials = request.getHeader(ENVIRONMENT_HEADER);
// Check if the Client is Authorized.
- if(clientCredentials!=null && clientCredentials.equalsIgnoreCase(environment)){
+ if (clientCredentials != null && clientCredentials.equalsIgnoreCase(environment)) {
return true;
- }else{
+ } else {
return false;
}
}
- private static void loadWebapps() throws PAPException{
- if(actionHome == null || configHome == null){
+ private static void loadWebapps() throws PAPException {
+ if (actionHome == null || configHome == null) {
Path webappsPath = Paths.get(XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_WEBAPPS));
//Sanity Check
if (webappsPath == null) {
PolicyLogger.error("Invalid Webapps Path Location property : " + XACMLRestProperties.PROP_PAP_WEBAPPS);
- throw new PAPException("Invalid Webapps Path Location property : " + XACMLRestProperties.PROP_PAP_WEBAPPS);
+ throw new PAPException(
+ "Invalid Webapps Path Location property : " + XACMLRestProperties.PROP_PAP_WEBAPPS);
}
- Path webappsPathConfig = Paths.get(webappsPath.toString()+File.separator+"Config");
- Path webappsPathAction = Paths.get(webappsPath.toString()+File.separator+"Action");
+ Path webappsPathConfig = Paths.get(webappsPath.toString() + File.separator + "Config");
+ Path webappsPathAction = Paths.get(webappsPath.toString() + File.separator + "Action");
if (Files.notExists(webappsPathConfig)) {
try {
Files.createDirectories(webappsPathConfig);
} catch (IOException e) {
- PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "XACMLPapServlet", "Failed to create config directory: "
- + webappsPathConfig.toAbsolutePath().toString());
+ PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "XACMLPapServlet",
+ "Failed to create config directory: "
+ + webappsPathConfig.toAbsolutePath().toString());
}
}
if (Files.notExists(webappsPathAction)) {
@@ -2936,7 +3040,7 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
}
}
- public static String getConfigHome(){
+ public static String getConfigHome() {
try {
loadWebapps();
} catch (PAPException e) {
@@ -2946,11 +3050,11 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
return configHome;
}
- private static void setConfigHome(){
+ private static void setConfigHome() {
configHome = getConfigHome();
}
- public static String getActionHome(){
+ public static String getActionHome() {
try {
loadWebapps();
} catch (PAPException e) {
@@ -2960,7 +3064,7 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
return actionHome;
}
- private static void setActionHome(){
+ private static void setActionHome() {
actionHome = getActionHome();
}
@@ -2972,21 +3076,22 @@ public class XACMLPapServlet extends HttpServlet implements StdItemSetChangeList
return ia;
}
- public static String getPDPFile(){
+ public static String getPDPFile() {
return XACMLPapServlet.pdpFile;
}
- public static String getPersistenceUnit(){
+ public static String getPersistenceUnit() {
return PERSISTENCE_UNIT;
}
- public static PAPPolicyEngine getPAPEngine(){
+ public static PAPPolicyEngine getPAPEngine() {
return papEngine;
}
- public static PolicyDBDaoTransaction getDbDaoTransaction(){
+ public static PolicyDBDaoTransaction getDbDaoTransaction() {
return policyDBDao.getNewTransaction();
}
+
public static String getPapDbDriver() {
return papDbDriver;
}
diff --git a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/ActionPolicy.java b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/ActionPolicy.java
index 9f84a4eac..571a82036 100644
--- a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/ActionPolicy.java
+++ b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/ActionPolicy.java
@@ -7,9 +7,9 @@
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -30,6 +30,7 @@ import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
import org.onap.policy.common.logging.eelf.MessageCodes;
import org.onap.policy.common.logging.eelf.PolicyLogger;
@@ -56,17 +57,17 @@ import oasis.names.tc.xacml._3_0.core.schema.wd_17.ObligationExpressionType;
import oasis.names.tc.xacml._3_0.core.schema.wd_17.ObligationExpressionsType;
import oasis.names.tc.xacml._3_0.core.schema.wd_17.PolicyType;
import oasis.names.tc.xacml._3_0.core.schema.wd_17.RuleType;
-import oasis.names.tc.xacml._3_0.core.schema.wd_17.TargetType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.TargetType;
public class ActionPolicy extends Policy {
-
+
/**
* ActionPolicy Fields
*/
private static final Logger LOGGER = FlexLogger.getLogger(ActionPolicy.class);
-
+
public static final String JSON_CONFIG = "JSON";
-
+
public static final String PDP_ACTION = "PDP";
public static final String PEP_ACTION = "PEP";
public static final String TYPE_ACTION = "REST";
@@ -81,46 +82,46 @@ public class ActionPolicy extends Policy {
public static final String HEADERS_ATTRIBUTEID = "headers";
public static final String URL_ATTRIBUTEID = "url";
public static final String BODY_ATTRIBUTEID = "body";
-
+
List<String> dynamicLabelRuleAlgorithms = new LinkedList<>();
List<String> dynamicFieldFunctionRuleAlgorithms = new LinkedList<>();
List<String> dynamicFieldOneRuleAlgorithms = new LinkedList<>();
List<String> dynamicFieldTwoRuleAlgorithms = new LinkedList<>();
-
-
+
private CommonClassDao commonClassDao;
-
+
private static boolean isAttribute = false;
- private synchronized static boolean getAttribute () {
+
+ private synchronized static boolean getAttribute() {
return isAttribute;
}
-
+
public ActionPolicy() {
super();
}
-
- public ActionPolicy(PolicyRestAdapter policyAdapter, CommonClassDao commonClassDao){
+
+ public ActionPolicy(PolicyRestAdapter policyAdapter, CommonClassDao commonClassDao) {
this.policyAdapter = policyAdapter;
this.commonClassDao = commonClassDao;
}
@Override
public Map<String, String> savePolicies() throws PAPException {
-
+
Map<String, String> successMap = new HashMap<>();
- if(isPolicyExists()){
+ if (isPolicyExists()) {
successMap.put("EXISTS", "This Policy already exist on the PAP");
return successMap;
}
-
- if(!ActionPolicy.getAttribute()) {
+
+ if (!ActionPolicy.getAttribute()) {
successMap.put("invalidAttribute", "Action Attrbute was not in the database.");
return successMap;
}
-
- if(!isPreparedToSave()){
+
+ if (!isPreparedToSave()) {
//Prep and configure the policy for saving
prepareToSave();
}
@@ -128,24 +129,24 @@ public class ActionPolicy extends Policy {
// Until here we prepared the data and here calling the method to create xml.
Path newPolicyPath = null;
newPolicyPath = Paths.get(policyAdapter.getNewFileName());
- successMap = createPolicy(newPolicyPath,getCorrectPolicyDataObject() );
- return successMap;
+ successMap = createPolicy(newPolicyPath, getCorrectPolicyDataObject());
+ return successMap;
}
-
+
//This is the method for preparing the policy for saving. We have broken it out
//separately because the fully configured policy is used for multiple things
@Override
- public boolean prepareToSave() throws PAPException{
+ public boolean prepareToSave() throws PAPException {
- if(isPreparedToSave()){
+ if (isPreparedToSave()) {
//we have already done this
return true;
}
-
+
int version = 0;
String policyID = policyAdapter.getPolicyID();
version = policyAdapter.getHighestVersion();
-
+
// Create the Instance for pojo, PolicyType object is used in marshalling.
if (policyAdapter.getPolicyType().equals("Action")) {
PolicyType policyConfig = new PolicyType();
@@ -155,34 +156,36 @@ public class ActionPolicy extends Policy {
policyConfig.setTarget(new TargetType());
policyAdapter.setData(policyConfig);
}
-
+
policyName = policyAdapter.getNewFileName();
-
+
if (policyAdapter.getData() != null) {
// Action body is optional so checking value provided or not
String comboDictValue = policyAdapter.getActionAttribute();
String actionBody = policyAdapter.getActionBody();
setAttribute(false);
- //if actionBody is null or empty then we know the ActionAttribute in the request does not exist in the dictionary
- if(!(actionBody==null || "".equals(actionBody))){
+ //if actionBody is null or empty then we know the ActionAttribute in the request does not exist in the
+ // dictionary
+ if (!(actionBody == null || "".equals(actionBody))) {
saveActionBody(policyName, actionBody);
setAttribute(true);
} else {
- if(!getAttribute()){
- LOGGER.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "Could not find " + comboDictValue + " in the ActionPolicyDict table.");
+ if (!getAttribute()) {
+ LOGGER.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "Could not find " + comboDictValue +
+ " in the ActionPolicyDict table.");
return false;
}
}
-
+
PolicyType actionPolicy = (PolicyType) policyAdapter.getData();
actionPolicy.setDescription(policyAdapter.getPolicyDescription());
actionPolicy.setRuleCombiningAlgId(policyAdapter.getRuleCombiningAlgId());
AllOfType allOf = new AllOfType();
-
+
Map<String, String> dynamicFieldComponentAttributes = policyAdapter.getDynamicFieldConfigAttributes();
-
+
// If there is any dynamic field attributes create the matches here
for (String keyField : dynamicFieldComponentAttributes.keySet()) {
String key = keyField;
@@ -196,21 +199,21 @@ public class ActionPolicy extends Policy {
TargetType target = new TargetType();
target.getAnyOf().add(anyOf);
-
+
// Adding the target to the policy element
actionPolicy.setTarget(target);
-
+
RuleType rule = new RuleType();
rule.setRuleId(policyAdapter.getRuleID());
rule.setEffect(EffectType.PERMIT);
rule.setTarget(new TargetType());
-
+
dynamicLabelRuleAlgorithms = policyAdapter.getDynamicRuleAlgorithmLabels();
dynamicFieldFunctionRuleAlgorithms = policyAdapter.getDynamicRuleAlgorithmCombo();
dynamicFieldOneRuleAlgorithms = policyAdapter.getDynamicRuleAlgorithmField1();
dynamicFieldTwoRuleAlgorithms = policyAdapter.getDynamicRuleAlgorithmField2();
-
+
// Rule attributes are optional and dynamic so check and add them to condition.
if (dynamicLabelRuleAlgorithms != null && !dynamicLabelRuleAlgorithms.isEmpty()) {
boolean isCompound = false;
@@ -222,7 +225,7 @@ public class ActionPolicy extends Policy {
if (dynamicFieldOneRuleAlgorithms.get(index).equals(labelAttr)) {
ApplyType actionApply = new ApplyType();
- String selectedFunction = dynamicFieldFunctionRuleAlgorithms.get(index).toString();
+ String selectedFunction = dynamicFieldFunctionRuleAlgorithms.get(index);
String value1 = dynamicFieldOneRuleAlgorithms.get(index);
String value2 = dynamicFieldTwoRuleAlgorithms.get(index);
actionApply.setFunctionId(getFunctionDefinitionId(selectedFunction));
@@ -234,7 +237,8 @@ public class ActionPolicy extends Policy {
}
// if rule algorithm not a compound
if (!isCompound) {
- condition.setExpression(new ObjectFactory().createApply(getInnerActionApply(dynamicLabelRuleAlgorithms.get(index).toString())));
+ condition.setExpression(new ObjectFactory().createApply(getInnerActionApply(
+ dynamicLabelRuleAlgorithms.get(index))));
}
rule.setCondition(condition);
}
@@ -242,34 +246,35 @@ public class ActionPolicy extends Policy {
rule.setObligationExpressions(getObligationExpressions());
actionPolicy.getCombinerParametersOrRuleCombinerParametersOrVariableDefinition().add(rule);
policyAdapter.setPolicyData(actionPolicy);
- } else {
- PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + "Unsupported data object." + policyAdapter.getData().getClass().getCanonicalName());
- }
+ } else {
+ PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + "Unsupported data object." + Objects
+ .requireNonNull(policyAdapter.getData()).getClass().getCanonicalName());
+ }
setPreparedToSave(true);
return true;
}
-
+
private static synchronized void setAttribute(boolean b) {
isAttribute = b;
}
// Saving the json Configurations file if exists at server location for action policy.
private void saveActionBody(String policyName, String actionBodyData) {
- if(policyName.endsWith(".xml")){
- policyName = policyName.replace(".xml", "");
- }
- File file = new File(ACTION_HOME+ File.separator + policyName + ".json");
- try(BufferedWriter bw = new BufferedWriter(new FileWriter(file.getAbsoluteFile()))) {
+ if (policyName.endsWith(".xml")) {
+ policyName = policyName.replace(".xml", "");
+ }
+ File file = new File(ACTION_HOME + File.separator + policyName + ".json");
+ try (BufferedWriter bw = new BufferedWriter(new FileWriter(file.getAbsoluteFile()))) {
bw.write(actionBodyData);
if (LOGGER.isInfoEnabled()) {
LOGGER.info("Action Body is succesfully saved at " + file.getAbsolutePath());
}
} catch (IOException e) {
- LOGGER.error("Exception Occured"+e);
+ LOGGER.error("Exception Occured" + e);
}
}
-
+
// Data required for obligation part is setting here.
private ObligationExpressionsType getObligationExpressions() {
ObligationExpressionsType obligations = new ObligationExpressionsType();
@@ -331,7 +336,7 @@ public class ActionPolicy extends Policy {
obligation.getAttributeAssignmentExpression().add(assignmentMethod);
// Add JSON_URL Assignment:
- String actionBody = policyAdapter.getActionBody();
+ String actionBody = policyAdapter.getActionBody();
if (actionBody != null) {
AttributeAssignmentExpressionType assignmentJsonURL = new AttributeAssignmentExpressionType();
assignmentJsonURL.setAttributeId(BODY_ATTRIBUTEID);
@@ -339,28 +344,29 @@ public class ActionPolicy extends Policy {
AttributeValueType jsonURLAttributeValue = new AttributeValueType();
jsonURLAttributeValue.setDataType(URI_DATATYPE);
- jsonURLAttributeValue.getContent().add(CONFIG_URL + "/Action/" + policyName + ".json");
+ jsonURLAttributeValue.getContent().add(CONFIG_URL + "/Action/" + policyName + ".json");
assignmentJsonURL.setExpression(new ObjectFactory().createAttributeValue(jsonURLAttributeValue));
obligation.getAttributeAssignmentExpression().add(assignmentJsonURL);
}
String headerVal = policyAdapter.getActionDictHeader();
- if(headerVal != null && !headerVal.trim().isEmpty()){
+ if (headerVal != null && !headerVal.trim().isEmpty()) {
// parse it on : to get number of headers
String[] result = headerVal.split(":");
- for (String eachString : result){
+ for (String eachString : result) {
// parse each value on =
String[] textFieldVals = eachString.split("=");
- obligation.getAttributeAssignmentExpression().add(addDynamicHeaders(textFieldVals[0], textFieldVals[1]));
+ obligation.getAttributeAssignmentExpression()
+ .add(addDynamicHeaders(textFieldVals[0], textFieldVals[1]));
}
}
-
+
obligations.getObligationExpression().add(obligation);
return obligations;
}
-
+
// if compound setting the inner apply here
protected ApplyType getInnerActionApply(String value1Label) {
ApplyType actionApply = new ApplyType();
@@ -368,7 +374,7 @@ public class ActionPolicy extends Policy {
// check the index for the label.
for (String labelAttr : dynamicLabelRuleAlgorithms) {
if (labelAttr.equals(value1Label)) {
- String value1 = dynamicFieldOneRuleAlgorithms.get(index).toString();
+ String value1 = dynamicFieldOneRuleAlgorithms.get(index);
// check if the row contains label again
for (String labelValue : dynamicLabelRuleAlgorithms) {
if (labelValue.equals(value1)) {
@@ -404,11 +410,15 @@ public class ActionPolicy extends Policy {
attributeDesignator2.setCategory(CATEGORY_RESOURCE);
// Here set actual field values
- attributeDesignator1.setAttributeId(value1.contains("resource:") ? value1.substring(9): value1.substring(8));
- attributeDesignator2.setAttributeId(value1.contains("resource:") ? value1.substring(9): value1.substring(8));
+ attributeDesignator1
+ .setAttributeId(value1.contains("resource:") ? value1.substring(9) : value1.substring(8));
+ attributeDesignator2
+ .setAttributeId(value1.contains("resource:") ? value1.substring(9) : value1.substring(8));
- innerActionApply1.getExpression().add(new ObjectFactory().createAttributeDesignator(attributeDesignator1));
- innerActionApply2.getExpression().add(new ObjectFactory().createAttributeDesignator(attributeDesignator2));
+ innerActionApply1.getExpression()
+ .add(new ObjectFactory().createAttributeDesignator(attributeDesignator1));
+ innerActionApply2.getExpression()
+ .add(new ObjectFactory().createAttributeDesignator(attributeDesignator2));
actionApply.getExpression().add(new ObjectFactory().createApply(innerActionApply1));
actionApply.getExpression().add(new ObjectFactory().createApply(innerActionApply2));
@@ -440,13 +450,16 @@ public class ActionPolicy extends Policy {
attributeDesignator.setAttributeId(attributeId);
}
actionConditionAttributeValue.getContent().add(attributeValue);
- innerActionApply.getExpression().add(new ObjectFactory().createAttributeDesignator(attributeDesignator));
+ innerActionApply.getExpression()
+ .add(new ObjectFactory().createAttributeDesignator(attributeDesignator));
// Decide the order of element based the values.
if (attributeId.equals(value1)) {
actionApply.getExpression().add(new ObjectFactory().createApply(innerActionApply));
- actionApply.getExpression().add(new ObjectFactory().createAttributeValue(actionConditionAttributeValue));
+ actionApply.getExpression()
+ .add(new ObjectFactory().createAttributeValue(actionConditionAttributeValue));
} else {
- actionApply.getExpression().add(new ObjectFactory().createAttributeValue(actionConditionAttributeValue));
+ actionApply.getExpression()
+ .add(new ObjectFactory().createAttributeValue(actionConditionAttributeValue));
actionApply.getExpression().add(new ObjectFactory().createApply(innerActionApply));
}
}
@@ -467,7 +480,7 @@ public class ActionPolicy extends Policy {
actionApply.getExpression().add(new ObjectFactory().createApply(getInnerActionApply(value2)));
return actionApply;
}
-
+
// Adding the dynamic headers if any
private AttributeAssignmentExpressionType addDynamicHeaders(String header, String value) {
AttributeAssignmentExpressionType assignmentHeaders = new AttributeAssignmentExpressionType();
@@ -486,10 +499,11 @@ public class ActionPolicy extends Policy {
public Object getCorrectPolicyDataObject() {
return policyAdapter.getPolicyData();
}
-
- public String getFunctionDefinitionId(String key){
- FunctionDefinition object = (FunctionDefinition) commonClassDao.getDataById(FunctionDefinition.class, "short_name", key);
- if(object != null){
+
+ public String getFunctionDefinitionId(String key) {
+ FunctionDefinition object =
+ (FunctionDefinition) commonClassDao.getDataById(FunctionDefinition.class, "short_name", key);
+ if (object != null) {
return object.getXacmlid();
}
return null;
diff --git a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/ClosedLoopPolicy.java b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/ClosedLoopPolicy.java
index e446c2af3..8ca4dfa01 100644
--- a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/ClosedLoopPolicy.java
+++ b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/ClosedLoopPolicy.java
@@ -7,9 +7,9 @@
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -54,7 +54,7 @@ import oasis.names.tc.xacml._3_0.core.schema.wd_17.MatchType;
import oasis.names.tc.xacml._3_0.core.schema.wd_17.ObjectFactory;
import oasis.names.tc.xacml._3_0.core.schema.wd_17.PolicyType;
import oasis.names.tc.xacml._3_0.core.schema.wd_17.RuleType;
-import oasis.names.tc.xacml._3_0.core.schema.wd_17.TargetType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.TargetType;
public class ClosedLoopPolicy extends Policy {
@@ -64,24 +64,24 @@ public class ClosedLoopPolicy extends Policy {
super();
}
- public ClosedLoopPolicy(PolicyRestAdapter policyAdapter){
+ public ClosedLoopPolicy(PolicyRestAdapter policyAdapter) {
this.policyAdapter = policyAdapter;
}
//save configuration of the policy based on the policyname
private void saveConfigurations(String policyName, String jsonBody) {
- if(policyName.endsWith(".xml")){
- policyName = policyName.replace(".xml", "");
- }
- try (PrintWriter out = new PrintWriter(CONFIG_HOME + File.separator+ policyName +".json")){
+ if (policyName.endsWith(".xml")) {
+ policyName = policyName.replace(".xml", "");
+ }
+ try (PrintWriter out = new PrintWriter(CONFIG_HOME + File.separator + policyName + ".json")) {
String body = jsonBody;
//Remove the trapMaxAge in Verification Signature
body = body.replace(",\"trapMaxAge\":null", "");
this.policyAdapter.setJsonBody(body);
out.println(body);
} catch (Exception e) {
- LOGGER.error("Exception Occured while writing Configuration Data"+e);
+ LOGGER.error("Exception Occured while writing Configuration Data" + e);
}
}
@@ -107,12 +107,12 @@ public class ClosedLoopPolicy extends Policy {
public Map<String, String> savePolicies() throws PAPException {
Map<String, String> successMap = new HashMap<>();
- if(isPolicyExists()){
+ if (isPolicyExists()) {
successMap.put("EXISTS", "This Policy already exist on the PAP");
return successMap;
}
- if(!isPreparedToSave()){
+ if (!isPreparedToSave()) {
prepareToSave();
}
@@ -120,16 +120,16 @@ public class ClosedLoopPolicy extends Policy {
Path newPolicyPath = null;
newPolicyPath = Paths.get(policyAdapter.getNewFileName());
- successMap = createPolicy(newPolicyPath,getCorrectPolicyDataObject());
+ successMap = createPolicy(newPolicyPath, getCorrectPolicyDataObject());
return successMap;
}
//This is the method for preparing the policy for saving. We have broken it out
//separately because the fully configured policy is used for multiple things
@Override
- public boolean prepareToSave() throws PAPException{
+ public boolean prepareToSave() throws PAPException {
- if(isPreparedToSave()){
+ if (isPreparedToSave()) {
//we have already done this
return true;
}
@@ -166,9 +166,9 @@ public class ClosedLoopPolicy extends Policy {
AllOfType allOfOne = new AllOfType();
String fileName = policyAdapter.getNewFileName();
- String name = fileName.substring(fileName.lastIndexOf("\\") + 1, fileName.length());
+ String name = fileName.substring(fileName.lastIndexOf("\\") + 1);
if ((name == null) || (name.equals(""))) {
- name = fileName.substring(fileName.lastIndexOf("/") + 1, fileName.length());
+ name = fileName.substring(fileName.lastIndexOf("/") + 1);
}
allOfOne.getMatch().add(createMatch("PolicyName", name));
AllOfType allOf = new AllOfType();
@@ -215,7 +215,8 @@ public class ClosedLoopPolicy extends Policy {
try {
accessURI = new URI(ACTION_ID);
} catch (URISyntaxException e) {
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, "CreateClosedLoopPolicy", "Exception creating ACCESS URI");
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, "CreateClosedLoopPolicy",
+ "Exception creating ACCESS URI");
}
accessAttributeDesignator.setCategory(CATEGORY_ACTION);
accessAttributeDesignator.setDataType(STRING_DATATYPE);
@@ -234,7 +235,8 @@ public class ClosedLoopPolicy extends Policy {
try {
closedURI = new URI(RESOURCE_ID);
} catch (URISyntaxException e) {
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, "CreateClosedLoopPolicy", "Exception creating closed URI");
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, "CreateClosedLoopPolicy",
+ "Exception creating closed URI");
}
closedAttributeDesignator.setCategory(CATEGORY_RESOURCE);
closedAttributeDesignator.setDataType(STRING_DATATYPE);
@@ -291,7 +293,7 @@ public class ClosedLoopPolicy extends Policy {
AttributeValueType AttributeValue = new AttributeValueType();
AttributeValue.setDataType(URI_DATATYPE);
- String content = CONFIG_URL +"/Config/" + getConfigFile(policyName);
+ String content = CONFIG_URL + "/Config/" + getConfigFile(policyName);
System.out.println("URL value :" + content);
AttributeValue.getContent().add(content);
assignment2.setExpression(new ObjectFactory().createAttributeValue(AttributeValue));
@@ -306,9 +308,9 @@ public class ClosedLoopPolicy extends Policy {
attributeValue3.setDataType(STRING_DATATYPE);
fileName = FilenameUtils.removeExtension(fileName);
fileName = fileName + ".xml";
- String name = fileName.substring(fileName.lastIndexOf("\\") + 1, fileName.length());
+ String name = fileName.substring(fileName.lastIndexOf("\\") + 1);
if ((name == null) || (name.equals(""))) {
- name = fileName.substring(fileName.lastIndexOf("/") + 1, fileName.length());
+ name = fileName.substring(fileName.lastIndexOf("/") + 1);
}
attributeValue3.getContent().add(name);
assignment3.setExpression(new ObjectFactory().createAttributeValue(attributeValue3));
@@ -388,7 +390,6 @@ public class ClosedLoopPolicy extends Policy {
advice.getAttributeAssignmentExpression().add(assignment9);
-
advices.getAdviceExpression().add(advice);
return advices;
}
diff --git a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/ConfigPolicy.java b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/ConfigPolicy.java
index 6c66898e3..0cd263800 100644
--- a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/ConfigPolicy.java
+++ b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/ConfigPolicy.java
@@ -8,9 +8,9 @@
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -75,20 +75,20 @@ public class ConfigPolicy extends Policy {
super();
}
- public ConfigPolicy(PolicyRestAdapter policyAdapter){
+ public ConfigPolicy(PolicyRestAdapter policyAdapter) {
this.policyAdapter = policyAdapter;
}
// Saving the Configurations file at server location for config policy.
protected void saveConfigurations(String policyName) {
String fileName = getConfigFile(policyName);
- try(BufferedWriter bw = new BufferedWriter(new FileWriter(CONFIG_HOME + File.separator + fileName))) {
+ try (BufferedWriter bw = new BufferedWriter(new FileWriter(CONFIG_HOME + File.separator + fileName))) {
bw.write(configBodyData);
if (LOGGER.isDebugEnabled()) {
LOGGER.debug("Configuration is succesfully saved");
}
} catch (IOException e) {
- LOGGER.error("Exception Occured while writing Configuration Data"+e);
+ LOGGER.error("Exception Occured while writing Configuration Data" + e);
}
}
@@ -144,7 +144,7 @@ public class ConfigPolicy extends Policy {
isValidForm = false;
}
} else if (id.equals(PROPERTIES_CONFIG)) {
- if (!PolicyUtils.isPropValid(configBodyData)||configBodyData.equals("")) {
+ if (!PolicyUtils.isPropValid(configBodyData) || configBodyData.equals("")) {
isValidForm = false;
}
} else if (id.equals(OTHER_CONFIG)) {
@@ -161,12 +161,12 @@ public class ConfigPolicy extends Policy {
public Map<String, String> savePolicies() throws PAPException {
Map<String, String> successMap = new HashMap<>();
- if(isPolicyExists()){
+ if (isPolicyExists()) {
successMap.put("EXISTS", "This Policy already exist on the PAP");
return successMap;
}
- if(!isPreparedToSave()){
+ if (!isPreparedToSave()) {
//Prep and configure the policy for saving
prepareToSave();
}
@@ -174,16 +174,16 @@ public class ConfigPolicy extends Policy {
// Until here we prepared the data and here calling the method to create xml.
Path newPolicyPath = null;
newPolicyPath = Paths.get(policyAdapter.getNewFileName());
- successMap = createPolicy(newPolicyPath,getCorrectPolicyDataObject());
+ successMap = createPolicy(newPolicyPath, getCorrectPolicyDataObject());
return successMap;
}
//This is the method for preparing the policy for saving. We have broken it out
//separately because the fully configured policy is used for multiple things
@Override
- public boolean prepareToSave() throws PAPException{
+ public boolean prepareToSave() throws PAPException {
- if(isPreparedToSave()){
+ if (isPreparedToSave()) {
return true;
}
@@ -214,9 +214,9 @@ public class ConfigPolicy extends Policy {
AllOfType allOfOne = new AllOfType();
String fileName = policyAdapter.getNewFileName();
- String name = fileName.substring(fileName.lastIndexOf("\\") + 1, fileName.length());
+ String name = fileName.substring(fileName.lastIndexOf("\\") + 1);
if ((name == null) || (name.equals(""))) {
- name = fileName.substring(fileName.lastIndexOf("/") + 1, fileName.length());
+ name = fileName.substring(fileName.lastIndexOf("/") + 1);
}
allOfOne.getMatch().add(createMatch("PolicyName", name));
AllOfType allOf = new AllOfType();
@@ -269,9 +269,9 @@ public class ConfigPolicy extends Policy {
accessMatch.setAttributeValue(accessAttributeValue);
AttributeDesignatorType accessAttributeDesignator = new AttributeDesignatorType();
URI accessURI = null;
- try{
+ try {
accessURI = new URI(ACTION_ID);
- }catch(URISyntaxException e){
+ } catch (URISyntaxException e) {
PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, e, "ConfigPolicy", "Exception creating ACCESS URI");
}
accessAttributeDesignator.setCategory(CATEGORY_ACTION);
@@ -288,9 +288,9 @@ public class ConfigPolicy extends Policy {
configMatch.setAttributeValue(configAttributeValue);
AttributeDesignatorType configAttributeDesignator = new AttributeDesignatorType();
URI configURI = null;
- try{
+ try {
configURI = new URI(RESOURCE_ID);
- }catch(URISyntaxException e){
+ } catch (URISyntaxException e) {
PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, e, "ConfigPolicy", "Exception creating Config URI");
}
configAttributeDesignator.setCategory(CATEGORY_RESOURCE);
@@ -365,9 +365,9 @@ public class ConfigPolicy extends Policy {
fileName = FilenameUtils.removeExtension(fileName);
fileName = fileName + ".xml";
- String name = fileName.substring(fileName.lastIndexOf("\\") + 1, fileName.length());
+ String name = fileName.substring(fileName.lastIndexOf("\\") + 1);
if ((name == null) || (name.equals(""))) {
- name = fileName.substring(fileName.lastIndexOf("/") + 1, fileName.length());
+ name = fileName.substring(fileName.lastIndexOf("/") + 1);
}
attributeValue3.getContent().add(name);
assignment3.setExpression(new ObjectFactory().createAttributeValue(attributeValue3));
diff --git a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/CreateBrmsParamPolicy.java b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/CreateBrmsParamPolicy.java
index 3d9a779e3..6a0c92650 100644
--- a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/CreateBrmsParamPolicy.java
+++ b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/CreateBrmsParamPolicy.java
@@ -7,9 +7,9 @@
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -66,7 +66,7 @@ import oasis.names.tc.xacml._3_0.core.schema.wd_17.MatchType;
import oasis.names.tc.xacml._3_0.core.schema.wd_17.ObjectFactory;
import oasis.names.tc.xacml._3_0.core.schema.wd_17.PolicyType;
import oasis.names.tc.xacml._3_0.core.schema.wd_17.RuleType;
-import oasis.names.tc.xacml._3_0.core.schema.wd_17.TargetType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.TargetType;
public class CreateBrmsParamPolicy extends Policy {
@@ -84,37 +84,36 @@ public class CreateBrmsParamPolicy extends Policy {
public String expandConfigBody(String ruleContents, Map<String, String> brmsParamBody) {
- Map<String,String> copyMap=new HashMap<>();
+ Map<String, String> copyMap = new HashMap<>();
copyMap.putAll(brmsParamBody);
copyMap.put("policyName", policyName.substring(0, policyName.replace(".xml", "").lastIndexOf('.')));
copyMap.put("policyScope", policyAdapter.getDomainDir());
- copyMap.put("policyVersion",policyAdapter.getHighestVersion().toString());
- copyMap.put("unique", ("p"+policyName+UUID.randomUUID().toString()).replaceAll("[^A-Za-z0-9]", ""));
+ copyMap.put("policyVersion", policyAdapter.getHighestVersion().toString());
+ copyMap.put("unique", ("p" + policyName + UUID.randomUUID().toString()).replaceAll("[^A-Za-z0-9]", ""));
//Finding all the keys in the Map data-structure.
Iterator<String> iterator = copyMap.keySet().iterator();
Pattern p;
Matcher m;
- while(iterator.hasNext()) {
+ while (iterator.hasNext()) {
//Converting the first character of the key into a lower case.
- String input= iterator.next();
- String output = Character.toLowerCase(input.charAt(0)) +
+ String input = iterator.next();
+ String output = Character.toLowerCase(input.charAt(0)) +
(input.length() > 1 ? input.substring(1) : "");
//Searching for a pattern in the String using the key.
- p=Pattern.compile("\\$\\{"+output+"\\}");
- m=p.matcher(ruleContents);
+ p = Pattern.compile("\\$\\{" + output + "\\}");
+ m = p.matcher(ruleContents);
//Replacing the value with the inputs provided by the user in the editor.
String finalInput = copyMap.get(input);
- if(finalInput.contains("$")){
+ if (finalInput.contains("$")) {
finalInput = finalInput.replace("$", "\\$");
}
- ruleContents=m.replaceAll(finalInput);
+ ruleContents = m.replaceAll(finalInput);
}
return ruleContents;
}
-
// Utility to read json data from the existing file to a string
static String readFile(String path, Charset encoding) throws IOException {
byte[] encoded = Files.readAllBytes(Paths.get(path));
@@ -127,13 +126,14 @@ public class CreateBrmsParamPolicy extends Policy {
policyName = policyName.substring(0, policyName.lastIndexOf(".xml"));
}
try (PrintWriter out = new PrintWriter(CONFIG_HOME + File.separator + policyName + ".txt")) {
- String expandedBody=expandConfigBody(ruleBody,policyAdapter.getBrmsParamBody());
+ String expandedBody = expandConfigBody(ruleBody, policyAdapter.getBrmsParamBody());
out.println(expandedBody);
policyAdapter.setJsonBody(expandedBody);
policyAdapter.setConfigBodyData(expandedBody);
out.close();
} catch (Exception e) {
- PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "CreateBrmsParamPolicy", "Exception saving configuration file");
+ PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "CreateBrmsParamPolicy",
+ "Exception saving configuration file");
}
}
@@ -163,7 +163,7 @@ public class CreateBrmsParamPolicy extends Policy {
public Map<String, String> savePolicies() throws PAPException {
Map<String, String> successMap = new HashMap<>();
- if(isPolicyExists()){
+ if (isPolicyExists()) {
successMap.put("EXISTS", "This Policy already exist on the PAP");
return successMap;
}
@@ -175,8 +175,8 @@ public class CreateBrmsParamPolicy extends Policy {
// xml.
Path newPolicyPath = null;
newPolicyPath = Paths.get(policyAdapter.getNewFileName());
- successMap = createPolicy(newPolicyPath,getCorrectPolicyDataObject());
- if(successMap == null){
+ successMap = createPolicy(newPolicyPath, getCorrectPolicyDataObject());
+ if (successMap == null) {
successMap = new HashMap<>();
PolicyLogger.error("Failed to Update the Database Dictionary Tables.");
successMap.put("error", "DB UPDATE");
@@ -184,14 +184,14 @@ public class CreateBrmsParamPolicy extends Policy {
return successMap;
}
- private String getValueFromDictionary(String templateName){
+ private String getValueFromDictionary(String templateName) {
String ruleTemplate = null;
CommonClassDaoImpl dbConnection = new CommonClassDaoImpl();
- String queryString="from BRMSParamTemplate where param_template_name= :templateName";
+ String queryString = "from BRMSParamTemplate where param_template_name= :templateName";
SimpleBindings params = new SimpleBindings();
params.put("templateName", templateName);
List<Object> result = dbConnection.getDataByQuery(queryString, params);
- if(!result.isEmpty()){
+ if (!result.isEmpty()) {
BRMSParamTemplate template = (BRMSParamTemplate) result.get(0);
ruleTemplate = template.getRule();
}
@@ -199,14 +199,14 @@ public class CreateBrmsParamPolicy extends Policy {
}
protected Map<String, String> findType(String rule) {
- Map<String, String> mapFieldType= new HashMap<>();
- if(rule!=null){
+ Map<String, String> mapFieldType = new HashMap<>();
+ if (rule != null) {
try {
StringBuilder params = new StringBuilder();
Boolean flag = false;
Boolean comment = false;
String lines[] = rule.split("\n");
- for(String line : lines){
+ for (String line : lines) {
if (line.isEmpty() || line.startsWith("//")) {
continue;
}
@@ -214,8 +214,8 @@ public class CreateBrmsParamPolicy extends Policy {
comment = true;
continue;
}
- if (line.contains("//") && !(line.contains("http://") || line.contains("https://"))){
- line = line.split("\\/\\/")[0];
+ if (line.contains("//") && !(line.contains("http://") || line.contains("https://"))) {
+ line = line.split("\\/\\/")[0];
}
if (line.contains("/*")) {
comment = true;
@@ -264,7 +264,7 @@ public class CreateBrmsParamPolicy extends Policy {
if (i == 0) {
caption = components[i];
}
- if(caption.equals("")){
+ if (caption.equals("")) {
break;
}
String nextComponent = "";
@@ -286,7 +286,8 @@ public class CreateBrmsParamPolicy extends Policy {
}
}
} catch (Exception e) {
- PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "CreateBrmsParamPolicy", "Exception parsing file in findType");
+ PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "CreateBrmsParamPolicy",
+ "Exception parsing file in findType");
}
}
return mapFieldType;
@@ -322,30 +323,32 @@ public class CreateBrmsParamPolicy extends Policy {
policyName = policyAdapter.getNewFileName();
if (policyAdapter.getData() != null) {
- Map<String,String> ruleAndUIValue= policyAdapter.getBrmsParamBody();
- String templateValue= ruleAndUIValue.get("templateName");
- String valueFromDictionary= getValueFromDictionary(templateValue);
+ Map<String, String> ruleAndUIValue = policyAdapter.getBrmsParamBody();
+ String templateValue = ruleAndUIValue.get("templateName");
+ String valueFromDictionary = getValueFromDictionary(templateValue);
StringBuilder body = new StringBuilder();
try {
- body.append("/* Autogenerated Code Please Don't change/remove this comment section. This is for the UI purpose. \n\t " +
- "<$%BRMSParamTemplate=" + templateValue + "%$> \n");
+ body.append(
+ "/* Autogenerated Code Please Don't change/remove this comment section. This is for the UI " +
+ "purpose. \n\t " +
+ "<$%BRMSParamTemplate=" + templateValue + "%$> \n");
body.append("<%$Values=");
for (Map.Entry<String, String> entry : ruleAndUIValue.entrySet()) {
String uiKey = entry.getKey();
- if(!"templateName".equals(uiKey)) {
- body.append(uiKey+":-:"+entry.getValue()+":|:");
+ if (!"templateName".equals(uiKey)) {
+ body.append(uiKey + ":-:" + entry.getValue() + ":|:");
}
}
body.append("$%> \n*/ \n");
body.append(valueFromDictionary + "\n");
- }
- catch (Exception e) {
- PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "CreateBrmsParamPolicy", "Exception saving policy");
+ } catch (Exception e) {
+ PolicyLogger
+ .error(MessageCodes.ERROR_PROCESS_FLOW, e, "CreateBrmsParamPolicy", "Exception saving policy");
}
- saveConfigurations(policyName,body.toString());
+ saveConfigurations(policyName, body.toString());
// Make sure the filename ends with an extension
if (!policyName.endsWith(".xml")) {
@@ -361,10 +364,10 @@ public class CreateBrmsParamPolicy extends Policy {
AllOfType allOfOne = new AllOfType();
String fileName = policyAdapter.getNewFileName();
- String name = fileName.substring(fileName.lastIndexOf("\\") + 1, fileName.length());
+ String name = fileName.substring(fileName.lastIndexOf("\\") + 1);
if ((name == null) || (name.equals(""))) {
- name = fileName.substring(fileName.lastIndexOf("/") + 1,
- fileName.length());
+ name = fileName.substring(fileName.lastIndexOf("/") + 1
+ );
}
allOfOne.getMatch().add(createMatch("PolicyName", name));
@@ -411,7 +414,8 @@ public class CreateBrmsParamPolicy extends Policy {
try {
accessURI = new URI(ACTION_ID);
} catch (URISyntaxException e) {
- PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, e, "CreateBrmsParamPolicy", "Exception creating ACCESS URI");
+ PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, e, "CreateBrmsParamPolicy",
+ "Exception creating ACCESS URI");
}
accessAttributeDesignator.setCategory(CATEGORY_ACTION);
accessAttributeDesignator.setDataType(STRING_DATATYPE);
@@ -433,7 +437,8 @@ public class CreateBrmsParamPolicy extends Policy {
try {
configURI = new URI(RESOURCE_ID);
} catch (URISyntaxException e) {
- PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, e, "CreateBrmsParamPolicy", "Exception creating Config URI");
+ PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, e, "CreateBrmsParamPolicy",
+ "Exception creating Config URI");
}
configAttributeDesignator.setCategory(CATEGORY_RESOURCE);
@@ -469,7 +474,7 @@ public class CreateBrmsParamPolicy extends Policy {
// Data required for Advice part is setting here.
private AdviceExpressionsType getAdviceExpressions(int version,
- String fileName) {
+ String fileName) {
//Policy Config ID Assignment
AdviceExpressionsType advices = new AdviceExpressionsType();
@@ -497,7 +502,7 @@ public class CreateBrmsParamPolicy extends Policy {
AttributeValueType attributeValue = new AttributeValueType();
attributeValue.setDataType(URI_DATATYPE);
- String content = CONFIG_URL + "/Config/"+ getConfigFile(policyName);
+ String content = CONFIG_URL + "/Config/" + getConfigFile(policyName);
attributeValue.getContent().add(content);
assignment2.setExpression(new ObjectFactory()
@@ -513,11 +518,11 @@ public class CreateBrmsParamPolicy extends Policy {
attributeValue3.setDataType(STRING_DATATYPE);
fileName = FilenameUtils.removeExtension(fileName);
fileName = fileName + ".xml";
- String name = fileName.substring(fileName.lastIndexOf("\\") + 1,
- fileName.length());
+ String name = fileName.substring(fileName.lastIndexOf("\\") + 1
+ );
if ((name == null) || (name.equals(""))) {
- name = fileName.substring(fileName.lastIndexOf("/") + 1,
- fileName.length());
+ name = fileName.substring(fileName.lastIndexOf("/") + 1
+ );
}
attributeValue3.getContent().add(name);
assignment3.setExpression(new ObjectFactory()
@@ -551,7 +556,7 @@ public class CreateBrmsParamPolicy extends Policy {
//Config Name Assignment
AttributeAssignmentExpressionType assignment6 = new AttributeAssignmentExpressionType();
- assignment6.setAttributeId("matching:" +CONFIGID);
+ assignment6.setAttributeId("matching:" + CONFIGID);
assignment6.setCategory(CATEGORY_RESOURCE);
assignment6.setIssuer("");
AttributeValueType configNameAttributeValue6 = new AttributeValueType();
@@ -560,30 +565,32 @@ public class CreateBrmsParamPolicy extends Policy {
assignment6.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue6));
advice.getAttributeAssignmentExpression().add(assignment6);
// Adding Controller Information.
- if(policyAdapter.getBrmsController()!=null){
+ if (policyAdapter.getBrmsController() != null) {
BRMSDictionaryController brmsDicitonaryController = new BRMSDictionaryController();
advice.getAttributeAssignmentExpression().add(
- createResponseAttributes("controller:"+ policyAdapter.getBrmsController(),
- brmsDicitonaryController.getControllerDataByID(policyAdapter.getBrmsController()).getController()));
+ createResponseAttributes("controller:" + policyAdapter.getBrmsController(),
+ brmsDicitonaryController.getControllerDataByID(policyAdapter.getBrmsController())
+ .getController()));
}
-
+
// Adding Dependencies.
- if(policyAdapter.getBrmsDependency()!=null){
+ if (policyAdapter.getBrmsDependency() != null) {
BRMSDictionaryController brmsDicitonaryController = new BRMSDictionaryController();
ArrayList<String> dependencies = new ArrayList<>();
StringBuilder key = new StringBuilder();
- for(String dependencyName: policyAdapter.getBrmsDependency()){
+ for (String dependencyName : policyAdapter.getBrmsDependency()) {
dependencies.add(brmsDicitonaryController.getDependencyDataByID(dependencyName).getDependency());
key.append(dependencyName + ",");
}
advice.getAttributeAssignmentExpression().add(
- createResponseAttributes("dependencies:"+key.toString(), dependencies.toString()));
+ createResponseAttributes("dependencies:" + key.toString(), dependencies.toString()));
}
-
+
// Dynamic Field Config Attributes.
Map<String, String> dynamicFieldConfigAttributes = policyAdapter.getDynamicFieldConfigAttributes();
for (Entry<String, String> map : dynamicFieldConfigAttributes.entrySet()) {
- advice.getAttributeAssignmentExpression().add(createResponseAttributes("key:"+map.getKey(), map.getValue()));
+ advice.getAttributeAssignmentExpression()
+ .add(createResponseAttributes("key:" + map.getKey(), map.getValue()));
}
//Risk Attributes
@@ -644,7 +651,7 @@ public class CreateBrmsParamPolicy extends Policy {
return policyAdapter.getData();
}
- private AttributeAssignmentExpressionType createResponseAttributes(String key, String value){
+ private AttributeAssignmentExpressionType createResponseAttributes(String key, String value) {
AttributeAssignmentExpressionType assignment7 = new AttributeAssignmentExpressionType();
assignment7.setAttributeId(key);
assignment7.setCategory(CATEGORY_RESOURCE);
diff --git a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/CreateBrmsRawPolicy.java b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/CreateBrmsRawPolicy.java
index 7290f4cd8..efa28b2bb 100644
--- a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/CreateBrmsRawPolicy.java
+++ b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/CreateBrmsRawPolicy.java
@@ -7,9 +7,9 @@
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -60,6 +60,8 @@ import oasis.names.tc.xacml._3_0.core.schema.wd_17.TargetType;
public class CreateBrmsRawPolicy extends Policy {
+ private static final String EMPTY_STRING = "";
+
public CreateBrmsRawPolicy() {
super();
}
@@ -73,14 +75,15 @@ public class CreateBrmsRawPolicy extends Policy {
// Saving the Configurations file at server location for CreateBrmsRawPolicy policy.
protected void saveConfigurations(String policyName, String jsonBody) {
- if (policyName.endsWith(".xml")) {
- policyName = policyName.substring(0,
- policyName.lastIndexOf(".xml"));
- }
- try (PrintWriter out = new PrintWriter(CONFIG_HOME + File.separator + policyName + ".txt")){
+ if (policyName.endsWith(".xml")) {
+ policyName = policyName.substring(0,
+ policyName.lastIndexOf(".xml"));
+ }
+ try (PrintWriter out = new PrintWriter(CONFIG_HOME + File.separator + policyName + ".txt")) {
out.println(jsonBody);
} catch (Exception e) {
- PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "CreateBrmsRawPolicy", "Exception saving configurations file");
+ PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "CreateBrmsRawPolicy",
+ "Exception saving configurations file");
}
}
@@ -117,7 +120,7 @@ public class CreateBrmsRawPolicy extends Policy {
public Map<String, String> savePolicies() throws PAPException {
Map<String, String> successMap = new HashMap<>();
- if(isPolicyExists()){
+ if (isPolicyExists()) {
successMap.put("EXISTS", "This Policy already exist on the PAP");
return successMap;
}
@@ -145,7 +148,7 @@ public class CreateBrmsRawPolicy extends Policy {
// separately because the fully configured policy is used for multiple
// things
@Override
- public boolean prepareToSave() throws PAPException {
+ public boolean prepareToSave() {
if (isPreparedToSave()) {
// we have already done this
@@ -158,7 +161,7 @@ public class CreateBrmsRawPolicy extends Policy {
// Create the Instance for pojo, PolicyType object is used in
// marshalling.
- if (policyAdapter.getPolicyType().equals("Config")) {
+ if ("Config".equals(policyAdapter.getPolicyType())) {
PolicyType policyConfig = new PolicyType();
policyConfig.setVersion(Integer.toString(version));
@@ -170,12 +173,11 @@ public class CreateBrmsRawPolicy extends Policy {
policyName = policyAdapter.getNewFileName();
if (policyAdapter.getData() != null) {
- //String jsonBody = policyAdapter.getJsonBody();
- String configBody=policyAdapter.getConfigBodyData();
+ String configBody = policyAdapter.getConfigBodyData();
saveConfigurations(policyName, configBody);
// Make sure the filename ends with an extension
- if (policyName.endsWith(".xml") == false) {
+ if (!policyName.endsWith(".xml")) {
policyName = policyName + ".xml";
}
@@ -187,10 +189,9 @@ public class CreateBrmsRawPolicy extends Policy {
AllOfType allOfOne = new AllOfType();
String fileName = policyAdapter.getNewFileName();
- String name = fileName.substring(fileName.lastIndexOf("\\") + 1, fileName.length());
- if ((name == null) || (name.equals(""))) {
- name = fileName.substring(fileName.lastIndexOf("/") + 1,
- fileName.length());
+ String name = fileName.substring(fileName.lastIndexOf("\\") + 1);
+ if (EMPTY_STRING.equals(name)) {
+ name = fileName.substring(fileName.lastIndexOf("/") + 1);
}
allOfOne.getMatch().add(createMatch("PolicyName", name));
@@ -213,10 +214,10 @@ public class CreateBrmsRawPolicy extends Policy {
anyOf.getAllOf().add(allOf);
TargetType target = new TargetType();
- ((TargetType) target).getAnyOf().add(anyOf);
+ target.getAnyOf().add(anyOf);
// Adding the target to the policy element
- configPolicy.setTarget((TargetType) target);
+ configPolicy.setTarget(target);
RuleType rule = new RuleType();
rule.setRuleId(policyAdapter.getRuleID());
@@ -237,7 +238,8 @@ public class CreateBrmsRawPolicy extends Policy {
try {
accessURI = new URI(ACTION_ID);
} catch (URISyntaxException e) {
- PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, e, "CreateBrmsRawPolicy", "Exception creating ACCESS URI");
+ PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, e, "CreateBrmsRawPolicy",
+ "Exception creating ACCESS URI");
}
accessAttributeDesignator.setCategory(CATEGORY_ACTION);
accessAttributeDesignator.setDataType(STRING_DATATYPE);
@@ -259,7 +261,8 @@ public class CreateBrmsRawPolicy extends Policy {
try {
configURI = new URI(RESOURCE_ID);
} catch (URISyntaxException e) {
- PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, e, "CreateBrmsRawPolicy", "Exception creating Config URI");
+ PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, e, "CreateBrmsRawPolicy",
+ "Exception creating Config URI");
}
configAttributeDesignator.setCategory(CATEGORY_RESOURCE);
@@ -296,7 +299,7 @@ public class CreateBrmsRawPolicy extends Policy {
// Data required for Advice part is setting here.
private AdviceExpressionsType getAdviceExpressions(int version,
- String fileName) {
+ String fileName) {
// Policy Config ID Assignment
AdviceExpressionsType advices = new AdviceExpressionsType();
@@ -307,7 +310,7 @@ public class CreateBrmsRawPolicy extends Policy {
AttributeAssignmentExpressionType assignment1 = new AttributeAssignmentExpressionType();
assignment1.setAttributeId("type");
assignment1.setCategory(CATEGORY_RESOURCE);
- assignment1.setIssuer("");
+ assignment1.setIssuer(EMPTY_STRING);
AttributeValueType configNameAttributeValue = new AttributeValueType();
configNameAttributeValue.setDataType(STRING_DATATYPE);
configNameAttributeValue.getContent().add("Configuration");
@@ -320,7 +323,7 @@ public class CreateBrmsRawPolicy extends Policy {
AttributeAssignmentExpressionType assignment2 = new AttributeAssignmentExpressionType();
assignment2.setAttributeId("URLID");
assignment2.setCategory(CATEGORY_RESOURCE);
- assignment2.setIssuer("");
+ assignment2.setIssuer(EMPTY_STRING);
AttributeValueType AttributeValue = new AttributeValueType();
AttributeValue.setDataType(URI_DATATYPE);
@@ -335,17 +338,15 @@ public class CreateBrmsRawPolicy extends Policy {
AttributeAssignmentExpressionType assignment3 = new AttributeAssignmentExpressionType();
assignment3.setAttributeId("PolicyName");
assignment3.setCategory(CATEGORY_RESOURCE);
- assignment3.setIssuer("");
+ assignment3.setIssuer(EMPTY_STRING);
AttributeValueType attributeValue3 = new AttributeValueType();
attributeValue3.setDataType(STRING_DATATYPE);
fileName = FilenameUtils.removeExtension(fileName);
fileName = fileName + ".xml";
System.out.println(fileName);
- String name = fileName.substring(fileName.lastIndexOf("\\") + 1,
- fileName.length());
- if ((name == null) || (name.equals(""))) {
- name = fileName.substring(fileName.lastIndexOf("/") + 1,
- fileName.length());
+ String name = fileName.substring(fileName.lastIndexOf("\\") + 1);
+ if (EMPTY_STRING.equals(name)) {
+ name = fileName.substring(fileName.lastIndexOf("/") + 1);
}
System.out.println(name);
attributeValue3.getContent().add(name);
@@ -357,7 +358,7 @@ public class CreateBrmsRawPolicy extends Policy {
AttributeAssignmentExpressionType assignment4 = new AttributeAssignmentExpressionType();
assignment4.setAttributeId("VersionNumber");
assignment4.setCategory(CATEGORY_RESOURCE);
- assignment4.setIssuer("");
+ assignment4.setIssuer(EMPTY_STRING);
AttributeValueType configNameAttributeValue4 = new AttributeValueType();
configNameAttributeValue4.setDataType(STRING_DATATYPE);
configNameAttributeValue4.getContent().add(Integer.toString(version));
@@ -369,7 +370,7 @@ public class CreateBrmsRawPolicy extends Policy {
AttributeAssignmentExpressionType assignment5 = new AttributeAssignmentExpressionType();
assignment5.setAttributeId("matching:" + ONAPID);
assignment5.setCategory(CATEGORY_RESOURCE);
- assignment5.setIssuer("");
+ assignment5.setIssuer(EMPTY_STRING);
AttributeValueType configNameAttributeValue5 = new AttributeValueType();
configNameAttributeValue5.setDataType(STRING_DATATYPE);
configNameAttributeValue5.getContent().add(policyAdapter.getOnapName());
@@ -382,7 +383,7 @@ public class CreateBrmsRawPolicy extends Policy {
AttributeAssignmentExpressionType assignment6 = new AttributeAssignmentExpressionType();
assignment6.setAttributeId("matching:" + CONFIGID);
assignment6.setCategory(CATEGORY_RESOURCE);
- assignment6.setIssuer("");
+ assignment6.setIssuer(EMPTY_STRING);
AttributeValueType configNameAttributeValue6 = new AttributeValueType();
configNameAttributeValue6.setDataType(STRING_DATATYPE);
configNameAttributeValue6.getContent().add(policyAdapter.getConfigName());
@@ -390,37 +391,40 @@ public class CreateBrmsRawPolicy extends Policy {
advice.getAttributeAssignmentExpression().add(assignment6);
// Adding Controller Information.
- if(policyAdapter.getBrmsController()!=null){
+ if (policyAdapter.getBrmsController() != null) {
BRMSDictionaryController brmsDicitonaryController = new BRMSDictionaryController();
advice.getAttributeAssignmentExpression().add(
- createResponseAttributes("controller:"+ policyAdapter.getBrmsController(),
- brmsDicitonaryController.getControllerDataByID(policyAdapter.getBrmsController()).getController()));
+ createResponseAttributes("controller:" + policyAdapter.getBrmsController(),
+ brmsDicitonaryController.getControllerDataByID(policyAdapter.getBrmsController())
+ .getController()));
}
-
+
// Adding Dependencies.
- if(policyAdapter.getBrmsDependency()!=null){
+ if (policyAdapter.getBrmsDependency() != null) {
BRMSDictionaryController brmsDicitonaryController = new BRMSDictionaryController();
ArrayList<String> dependencies = new ArrayList<>();
StringBuilder key = new StringBuilder();
- for(String dependencyName: policyAdapter.getBrmsDependency()){
+ for (String dependencyName : policyAdapter.getBrmsDependency()) {
dependencies.add(brmsDicitonaryController.getDependencyDataByID(dependencyName).getDependency());
- key.append(dependencyName + ",");
+ key.append(dependencyName).append(",");
}
advice.getAttributeAssignmentExpression().add(
- createResponseAttributes("dependencies:"+key.toString(), dependencies.toString()));
+ createResponseAttributes("dependencies:" + key.toString(), dependencies.toString()));
}
-
+
// Dynamic Field Config Attributes.
Map<String, String> dynamicFieldConfigAttributes = policyAdapter.getDynamicFieldConfigAttributes();
- for (String keyField : dynamicFieldConfigAttributes.keySet()) {
- advice.getAttributeAssignmentExpression().add(createResponseAttributes("key:"+keyField, dynamicFieldConfigAttributes.get(keyField)));
+ for (Map.Entry<String, String> entry : dynamicFieldConfigAttributes.entrySet()) {
+ String keyField = entry.getKey();
+ advice.getAttributeAssignmentExpression()
+ .add(createResponseAttributes("key:" + keyField, entry.getValue()));
}
//Risk Attributes
AttributeAssignmentExpressionType assignment8 = new AttributeAssignmentExpressionType();
assignment8.setAttributeId("RiskType");
assignment8.setCategory(CATEGORY_RESOURCE);
- assignment8.setIssuer("");
+ assignment8.setIssuer(EMPTY_STRING);
AttributeValueType configNameAttributeValue8 = new AttributeValueType();
configNameAttributeValue8.setDataType(STRING_DATATYPE);
@@ -432,7 +436,7 @@ public class CreateBrmsRawPolicy extends Policy {
AttributeAssignmentExpressionType assignment9 = new AttributeAssignmentExpressionType();
assignment9.setAttributeId("RiskLevel");
assignment9.setCategory(CATEGORY_RESOURCE);
- assignment9.setIssuer("");
+ assignment9.setIssuer(EMPTY_STRING);
AttributeValueType configNameAttributeValue9 = new AttributeValueType();
configNameAttributeValue9.setDataType(STRING_DATATYPE);
@@ -444,7 +448,7 @@ public class CreateBrmsRawPolicy extends Policy {
AttributeAssignmentExpressionType assignment10 = new AttributeAssignmentExpressionType();
assignment10.setAttributeId("guard");
assignment10.setCategory(CATEGORY_RESOURCE);
- assignment10.setIssuer("");
+ assignment10.setIssuer(EMPTY_STRING);
AttributeValueType configNameAttributeValue10 = new AttributeValueType();
configNameAttributeValue10.setDataType(STRING_DATATYPE);
@@ -456,7 +460,7 @@ public class CreateBrmsRawPolicy extends Policy {
AttributeAssignmentExpressionType assignment11 = new AttributeAssignmentExpressionType();
assignment11.setAttributeId("TTLDate");
assignment11.setCategory(CATEGORY_RESOURCE);
- assignment11.setIssuer("");
+ assignment11.setIssuer(EMPTY_STRING);
AttributeValueType configNameAttributeValue11 = new AttributeValueType();
configNameAttributeValue11.setDataType(STRING_DATATYPE);
@@ -474,11 +478,11 @@ public class CreateBrmsRawPolicy extends Policy {
return policyAdapter.getData();
}
- private AttributeAssignmentExpressionType createResponseAttributes(String key, String value){
+ private AttributeAssignmentExpressionType createResponseAttributes(String key, String value) {
AttributeAssignmentExpressionType assignment7 = new AttributeAssignmentExpressionType();
assignment7.setAttributeId(key);
assignment7.setCategory(CATEGORY_RESOURCE);
- assignment7.setIssuer("");
+ assignment7.setIssuer(EMPTY_STRING);
AttributeValueType configNameAttributeValue7 = new AttributeValueType();
configNameAttributeValue7.setDataType(STRING_DATATYPE);
configNameAttributeValue7.getContent().add(value);
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 1b786ed6a..cedefb04e 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
@@ -95,7 +95,7 @@ import com.att.research.xacml.api.pap.PDPPolicy;
import com.att.research.xacml.util.XACMLProperties;
public class PolicyDBDao {
- private static final Logger logger = FlexLogger.getLogger(PolicyDBDao.class);
+ private static final Logger logger = FlexLogger.getLogger(PolicyDBDao.class);
private List<?> otherServers;
private EntityManagerFactory emf;
private static PolicyDBDao currentInstance = null;
@@ -111,8 +111,10 @@ public class PolicyDBDao {
public static final String action = "Action";
private static final String groupIdVar = "groupId";
private static final String deletedVar = "deleted";
- private static final String groupEntitySelectQuery = "SELECT g FROM GroupEntity g WHERE g.groupId=:groupId AND g.deleted=:deleted";
- private static final String pdpEntitySelectQuery = "SELECT p FROM PdpEntity p WHERE p.pdpId=:pdpId AND p.deleted=:deleted";
+ private static final String groupEntitySelectQuery =
+ "SELECT g FROM GroupEntity g WHERE g.groupId=:groupId AND g.deleted=:deleted";
+ private static final String pdpEntitySelectQuery =
+ "SELECT p FROM PdpEntity p WHERE p.pdpId=:pdpId AND p.deleted=:deleted";
private static final String groupCannotBeFound = "The group could not be found with id ";
private static final String foundInDBNotDeleted = " were found in the database that are not deleted";
private static final String moreThanOnePDP = "Somehow, more than one pdp with the same id ";
@@ -135,14 +137,16 @@ public class PolicyDBDao {
/**
* Get an instance of a PolicyDBDao. It creates one if it does not exist.
* Only one instance is allowed to be created per server.
+ *
* @param emf The EntityFactoryManager to be used for database connections
* @return The new instance of PolicyDBDao or throw exception if the given emf is null.
- * @throws IllegalStateException if a PolicyDBDao has already been constructed. Call getPolicyDBDaoInstance() to get this.
+ * @throws IllegalStateException if a PolicyDBDao has already been constructed. Call getPolicyDBDaoInstance() to
+ * get this.
*/
- public static PolicyDBDao getPolicyDBDaoInstance(EntityManagerFactory emf){
- logger.debug("getPolicyDBDaoInstance(EntityManagerFactory emf) as getPolicyDBDaoInstance("+emf+") called");
- if(currentInstance == null){
- if(emf != null){
+ public static PolicyDBDao getPolicyDBDaoInstance(EntityManagerFactory emf) {
+ logger.debug("getPolicyDBDaoInstance(EntityManagerFactory emf) as getPolicyDBDaoInstance(" + emf + ") called");
+ if (currentInstance == null) {
+ if (emf != null) {
currentInstance = new PolicyDBDao(emf);
return currentInstance;
}
@@ -153,100 +157,108 @@ public class PolicyDBDao {
/**
* Gets the current instance of PolicyDBDao.
+ *
* @return The instance of PolicyDBDao or throws exception if the given instance is null.
- * @throws IllegalStateException if a PolicyDBDao instance is null. Call createPolicyDBDaoInstance(EntityManagerFactory emf) to get this.
+ * @throws IllegalStateException if a PolicyDBDao instance is null. Call createPolicyDBDaoInstance
+ * (EntityManagerFactory emf) to get this.
*/
- public static PolicyDBDao getPolicyDBDaoInstance(){
+ public static PolicyDBDao getPolicyDBDaoInstance() {
logger.debug("getPolicyDBDaoInstance() as getPolicyDBDaoInstance() called");
- if(currentInstance != null){
+ if (currentInstance != null) {
return currentInstance;
}
- throw new IllegalStateException("The PolicyDBDao.currentInstance is Null. Use getPolicyDBDao(EntityManagerFactory emf)");
+ throw new IllegalStateException(
+ "The PolicyDBDao.currentInstance is Null. Use getPolicyDBDao(EntityManagerFactory emf)");
}
- public void setPapEngine(PAPPolicyEngine papEngine2){
+ public void setPapEngine(PAPPolicyEngine papEngine2) {
this.papEngine = papEngine2;
}
- private PolicyDBDao(EntityManagerFactory emf){
- logger.debug("PolicyDBDao(EntityManagerFactory emf) as PolicyDBDao("+emf+") called");
+ private PolicyDBDao(EntityManagerFactory emf) {
+ logger.debug("PolicyDBDao(EntityManagerFactory emf) as PolicyDBDao(" + emf + ") called");
this.emf = emf;
//not needed in this release
- if(!register()){
- PolicyLogger.error("This server's PolicyDBDao instance could not be registered and may not reveive updates");
+ if (!register()) {
+ PolicyLogger
+ .error("This server's PolicyDBDao instance could not be registered and may not reveive updates");
}
otherServers = getRemotePolicyDBDaoList();
- if(logger.isDebugEnabled()){
- logger.debug("Number of remote PolicyDBDao instances: "+otherServers.size());
+ if (logger.isDebugEnabled()) {
+ logger.debug("Number of remote PolicyDBDao instances: " + otherServers.size());
}
- if(otherServers.isEmpty()){
+ if (otherServers.isEmpty()) {
logger.warn("List of PolicyDBDao servers is empty or could not be retrieved");
}
}
//not static because we are going to be using the instance's emf
//waitTime in ms to wait for lock, or -1 to wait forever (no)
- private void startTransactionSynced(EntityManager entityMgr,int waitTime){
+ private void startTransactionSynced(EntityManager entityMgr, int waitTime) {
logger.debug("\n\nstartTransactionSynced(EntityManager entityMgr,int waitTime) as "
- + "\n startTransactionSynced("+entityMgr+","+waitTime+") called\n\n");
+ + "\n startTransactionSynced(" + entityMgr + "," + waitTime + ") called\n\n");
DatabaseLockEntity lock = null;
entityMgr.setProperty("javax.persistence.query.timeout", waitTime);
entityMgr.getTransaction().begin();
- if(logger.isDebugEnabled()){
- Map<String,Object> properties = entityMgr.getProperties();
+ if (logger.isDebugEnabled()) {
+ Map<String, Object> properties = entityMgr.getProperties();
logger.debug("\n\nstartTransactionSynced():"
+ "\n entityManager.getProperties() = " + properties
+ "\n\n");
}
- try{
- if(logger.isDebugEnabled()){
+ try {
+ if (logger.isDebugEnabled()) {
logger.debug("\n\nstartTransactionSynced():"
+ "\n ATTEMPT to get the DB lock"
+ "\n\n");
}
lock = entityMgr.find(DatabaseLockEntity.class, 1, LockModeType.PESSIMISTIC_WRITE);
- if(logger.isDebugEnabled()){
+ if (logger.isDebugEnabled()) {
logger.debug("\n\nstartTransactionSynced():"
+ "\n GOT the DB lock"
+ "\n\n");
}
- } catch(Exception e){
+ } catch (Exception e) {
System.out.println("Could not get lock entity");
- logger.error("Exception Occured"+e);
+ logger.error("Exception Occured" + e);
}
- if(lock == null){
- throw new IllegalStateException("The lock row does not exist in the table. Please create a primary key with value = 1.");
+ if (lock == null) {
+ throw new IllegalStateException(
+ "The lock row does not exist in the table. Please create a primary key with value = 1.");
}
}
+
/**
* Gets the list of other registered PolicyDBDaos from the database
+ *
* @return List (type PolicyDBDaoEntity) of other PolicyDBDaos
*/
- private List<?> getRemotePolicyDBDaoList(){
+ private List<?> getRemotePolicyDBDaoList() {
logger.debug("getRemotePolicyDBDaoList() as getRemotePolicyDBDaoList() called");
List<?> policyDBDaoEntityList = new LinkedList<>();
EntityManager em = emf.createEntityManager();
startTransactionSynced(em, 1000);
- try{
+ try {
Query getPolicyDBDaoEntityQuery = em.createNamedQuery("PolicyDBDaoEntity.findAll");
policyDBDaoEntityList = getPolicyDBDaoEntityQuery.getResultList();
- } catch(Exception e){
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar, "Exception querying for other registered PolicyDBDaos");
+ } catch (Exception e) {
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar,
+ "Exception querying for other registered PolicyDBDaos");
logger.warn("List of remote PolicyDBDaos will be empty", e);
}
- try{
+ try {
em.getTransaction().commit();
- } catch(Exception e){
+ } catch (Exception e) {
logger.warn("List of remote PolicyDBDaos will be empty", e);
- try{
+ try {
em.getTransaction().rollback();
- } catch(Exception e2){
+ } catch (Exception e2) {
logger.debug("List of remote PolicyDBDaos will be empty", e2);
}
}
@@ -254,7 +266,7 @@ public class PolicyDBDao {
return policyDBDaoEntityList;
}
- public PolicyDBDaoTransaction getNewTransaction(){
+ public PolicyDBDaoTransaction getNewTransaction() {
logger.debug("getNewTransaction() as getNewTransaction() called");
return new PolicyDBDaoTransactionInstance();
}
@@ -265,7 +277,7 @@ public class PolicyDBDao {
* provide different transaction timeout values in ms because the audit will run longer
* than normal transactions.
*/
- public PolicyDBDaoTransaction getNewAuditTransaction(){
+ public PolicyDBDaoTransaction getNewAuditTransaction() {
logger.debug("getNewAuditTransaction() as getNewAuditTransaction() called");
//Use the standard transaction wait time in ms
int auditWaitMs = Integer.parseInt(XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_TRANS_WAIT));
@@ -277,15 +289,16 @@ public class PolicyDBDao {
/**
* Checks if two strings are equal. Null strings ARE allowed.
+ *
* @param one A String or null to compare
* @param two A String or null to compare
*/
- private static boolean stringEquals(String one, String two){
- logger.debug("stringEquals(String one, String two) as stringEquals("+one+", "+two+") called");
- if(one == null && two == null){
+ private static boolean stringEquals(String one, String two) {
+ logger.debug("stringEquals(String one, String two) as stringEquals(" + one + ", " + two + ") called");
+ if (one == null && two == null) {
return true;
}
- if(one == null || two == null){
+ if (one == null || two == null) {
return false;
}
return one.equals(two);
@@ -293,34 +306,35 @@ public class PolicyDBDao {
/**
* Returns the url of this local pap server, removing the username and password, if they are present
+ *
* @return The url of this local pap server
*/
- private String[] getPapUrlUserPass(){
+ private String[] getPapUrlUserPass() {
logger.debug("getPapUrl() as getPapUrl() called");
String url = XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_URL);
- if(url == null){
+ if (url == null) {
return null;
}
return splitPapUrlUserPass(url);
}
- private String[] splitPapUrlUserPass(String url){
+ private String[] splitPapUrlUserPass(String url) {
String[] urlUserPass = new String[3];
String[] commaSplit = url.split(",");
urlUserPass[0] = commaSplit[0];
- if(commaSplit.length > 2){
+ if (commaSplit.length > 2) {
urlUserPass[1] = commaSplit[1];
urlUserPass[2] = commaSplit[2];
}
- if(urlUserPass[1] == null || "".equals(urlUserPass[1])){
+ if (urlUserPass[1] == null || "".equals(urlUserPass[1])) {
String usernamePropertyValue = XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_USERID);
- if(usernamePropertyValue != null){
+ if (usernamePropertyValue != null) {
urlUserPass[1] = usernamePropertyValue;
}
}
- if(urlUserPass[2] == null || "".equals(urlUserPass[2])){
+ if (urlUserPass[2] == null || "".equals(urlUserPass[2])) {
String passwordPropertyValue = XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_PASS);
- if(passwordPropertyValue != null){
+ if (passwordPropertyValue != null) {
urlUserPass[2] = passwordPropertyValue;
}
}
@@ -330,38 +344,40 @@ public class PolicyDBDao {
/**
* Register the PolicyDBDao instance in the PolicyDBDaoEntity table
+ *
* @return Boolean, were we able to register?
*/
- private boolean register(){
+ private boolean register() {
logger.debug("register() as register() called");
String[] url = getPapUrlUserPass();
//--- check URL length
- if(url == null || url.length<3){
+ if (url == null || url.length < 3) {
return false;
}
EntityManager em = emf.createEntityManager();
- try{
+ try {
startTransactionSynced(em, 1000);
- } catch(IllegalStateException e){
- logger.debug ("\nPolicyDBDao.register() caught an IllegalStateException: \n" +e + "\n");
+ } catch (IllegalStateException e) {
+ logger.debug("\nPolicyDBDao.register() caught an IllegalStateException: \n" + e + "\n");
DatabaseLockEntity lock;
lock = em.find(DatabaseLockEntity.class, 1);
- if(lock==null){
+ if (lock == null) {
lock = new DatabaseLockEntity();
em.persist(lock);
lock.setKey(1);
- try{
+ try {
em.flush();
em.getTransaction().commit();
em.close();
- } catch(Exception e2){
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e2, policyDBDaoVar, "COULD NOT CREATE DATABASELOCK ROW. WILL TRY ONE MORE TIME");
+ } catch (Exception e2) {
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e2, policyDBDaoVar,
+ "COULD NOT CREATE DATABASELOCK ROW. WILL TRY ONE MORE TIME");
}
em = emf.createEntityManager();
- try{
+ try {
startTransactionSynced(em, 1000);
- } catch(Exception e3){
+ } catch (Exception e3) {
String msg = "DATABASE LOCKING NOT WORKING. CONCURRENCY CONTROL NOT WORKING";
PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e3, policyDBDaoVar, msg);
throw new IllegalStateException("msg" + "\n" + e3);
@@ -370,52 +386,55 @@ public class PolicyDBDao {
}
logger.debug("\nPolicyDBDao.register. Database locking and concurrency control is initialized\n");
PolicyDBDaoEntity foundPolicyDBDaoEntity = em.find(PolicyDBDaoEntity.class, url[0]);
- Query getPolicyDBDaoEntityQuery = em.createQuery("SELECT e FROM PolicyDBDaoEntity e WHERE e.policyDBDaoUrl=:url");
+ Query getPolicyDBDaoEntityQuery =
+ em.createQuery("SELECT e FROM PolicyDBDaoEntity e WHERE e.policyDBDaoUrl=:url");
getPolicyDBDaoEntityQuery.setParameter("url", url[0]);
// encrypt the password
String txt = null;
- try{
+ try {
txt = CryptoUtils.encryptTxt(url[2].getBytes(StandardCharsets.UTF_8));
- } catch(Exception e){
+ } catch (Exception e) {
logger.debug(e);
PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar, "Could not encrypt PAP password");
}
- if(foundPolicyDBDaoEntity == null){
+ if (foundPolicyDBDaoEntity == null) {
PolicyDBDaoEntity newPolicyDBDaoEntity = new PolicyDBDaoEntity();
em.persist(newPolicyDBDaoEntity);
newPolicyDBDaoEntity.setPolicyDBDaoUrl(url[0]);
- newPolicyDBDaoEntity.setDescription("PAP server at "+url[0]);
+ newPolicyDBDaoEntity.setDescription("PAP server at " + url[0]);
newPolicyDBDaoEntity.setUsername(url[1]);
newPolicyDBDaoEntity.setPassword(txt);
- try{
+ try {
em.getTransaction().commit();
- } catch(Exception e){
+ } catch (Exception e) {
logger.debug(e);
- try{
+ try {
em.getTransaction().rollback();
- } catch(Exception e2){
+ } catch (Exception e2) {
logger.debug(e2);
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e2, policyDBDaoVar, "Could not add new PolicyDBDao to the database");
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e2, policyDBDaoVar,
+ "Could not add new PolicyDBDao to the database");
}
}
} else {
//just want to update in order to change modified date
- if(url[1] != null && !stringEquals(url[1], foundPolicyDBDaoEntity.getUsername())){
+ if (url[1] != null && !stringEquals(url[1], foundPolicyDBDaoEntity.getUsername())) {
foundPolicyDBDaoEntity.setUsername(url[1]);
}
- if(txt != null && !stringEquals(txt, foundPolicyDBDaoEntity.getPassword())){
+ if (txt != null && !stringEquals(txt, foundPolicyDBDaoEntity.getPassword())) {
foundPolicyDBDaoEntity.setPassword(txt);
}
foundPolicyDBDaoEntity.preUpdate();
- try{
+ try {
em.getTransaction().commit();
- } catch(Exception e){
+ } catch (Exception e) {
logger.debug(e);
- try{
+ try {
em.getTransaction().rollback();
- } catch(Exception e2){
+ } catch (Exception e2) {
logger.debug(e2);
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e2, policyDBDaoVar, "Could not update PolicyDBDao in the database");
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e2, policyDBDaoVar,
+ "Could not update PolicyDBDao in the database");
}
}
}
@@ -425,62 +444,66 @@ public class PolicyDBDao {
}
private class NotifyOtherThread implements Runnable {
- public NotifyOtherThread(Object obj, long entityId, String entityType, String newGroupId){
+ public NotifyOtherThread(Object obj, long entityId, String entityType, String newGroupId) {
this.obj = obj;
this.entityId = entityId;
this.entityType = entityType;
this.newGroupId = newGroupId;
}
+
private Object obj;
private long entityId;
private String entityType;
private String newGroupId;
+
@Override
- public void run(){
+ public void run() {
//naming of 'o' is for backwards compatibility with the rest of the function
- PolicyDBDaoEntity dbdEntity = (PolicyDBDaoEntity)obj;
+ PolicyDBDaoEntity dbdEntity = (PolicyDBDaoEntity) obj;
String o = dbdEntity.getPolicyDBDaoUrl();
String username = dbdEntity.getUsername();
String txt;
- try{
+ try {
txt = new String(CryptoUtils.decryptTxt(dbdEntity.getPassword()), StandardCharsets.UTF_8);
- } catch(Exception e){
+ } catch (Exception e) {
logger.debug(e);
//if we can't decrypt, might as well try it anyway
txt = dbdEntity.getPassword();
}
Base64.Encoder encoder = Base64.getEncoder();
- String encoding = encoder.encodeToString((username+":"+txt).getBytes(StandardCharsets.UTF_8));
+ String encoding = encoder.encodeToString((username + ":" + txt).getBytes(StandardCharsets.UTF_8));
HttpURLConnection connection = null;
UUID requestID = UUID.randomUUID();
URL url;
String papUrl;
try {
String[] papUrlUserPass = getPapUrlUserPass();
- if(papUrlUserPass == null ){
+ if (papUrlUserPass == null) {
papUrl = "undefined";
} else {
papUrl = papUrlUserPass[0];
}
- logger.debug("We are going to try to notify "+o);
+ logger.debug("We are going to try to notify " + o);
//is this our own url?
String ourUrl = o;
- try{
- ourUrl = splitPapUrlUserPass((String)o)[0];
- }catch(Exception e){
+ try {
+ ourUrl = splitPapUrlUserPass((String) o)[0];
+ } catch (Exception e) {
logger.debug(e);
}
- if(o == null){
+ if (o == null) {
o = "undefined";
}
- if(papUrl.equals(ourUrl)){
- logger.debug(o+" is our url, skipping notify");
+ if (papUrl.equals(ourUrl)) {
+ logger.debug(o + " is our url, skipping notify");
return;
}
- if(newGroupId == null){
- url = new URL(o+"?policydbdaourl="+papUrl+"&entityid="+entityId+"&entitytype="+entityType);
+ if (newGroupId == null) {
+ url = new URL(o + "?policydbdaourl=" + papUrl + "&entityid=" + entityId + "&entitytype=" +
+ entityType);
} else {
- url = new URL(o+"?policydbdaourl="+papUrl+"&entityid="+entityId+"&entitytype="+entityType+"&extradata="+newGroupId);
+ url = new URL(o + "?policydbdaourl=" + papUrl + "&entityid=" + entityId + "&entitytype=" +
+ entityType + "&extradata=" + newGroupId);
}
} catch (MalformedURLException e) {
logger.warn("Caught MalformedURLException on: new URL()", e);
@@ -490,11 +513,11 @@ public class PolicyDBDao {
// Open up the connection
//
logger.info("PolicyDBDao: NotifyOtherThread: notifying other PAPs of an update");
- logger.info("Connecting with url: "+url);
+ logger.info("Connecting with url: " + url);
try {
- connection = (HttpURLConnection)url.openConnection();
+ connection = (HttpURLConnection) url.openConnection();
} catch (Exception e) {
- logger.warn("Caught exception on: url.openConnection()",e);
+ logger.warn("Caught exception on: url.openConnection()", e);
return;
}
//
@@ -504,7 +527,7 @@ public class PolicyDBDao {
connection.setRequestMethod("PUT");
} catch (ProtocolException e) {
//why would this error ever occur?
- logger.warn("Caught ProtocolException on connection.setRequestMethod(\"PUT\");",e);
+ logger.warn("Caught ProtocolException on connection.setRequestMethod(\"PUT\");", e);
return;
}
connection.setRequestProperty("Authorization", "Basic " + encoding);
@@ -512,9 +535,10 @@ public class PolicyDBDao {
connection.setRequestProperty("Content-Type", "text/x-java-properties");
connection.setRequestProperty("requestID", requestID.toString());
int readTimeout;
- try{
- readTimeout = Integer.parseInt(XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_NOTIFY_TIMEOUT));
- } catch(Exception e){
+ try {
+ readTimeout =
+ Integer.parseInt(XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_NOTIFY_TIMEOUT));
+ } catch (Exception e) {
logger.error("xacml.rest.pap.notify.timeoutms property not set, using a default.", e);
readTimeout = 10000;
}
@@ -534,14 +558,15 @@ public class PolicyDBDao {
try {
connection.connect();
} catch (Exception e) {
- logger.warn("Caught exception on: connection.connect()",e);
+ logger.warn("Caught exception on: connection.connect()", e);
return;
}
try {
if (connection.getResponseCode() == 200) {
logger.info("PolicyDBDao: NotifyOtherThread received response 200 from pap server on notify");
} else {
- logger.warn("PolicyDBDao: NotifyOtherThread connection response code not 200, received: "+connection.getResponseCode());
+ logger.warn("PolicyDBDao: NotifyOtherThread connection response code not 200, received: " +
+ connection.getResponseCode());
}
} catch (Exception e) {
logger.warn("Caught Exception on: connection.getResponseCode() ", e);
@@ -556,7 +581,7 @@ public class PolicyDBDao {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
String description = "";
- try{
+ try {
DocumentBuilder db = dbf.newDocumentBuilder();
Document document = db.parse(source);
@@ -564,8 +589,8 @@ public class PolicyDBDao {
XPath xpath = xpathFactory.newXPath();
description = xpath.evaluate(expression, document);
- }catch(Exception e){
- logger.error("Exception Occured while evaluating path"+e);
+ } catch (Exception e) {
+ logger.error("Exception Occured while evaluating path" + e);
}
return description;
}
@@ -573,70 +598,79 @@ public class PolicyDBDao {
private static final String POLICY_NOTIFICATION = "policy";
private static final String PDP_NOTIFICATION = "pdp";
private static final String GROUP_NOTIFICATION = "group";
- public void handleIncomingHttpNotification(String url, String entityId, String entityType, String extraData, XACMLPapServlet xacmlPapServlet){
- logger.info("DBDao url: " + url + " has reported an update on "+entityType+" entity "+entityId);
+
+ public void handleIncomingHttpNotification(String url, String entityId, String entityType, String extraData,
+ XACMLPapServlet xacmlPapServlet) {
+ logger.info("DBDao url: " + url + " has reported an update on " + entityType + " entity " + entityId);
PolicyDBDaoTransaction transaction = this.getNewTransaction();
//although its named retries, this is the total number of tries
int retries;
- try{
- retries = Integer.parseInt(XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_INCOMINGNOTIFICATION_TRIES));
- } catch(Exception e){
- logger.error("xacml.rest.pap.incomingnotification.tries property not set, using a default of 3."+e);
+ try {
+ retries = Integer.parseInt(
+ XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_INCOMINGNOTIFICATION_TRIES));
+ } catch (Exception e) {
+ logger.error("xacml.rest.pap.incomingnotification.tries property not set, using a default of 3." + e);
retries = 3;
}
//if someone sets it to some dumb value, we need to make sure it will try at least once
- if(retries < 1){
+ if (retries < 1) {
retries = 1;
}
int pauseBetweenRetries = 1000;
- switch(entityType){
+ switch (entityType) {
case POLICY_NOTIFICATION:
- for(int i=0; i<retries;i++){
- try{
+ for (int i = 0; i < retries; i++) {
+ try {
handleIncomingPolicyChange(entityId);
break;
- } catch(Exception e){
+ } catch (Exception e) {
logger.debug(e);
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar, "Caught exception on handleIncomingPolicyChange("+url+", "+entityId+", "+extraData+")");
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar,
+ "Caught exception on handleIncomingPolicyChange(" + url + ", " + entityId + ", " +
+ extraData + ")");
}
- try{
+ try {
Thread.sleep(pauseBetweenRetries);
- }catch(InterruptedException ie){
+ } catch (InterruptedException ie) {
Thread.currentThread().interrupt();
break;
}
}
break;
case PDP_NOTIFICATION:
- for(int i=0; i<retries;i++){
- try{
+ for (int i = 0; i < retries; i++) {
+ try {
handleIncomingPdpChange(entityId, transaction);
break;
- } catch(Exception e){
+ } catch (Exception e) {
logger.debug(e);
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar, "Caught exception on handleIncomingPdpChange("+url+", "+entityId+", "+transaction+")");
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar,
+ "Caught exception on handleIncomingPdpChange(" + url + ", " + entityId + ", " +
+ transaction + ")");
}
- try{
+ try {
Thread.sleep(pauseBetweenRetries);
- }catch(InterruptedException ie){
+ } catch (InterruptedException ie) {
Thread.currentThread().interrupt();
break;
}
}
break;
case GROUP_NOTIFICATION:
- for(int i=0; i<retries;i++){
- try{
+ for (int i = 0; i < retries; i++) {
+ try {
handleIncomingGroupChange(entityId, extraData, transaction);
break;
- }catch(Exception e){
+ } catch (Exception e) {
logger.debug(e);
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar, "Caught exception on handleIncomingGroupChange("+url+", "+entityId+", "+extraData+", "+transaction+", "+xacmlPapServlet+")");
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar,
+ "Caught exception on handleIncomingGroupChange(" + url + ", " + entityId + ", " +
+ extraData + ", " + transaction + ", " + xacmlPapServlet + ")");
}
- try{
+ try {
Thread.sleep(pauseBetweenRetries);
- }catch(InterruptedException ie){
+ } catch (InterruptedException ie) {
Thread.currentThread().interrupt();
break;
}
@@ -647,21 +681,23 @@ public class PolicyDBDao {
transaction.rollbackTransaction();
}
- private void handleIncomingGroupChange(String groupId, String extraData,PolicyDBDaoTransaction transaction) throws PAPException, PolicyDBException{
+ private void handleIncomingGroupChange(String groupId, String extraData, PolicyDBDaoTransaction transaction)
+ throws PAPException, PolicyDBException {
GroupEntity groupRecord = null;
long groupIdLong = -1;
- try{
+ try {
groupIdLong = Long.parseLong(groupId);
- } catch(NumberFormatException e){
- throw new IllegalArgumentException("groupId "+groupId+" cannot be parsed into a long");
+ } catch (NumberFormatException e) {
+ throw new IllegalArgumentException("groupId " + groupId + " cannot be parsed into a long");
}
- try{
+ try {
groupRecord = transaction.getGroup(groupIdLong);
- } catch(Exception e){
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar, "Caught Exception trying to get pdp group record with transaction.getGroup("+groupIdLong+");");
- throw new PAPException("Could not get local group "+groupIdLong);
+ } catch (Exception e) {
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar,
+ "Caught Exception trying to get pdp group record with transaction.getGroup(" + groupIdLong + ");");
+ throw new PAPException("Could not get local group " + groupIdLong);
}
- if(groupRecord == null){
+ if (groupRecord == null) {
throw new PersistenceException("The group record returned is null");
}
//compare to local fs
@@ -670,139 +706,164 @@ public class PolicyDBDao {
try {
localGroup = papEngine.getGroup(groupRecord.getGroupId());
} catch (Exception e) {
- logger.warn("Caught PAPException trying to get local pdp group with papEngine.getGroup("+groupId+");",e);
+ logger.warn("Caught PAPException trying to get local pdp group with papEngine.getGroup(" + groupId + ");",
+ e);
}
- if(localGroup == null && extraData != null){
+ if (localGroup == null && extraData != null) {
//here we can try to load an old group id from the extraData
- try{
+ try {
localGroup = papEngine.getGroup(extraData);
- }catch(Exception e){
- logger.warn("Caught PAPException trying to get local pdp group with papEngine.getGroup("+extraData+");",e);
+ } catch (Exception e) {
+ logger.warn(
+ "Caught PAPException trying to get local pdp group with papEngine.getGroup(" + extraData + ");",
+ e);
}
}
- if(localGroup != null && groupRecord.isDeleted()){
+ if (localGroup != null && groupRecord.isDeleted()) {
OnapPDPGroup newLocalGroup = null;
- if(extraData != null){
+ if (extraData != null) {
try {
newLocalGroup = papEngine.getGroup(extraData);
} catch (PAPException e) {
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar, "Caught PAPException trying to get new pdp group with papEngine.getGroup("+extraData+");");
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar,
+ "Caught PAPException trying to get new pdp group with papEngine.getGroup(" + extraData +
+ ");");
}
}
try {
papEngine.removeGroup(localGroup, newLocalGroup);
} catch (NullPointerException | PAPException e) {
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar, "Caught PAPException trying to get remove pdp group with papEngine.removeGroup("+localGroup+", "+newLocalGroup+");");
- throw new PAPException("Could not remove group "+groupId);
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar,
+ "Caught PAPException trying to get remove pdp group with papEngine.removeGroup(" + localGroup +
+ ", " + newLocalGroup + ");");
+ throw new PAPException("Could not remove group " + groupId);
}
- }
- else if(localGroup == null){
+ } else if (localGroup == null) {
//creating a new group
try {
papEngine.newGroup(groupRecord.getgroupName(), groupRecord.getDescription());
} catch (NullPointerException | PAPException e) {
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar, "Caught PAPException trying to create pdp group with papEngine.newGroup(groupRecord.getgroupName(), groupRecord.getDescription());");
- throw new PAPException("Could not create group "+groupRecord);
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar,
+ "Caught PAPException trying to create pdp group with papEngine.newGroup(groupRecord" +
+ ".getgroupName(), groupRecord.getDescription());");
+ throw new PAPException("Could not create group " + groupRecord);
}
try {
localGroup = papEngine.getGroup(groupRecord.getGroupId());
} catch (PAPException e1) {
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e1, policyDBDaoVar, "Caught PAPException trying to get pdp group we just created with papEngine.getGroup(groupRecord.getGroupId());\nAny PDPs or policies in the new group may not have been added");
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e1, policyDBDaoVar,
+ "Caught PAPException trying to get pdp group we just created with papEngine.getGroup" +
+ "(groupRecord.getGroupId());\nAny PDPs or policies in the new group may not have been added");
return;
}
//add possible pdps to group
List<?> pdpsInGroup = transaction.getPdpsInGroup(Long.parseLong(groupRecord.getGroupId()));
- for(Object pdpO : pdpsInGroup){
- PdpEntity pdp = (PdpEntity)pdpO;
+ for (Object pdpO : pdpsInGroup) {
+ PdpEntity pdp = (PdpEntity) pdpO;
try {
- papEngine.newPDP(pdp.getPdpId(), localGroup, pdp.getPdpName(), pdp.getDescription(), pdp.getJmxPort());
+ papEngine.newPDP(pdp.getPdpId(), localGroup, pdp.getPdpName(), pdp.getDescription(),
+ pdp.getJmxPort());
} catch (NullPointerException | PAPException e) {
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar, "Caught PAPException trying to get create pdp with papEngine.newPDP(pdp.getPdpId(), localGroup, pdp.getPdpName(), pdp.getDescription(), pdp.getJmxPort());");
- throw new PAPException("Could not create pdp "+pdp);
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar,
+ "Caught PAPException trying to get create pdp with papEngine.newPDP(pdp.getPdpId(), " +
+ "localGroup, pdp.getPdpName(), pdp.getDescription(), pdp.getJmxPort());");
+ throw new PAPException("Could not create pdp " + pdp);
}
}
//add possible policies to group (filesystem only, apparently)
} else {
- if(!(localGroup instanceof StdPDPGroup)){
+ if (!(localGroup instanceof StdPDPGroup)) {
throw new PAPException("group is not a StdPDPGroup");
}
//clone the object
//because it will be comparing the new group to its own version
- StdPDPGroup localGroupClone = new StdPDPGroup(localGroup.getId(),localGroup.isDefaultGroup(),localGroup.getName(),localGroup.getDescription(),((StdPDPGroup)localGroup).getDirectory());
+ StdPDPGroup localGroupClone =
+ new StdPDPGroup(localGroup.getId(), localGroup.isDefaultGroup(), localGroup.getName(),
+ localGroup.getDescription(), ((StdPDPGroup) localGroup).getDirectory());
localGroupClone.setOnapPdps(localGroup.getOnapPdps());
localGroupClone.setPipConfigs(localGroup.getPipConfigs());
localGroupClone.setStatus(localGroup.getStatus());
//we are updating a group or adding a policy or changing default
//set default if it should be
- if(!localGroupClone.isDefaultGroup() && groupRecord.isDefaultGroup()){
+ if (!localGroupClone.isDefaultGroup() && groupRecord.isDefaultGroup()) {
try {
papEngine.setDefaultGroup(localGroup);
return;
} catch (PAPException e) {
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar, "Caught PAPException trying to set default group with papEngine.SetDefaultGroup("+localGroupClone+");");
- throw new PAPException("Could not set default group to "+localGroupClone);
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar,
+ "Caught PAPException trying to set default group with papEngine.SetDefaultGroup(" +
+ localGroupClone + ");");
+ throw new PAPException("Could not set default group to " + localGroupClone);
}
}
boolean needToUpdate = false;
- if(updateGroupPoliciesInFileSystem(localGroupClone,localGroup, groupRecord, transaction)){
+ if (updateGroupPoliciesInFileSystem(localGroupClone, localGroup, groupRecord, transaction)) {
needToUpdate = true;
}
- if(!stringEquals(localGroupClone.getId(),groupRecord.getGroupId()) || !stringEquals(localGroupClone.getName(),groupRecord.getgroupName())){
+ if (!stringEquals(localGroupClone.getId(), groupRecord.getGroupId()) ||
+ !stringEquals(localGroupClone.getName(), groupRecord.getgroupName())) {
//changing ids
//we do not want to change the id, the papEngine will do this for us, it needs to know the old id
localGroupClone.setName(groupRecord.getgroupName());
needToUpdate = true;
}
- if(!stringEquals(localGroupClone.getDescription(),groupRecord.getDescription())){
+ if (!stringEquals(localGroupClone.getDescription(), groupRecord.getDescription())) {
localGroupClone.setDescription(groupRecord.getDescription());
needToUpdate = true;
}
- if(needToUpdate){
+ if (needToUpdate) {
try {
papEngine.updateGroup(localGroupClone);
} catch (PAPException e) {
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar, "Caught PAPException trying to update group with papEngine.updateGroup("+localGroupClone+");");
- throw new PAPException("Could not update group "+localGroupClone);
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar,
+ "Caught PAPException trying to update group with papEngine.updateGroup(" + localGroupClone +
+ ");");
+ throw new PAPException("Could not update group " + localGroupClone);
}
}
}
}
- //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{
- if(!(pdpGroup instanceof StdPDPGroup)){
+ //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 {
+ if (!(pdpGroup instanceof StdPDPGroup)) {
throw new PAPException("group is not a StdPDPGroup");
}
- StdPDPGroup group = (StdPDPGroup)pdpGroup;
+ StdPDPGroup group = (StdPDPGroup) pdpGroup;
//this must always be true since we don't explicitly know when a delete is occuring
boolean didUpdate = true;
- HashMap<String,PDPPolicy> currentPolicySet = new HashMap<>(oldPdpGroup.getPolicies().size());
+ HashMap<String, PDPPolicy> currentPolicySet = new HashMap<>(oldPdpGroup.getPolicies().size());
HashSet<PDPPolicy> newPolicySet = new HashSet<>();
- for(PDPPolicy pdpPolicy : oldPdpGroup.getPolicies()){
+ for (PDPPolicy pdpPolicy : oldPdpGroup.getPolicies()) {
currentPolicySet.put(pdpPolicy.getId(), pdpPolicy);
}
- for(PolicyEntity policy : groupRecord.getPolicies()){
+ for (PolicyEntity policy : groupRecord.getPolicies()) {
String pdpPolicyName = getPdpPolicyName(policy.getPolicyName(), policy.getScope());
- if(group.getPolicy(pdpPolicyName) == null){
+ if (group.getPolicy(pdpPolicyName) == null) {
didUpdate = true;
- if(currentPolicySet.containsKey(pdpPolicyName)){
+ if (currentPolicySet.containsKey(pdpPolicyName)) {
newPolicySet.add(currentPolicySet.get(pdpPolicyName));
- } else{
- logger.info("PolicyDBDao: Adding the new policy to the PDP group after notification: " + pdpPolicyName);
+ } else {
+ logger.info(
+ "PolicyDBDao: Adding the new policy to the PDP group after notification: " + pdpPolicyName);
InputStream policyStream = new ByteArrayInputStream(policy.getPolicyData().getBytes());
- group.copyPolicyToFile(pdpPolicyName,policyStream);
- ((StdPDPPolicy)(group.getPolicy(pdpPolicyName))).setName(removeExtensionAndVersionFromPolicyName(pdpPolicyName));
+ group.copyPolicyToFile(pdpPolicyName, policyStream);
+ ((StdPDPPolicy) (group.getPolicy(pdpPolicyName)))
+ .setName(removeExtensionAndVersionFromPolicyName(pdpPolicyName));
try {
policyStream.close();
} catch (IOException e) {
didUpdate = false;
- PolicyLogger.error(e.getMessage() +e);
+ PolicyLogger.error(e.getMessage() + e);
}
}
}
}
logger.info("PolicyDBDao: Adding updated policies to group after notification.");
- if(didUpdate){
+ if (didUpdate) {
newPolicySet.addAll(group.getPolicies());
group.setPolicies(newPolicySet);
}
@@ -813,47 +874,55 @@ public class PolicyDBDao {
* This method is called during all pushPolicy transactions and makes sure the file system
* group is in sync with the database groupentity
*/
- private StdPDPGroup synchronizeGroupPoliciesInFileSystem(StdPDPGroup pdpGroup, GroupEntity groupentity) throws PAPException, PolicyDBException{
+ private StdPDPGroup synchronizeGroupPoliciesInFileSystem(StdPDPGroup pdpGroup, GroupEntity groupentity)
+ throws PAPException, PolicyDBException {
- HashMap<String,PDPPolicy> currentPolicyMap = new HashMap<>();
+ HashMap<String, PDPPolicy> currentPolicyMap = new HashMap<>();
HashSet<String> newPolicyIdSet = new HashSet<>();
HashSet<PDPPolicy> newPolicySet = new HashSet<>();
- for(PDPPolicy pdpPolicy : pdpGroup.getPolicies()){
+ for (PDPPolicy pdpPolicy : pdpGroup.getPolicies()) {
currentPolicyMap.put(pdpPolicy.getId(), pdpPolicy);
}
- for(PolicyEntity policy : groupentity.getPolicies()){
+ for (PolicyEntity policy : groupentity.getPolicies()) {
String pdpPolicyId = getPdpPolicyName(policy.getPolicyName(), policy.getScope());
newPolicyIdSet.add(pdpPolicyId);
- if(currentPolicyMap.containsKey(pdpPolicyId)){
+ if (currentPolicyMap.containsKey(pdpPolicyId)) {
newPolicySet.add(currentPolicyMap.get(pdpPolicyId));
} else {
//convert PolicyEntity object to PDPPolicy
String name = pdpPolicyId.replace(".xml", "");
name = name.substring(0, name.lastIndexOf('.'));
InputStream policyStream = new ByteArrayInputStream(policy.getPolicyData().getBytes());
- pdpGroup.copyPolicyToFile(pdpPolicyId,name,policyStream);
+ pdpGroup.copyPolicyToFile(pdpPolicyId, name, policyStream);
URI location = Paths.get(pdpGroup.getDirectory().toAbsolutePath().toString(), pdpPolicyId).toUri();
StdPDPPolicy newPolicy = null;
try {
- newPolicy = new StdPDPPolicy(pdpPolicyId, true, removeExtensionAndVersionFromPolicyName(pdpPolicyId),location);
+ newPolicy =
+ new StdPDPPolicy(pdpPolicyId, true, removeExtensionAndVersionFromPolicyName(pdpPolicyId),
+ location);
newPolicySet.add(newPolicy);
} catch (Exception e) {
logger.debug(e);
- PolicyLogger.error("PolicyDBDao: Exception occurred while creating the StdPDPPolicy newPolicy object " + e.getMessage());
+ PolicyLogger
+ .error("PolicyDBDao: Exception occurred while creating the StdPDPPolicy newPolicy object " +
+ e.getMessage());
}
}
}
- for(String id : currentPolicyMap.keySet()) {
- if(!newPolicyIdSet.contains(id)){
+ for (String id : currentPolicyMap.keySet()) {
+ if (!newPolicyIdSet.contains(id)) {
try {
Files.delete(Paths.get(currentPolicyMap.get(id).getLocation()));
} catch (Exception e) {
logger.debug(e);
- PolicyLogger.error("PolicyDBDao: Exception occurred while attempting to delete the old version of the policy file from the group. " + e.getMessage());
+ PolicyLogger
+ .error("PolicyDBDao: Exception occurred while attempting to delete the old version of the" +
+ " policy file from the group. " +
+ e.getMessage());
}
}
}
@@ -864,139 +933,156 @@ public class PolicyDBDao {
return pdpGroup;
}
- private String removeExtensionAndVersionFromPolicyName(String originalPolicyName) throws PolicyDBException{
+ private String removeExtensionAndVersionFromPolicyName(String originalPolicyName) throws PolicyDBException {
return getPolicyNameAndVersionFromPolicyFileName(originalPolicyName)[0];
}
/**
* Splits apart the policy name and version from a policy file path
+ *
* @param originalPolicyName: a policy file name ex: Config_policy.2.xml
* @return An array [0]: The policy name, [1]: the policy version, as a string
*/
- private String[] getPolicyNameAndVersionFromPolicyFileName(String originalPolicyName) throws PolicyDBException{
+ private String[] getPolicyNameAndVersionFromPolicyFileName(String originalPolicyName) throws PolicyDBException {
String policyName = originalPolicyName;
String[] nameAndVersion = new String[2];
- try{
+ try {
policyName = removeFileExtension(policyName);
- nameAndVersion[0] = policyName.substring(0,policyName.lastIndexOf('.'));
- if(isNullOrEmpty(nameAndVersion[0])){
+ nameAndVersion[0] = policyName.substring(0, policyName.lastIndexOf('.'));
+ if (isNullOrEmpty(nameAndVersion[0])) {
throw new PolicyDBException();
}
- } catch(Exception e){
+ } catch (Exception e) {
nameAndVersion[0] = originalPolicyName;
logger.debug(e);
}
- try{
- nameAndVersion[1] = policyName.substring(policyName.lastIndexOf('.')+1);
- if(isNullOrEmpty(nameAndVersion[1])){
+ try {
+ nameAndVersion[1] = policyName.substring(policyName.lastIndexOf('.') + 1);
+ if (isNullOrEmpty(nameAndVersion[1])) {
throw new PolicyDBException();
}
- } catch(Exception e){
+ } catch (Exception e) {
nameAndVersion[1] = "1";
logger.debug(e);
}
return nameAndVersion;
}
- private void handleIncomingPdpChange(String pdpId, PolicyDBDaoTransaction transaction) throws PAPException{
+ private void handleIncomingPdpChange(String pdpId, PolicyDBDaoTransaction transaction) throws PAPException {
//get pdp
long pdpIdLong = -1;
- try{
+ try {
pdpIdLong = Long.parseLong(pdpId);
- }catch(NumberFormatException e){
- throw new IllegalArgumentException("pdpId "+pdpId+" cannot be parsed into a long");
+ } catch (NumberFormatException e) {
+ throw new IllegalArgumentException("pdpId " + pdpId + " cannot be parsed into a long");
}
PdpEntity pdpRecord = null;
- try{
+ try {
pdpRecord = transaction.getPdp(pdpIdLong);
- }catch(Exception e){
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar, "Caught Exception trying to get pdp record with transaction.getPdp("+pdpIdLong+");");
- throw new PAPException("Could not get local pdp "+pdpIdLong);
+ } catch (Exception e) {
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar,
+ "Caught Exception trying to get pdp record with transaction.getPdp(" + pdpIdLong + ");");
+ throw new PAPException("Could not get local pdp " + pdpIdLong);
}
- if(pdpRecord == null){
+ if (pdpRecord == null) {
throw new PersistenceException("The pdpRecord returned is null");
}
PDP localPdp = null;
try {
localPdp = papEngine.getPDP(pdpRecord.getPdpId());
} catch (PAPException e) {
- logger.warn("Caught PAPException trying to get local pdp with papEngine.getPDP("+pdpId+");",e);
+ logger.warn("Caught PAPException trying to get local pdp with papEngine.getPDP(" + pdpId + ");", e);
}
- if(localPdp != null && pdpRecord.isDeleted()){
+ if (localPdp != null && pdpRecord.isDeleted()) {
try {
papEngine.removePDP((OnapPDP) localPdp);
} catch (PAPException e) {
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar, "Caught PAPException trying to get remove pdp with papEngine.removePDP("+localPdp+");");
- throw new PAPException("Could not remove pdp "+pdpId);
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar,
+ "Caught PAPException trying to get remove pdp with papEngine.removePDP(" + localPdp + ");");
+ throw new PAPException("Could not remove pdp " + pdpId);
}
- }
- else if(localPdp == null){
+ } else if (localPdp == null) {
//add new pdp
//get group
OnapPDPGroup localGroup = null;
try {
localGroup = papEngine.getGroup(pdpRecord.getGroup().getGroupId());
} catch (PAPException e1) {
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e1, policyDBDaoVar, "Caught PAPException trying to get local group to add pdp to with papEngine.getGroup(pdpRecord.getGroup().getGroupId());");
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e1, policyDBDaoVar,
+ "Caught PAPException trying to get local group to add pdp to with papEngine.getGroup" +
+ "(pdpRecord.getGroup().getGroupId());");
throw new PAPException("Could not get local group");
}
try {
- papEngine.newPDP(pdpRecord.getPdpId(), localGroup, pdpRecord.getPdpName(), pdpRecord.getDescription(), pdpRecord.getJmxPort());
+ papEngine.newPDP(pdpRecord.getPdpId(), localGroup, pdpRecord.getPdpName(), pdpRecord.getDescription(),
+ pdpRecord.getJmxPort());
} catch (NullPointerException | PAPException e) {
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar, "Caught PAPException trying to create pdp with papEngine.newPDP("+pdpRecord.getPdpId()+", "+localGroup+", "+pdpRecord.getPdpName()+", "+pdpRecord.getDescription()+", "+pdpRecord.getJmxPort()+");");
- throw new PAPException("Could not create pdp "+pdpRecord);
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar,
+ "Caught PAPException trying to create pdp with papEngine.newPDP(" + pdpRecord.getPdpId() +
+ ", " + localGroup + ", " + pdpRecord.getPdpName() + ", " + pdpRecord.getDescription() +
+ ", " + pdpRecord.getJmxPort() + ");");
+ throw new PAPException("Could not create pdp " + pdpRecord);
}
} else {
boolean needToUpdate = false;
- if(!stringEquals(localPdp.getId(),pdpRecord.getPdpId()) || !stringEquals(localPdp.getName(),pdpRecord.getPdpName())){
+ if (!stringEquals(localPdp.getId(), pdpRecord.getPdpId()) ||
+ !stringEquals(localPdp.getName(), pdpRecord.getPdpName())) {
//again, we don't want to change the id, the papEngine will do this
localPdp.setName(pdpRecord.getPdpName());
needToUpdate = true;
}
- if(!stringEquals(localPdp.getDescription(),pdpRecord.getDescription())){
+ if (!stringEquals(localPdp.getDescription(), pdpRecord.getDescription())) {
localPdp.setDescription(pdpRecord.getDescription());
needToUpdate = true;
}
String localPdpGroupId = null;
- try{
+ try {
localPdpGroupId = papEngine.getPDPGroup((OnapPDP) localPdp).getId();
- } catch(PAPException e){
+ } catch (PAPException e) {
//could be null or something, just warn at this point
- logger.warn("Caught PAPException trying to get id of local group that pdp is in with localPdpGroupId = papEngine.getPDPGroup(localPdp).getId();",e);
+ logger.warn(
+ "Caught PAPException trying to get id of local group that pdp is in with localPdpGroupId = " +
+ "papEngine.getPDPGroup(localPdp).getId();",
+ e);
}
- if(!stringEquals(localPdpGroupId,pdpRecord.getGroup().getGroupId())){
+ if (!stringEquals(localPdpGroupId, pdpRecord.getGroup().getGroupId())) {
OnapPDPGroup newPdpGroup = null;
- try{
+ try {
newPdpGroup = papEngine.getGroup(pdpRecord.getGroup().getGroupId());
- }catch(PAPException e){
+ } catch (PAPException e) {
//ok, now we have an issue. Time to stop things
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar, "Caught PAPException trying to get id of local group to move pdp to with papEngine.getGroup(pdpRecord.getGroup().getGroupId());");
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar,
+ "Caught PAPException trying to get id of local group to move pdp to with papEngine" +
+ ".getGroup(pdpRecord.getGroup().getGroupId());");
throw new PAPException("Could not get local group");
}
- try{
+ try {
papEngine.movePDP((OnapPDP) localPdp, newPdpGroup);
- }catch(PAPException e){
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar, "Caught PAPException trying to move pdp with papEngine.movePDP(localPdp, newPdpGroup);");
- throw new PAPException("Could not move pdp "+localPdp);
+ } catch (PAPException e) {
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar,
+ "Caught PAPException trying to move pdp with papEngine.movePDP(localPdp, newPdpGroup);");
+ throw new PAPException("Could not move pdp " + localPdp);
}
}
- if(((PdpEntity) localPdp).getJmxPort() != pdpRecord.getJmxPort()){
+ if (((PdpEntity) localPdp).getJmxPort() != pdpRecord.getJmxPort()) {
((PdpEntity) localPdp).setJmxPort(pdpRecord.getJmxPort());
needToUpdate = true;
}
- if(needToUpdate){
+ if (needToUpdate) {
try {
papEngine.updatePDP((OnapPDP) localPdp);
} catch (PAPException e) {
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar, "Caught PAPException trying to update pdp with papEngine.updatePdp("+localPdp+");");
- throw new PAPException("Could not update pdp "+localPdp);
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar,
+ "Caught PAPException trying to update pdp with papEngine.updatePdp(" + localPdp + ");");
+ throw new PAPException("Could not update pdp " + localPdp);
}
}
}
//compare to local situation
//call command to update
}
- private void handleIncomingPolicyChange(String policyId){
+
+ private void handleIncomingPolicyChange(String policyId) {
String policyName = null;
EntityManager em = emf.createEntityManager();
Query getPolicyEntityQuery = em.createNamedQuery("PolicyEntity.FindById");
@@ -1005,38 +1091,39 @@ public class PolicyDBDao {
@SuppressWarnings("unchecked")
List<PolicyEntity> policies = getPolicyEntityQuery.getResultList();
PolicyEntity policy = null;
- if (!policies.isEmpty()){
+ if (!policies.isEmpty()) {
policy = policies.get(0);
}
String action = "unknown action";
try {
- if(policy != null){
+ if (policy != null) {
policyName = policy.getPolicyName();
logger.info("Deleting old Policy Config File for " + policy.getPolicyName());
action = "delete";
Path subFile = null;
- if (policy.getConfigurationData()!= null){
+ if (policy.getConfigurationData() != null) {
subFile = getPolicySubFile(policy.getConfigurationData().getConfigurationName(), config);
- }else if(policy.getActionBodyEntity()!= null){
+ } else if (policy.getActionBodyEntity() != null) {
subFile = getPolicySubFile(policy.getActionBodyEntity().getActionBodyName(), action);
}
- if(subFile != null){
+ if (subFile != null) {
Files.deleteIfExists(subFile);
}
- if (policy.getConfigurationData()!= null){
+ if (policy.getConfigurationData() != null) {
writePolicySubFile(policy, config);
- }else if(policy.getActionBodyEntity()!= null){
+ } else if (policy.getActionBodyEntity() != null) {
writePolicySubFile(policy, action);
}
}
} catch (IOException e1) {
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e1, policyDBDaoVar, "Error occurred while performing [" + action + "] of Policy File: " + policyName);
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e1, policyDBDaoVar,
+ "Error occurred while performing [" + action + "] of Policy File: " + policyName);
}
}
- private String getPdpPolicyName(String name, String scope){
+ private String getPdpPolicyName(String name, String scope) {
String finalName = "";
finalName += scope;
finalName += ".";
@@ -1044,11 +1131,12 @@ public class PolicyDBDao {
finalName += ".xml";
return finalName;
}
- private String removeFileExtension(String fileName){
+
+ private String removeFileExtension(String fileName) {
return fileName.substring(0, fileName.lastIndexOf('.'));
}
- private Path getPolicySubFile(String inputFileName, String subFileType){
+ private Path getPolicySubFile(String inputFileName, String subFileType) {
String filename = inputFileName;
logger.info("getPolicySubFile(" + filename + ", " + subFileType + ")");
Path filePath = Paths.get(XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_WEBAPPS), subFileType);
@@ -1056,14 +1144,14 @@ public class PolicyDBDao {
filename = FilenameUtils.removeExtension(filename);
- for(File tmpFile : filePath.toFile().listFiles()){
- if (FilenameUtils.removeExtension(tmpFile.getName()).equals(filename)){
+ for (File tmpFile : filePath.toFile().listFiles()) {
+ if (FilenameUtils.removeExtension(tmpFile.getName()).equals(filename)) {
file = tmpFile;
}
}
Path finalPath = null;
- if (file!= null){
+ if (file != null) {
finalPath = Paths.get(file.getAbsolutePath());
}
@@ -1071,12 +1159,13 @@ public class PolicyDBDao {
return finalPath;
}
- private boolean writePolicySubFile(PolicyEntity policy, String policyType){
- logger.info("writePolicySubFile with policyName[" + policy.getPolicyName() + "] and policyType[" + policyType + "]");
+ private boolean writePolicySubFile(PolicyEntity policy, String policyType) {
+ logger.info("writePolicySubFile with policyName[" + policy.getPolicyName() + "] and policyType[" + policyType +
+ "]");
String type = null;
String subTypeName = null;
String subTypeBody = null;
- if (config.equalsIgnoreCase(policyType)){
+ if (config.equalsIgnoreCase(policyType)) {
type = config;
subTypeName = FilenameUtils.removeExtension(policy.getConfigurationData().getConfigurationName());
subTypeBody = policy.getConfigurationData().getConfigBody();
@@ -1097,47 +1186,48 @@ public class PolicyDBDao {
subTypeName = subTypeName + ".txt";
}
}
- }else if (action.equalsIgnoreCase(policyType)){
+ } else if (action.equalsIgnoreCase(policyType)) {
type = action;
subTypeName = policy.getActionBodyEntity().getActionBodyName();
subTypeBody = policy.getActionBodyEntity().getActionBody();
}
Path filePath = Paths.get(XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_WEBAPPS).toString(), type);
- if(subTypeBody == null){
+ if (subTypeBody == null) {
subTypeBody = "";
}
boolean success = false;
try {
Files.deleteIfExists(Paths.get(filePath.toString(), subTypeName));
- File file = Paths.get(filePath.toString(),subTypeName).toFile();
+ File file = Paths.get(filePath.toString(), subTypeName).toFile();
boolean value = file.createNewFile();
- logger.debug("New file created successfully"+value);
- try(FileWriter fileWriter = new FileWriter(file, false)){
+ logger.debug("New file created successfully" + value);
+ try (FileWriter fileWriter = new FileWriter(file, false)) {
// false to overwrite
fileWriter.write(subTypeBody);
fileWriter.close();
success = true;
}
} catch (Exception e) {
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar, "Exception occured while creating Configuration File for Policy : " + policy.getPolicyName());
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar,
+ "Exception occured while creating Configuration File for Policy : " + policy.getPolicyName());
}
return success;
}
- public void auditLocalDatabase(PAPPolicyEngine papEngine2){
+ public void auditLocalDatabase(PAPPolicyEngine papEngine2) {
logger.debug("PolicyDBDao.auditLocalDatabase() is called");
- try{
+ try {
deleteAllGroupTables();
auditGroups(papEngine2);
- } catch(Exception e){
+ } catch (Exception e) {
PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar, "auditLocalDatabase() error");
- logger.error("Exception Occured"+e);
+ logger.error("Exception Occured" + e);
}
}
- public StdPDPGroup auditLocalFileSystem(StdPDPGroup group){
+ public StdPDPGroup auditLocalFileSystem(StdPDPGroup group) {
logger.info("Starting Local File System group audit");
EntityManager em = emf.createEntityManager();
@@ -1149,8 +1239,8 @@ public class PolicyDBDao {
groupQuery.setParameter(groupIdVar, group.getId());
groupQuery.setParameter(deletedVar, false);
List<?> groupQueryList = groupQuery.getResultList();
- if(groupQueryList!=null && !groupQueryList.isEmpty()){
- GroupEntity dbgroup = (GroupEntity)groupQueryList.get(0);
+ if (groupQueryList != null && !groupQueryList.isEmpty()) {
+ GroupEntity dbgroup = (GroupEntity) groupQueryList.get(0);
updatedGroup = synchronizeGroupPoliciesInFileSystem(group, dbgroup);
logger.info("Group was updated during file system audit: " + updatedGroup.toString());
}
@@ -1158,8 +1248,9 @@ public class PolicyDBDao {
logger.error(e);
} catch (Exception e) {
logger.error(e);
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar, "Caught Exception trying to check if group exists groupQuery.getResultList()");
- throw new PersistenceException("Query failed trying to check if group "+group.getId()+" exists");
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar,
+ "Caught Exception trying to check if group exists groupQuery.getResultList()");
+ throw new PersistenceException("Query failed trying to check if group " + group.getId() + " exists");
}
em.getTransaction().commit();
@@ -1169,7 +1260,7 @@ public class PolicyDBDao {
}
- public void deleteAllGroupTables(){
+ public void deleteAllGroupTables() {
logger.debug("PolicyDBDao.deleteAllGroupTables() called");
EntityManager em = emf.createEntityManager();
em.getTransaction().begin();
@@ -1185,18 +1276,18 @@ public class PolicyDBDao {
}
@SuppressWarnings("unchecked")
- public void auditGroups(PAPPolicyEngine papEngine2){
+ public void auditGroups(PAPPolicyEngine papEngine2) {
logger.debug("PolicyDBDao.auditGroups() called");
EntityManager em = emf.createEntityManager();
em.getTransaction().begin();
final String AUDIT_STR = "Audit";
- try{
+ try {
Set<OnapPDPGroup> groups = papEngine2.getOnapPDPGroups();
- for (OnapPDPGroup grp : groups){
- try{
+ for (OnapPDPGroup grp : groups) {
+ try {
GroupEntity groupEntity = new GroupEntity();
em.persist(groupEntity);
groupEntity.setGroupName(grp.getName());
@@ -1205,9 +1296,9 @@ public class PolicyDBDao {
groupEntity.setCreatedBy(AUDIT_STR);
groupEntity.setGroupId(createNewPDPGroupId(grp.getId()));
groupEntity.setModifiedBy(AUDIT_STR);
- Set<OnapPDP> pdps = grp.getOnapPdps();
+ Set<OnapPDP> pdps = grp.getOnapPdps();
- for(OnapPDP pdp : pdps){
+ for (OnapPDP pdp : pdps) {
PdpEntity pdpEntity = new PdpEntity();
em.persist(pdpEntity);
pdpEntity.setGroup(groupEntity);
@@ -1221,11 +1312,12 @@ public class PolicyDBDao {
Set<PDPPolicy> policies = grp.getPolicies();
- for(PDPPolicy policy : policies){
- try{
+ for (PDPPolicy policy : policies) {
+ try {
String[] stringArray = getNameScopeAndVersionFromPdpPolicy(policy.getId());
- if(stringArray == null) {
- throw new IllegalArgumentException("Invalid input - policyID must contain name, scope and version");
+ if (stringArray == null) {
+ throw new IllegalArgumentException(
+ "Invalid input - policyID must contain name, scope and version");
}
List<PolicyEntity> policyEntityList;
Query getPolicyEntitiesQuery = em.createNamedQuery("PolicyEntity.findByNameAndScope");
@@ -1234,21 +1326,23 @@ public class PolicyDBDao {
policyEntityList = getPolicyEntitiesQuery.getResultList();
PolicyEntity policyEntity = null;
- if(!policyEntityList.isEmpty()){
+ if (!policyEntityList.isEmpty()) {
policyEntity = policyEntityList.get(0);
}
- if(policyEntity != null){
+ if (policyEntity != null) {
groupEntity.addPolicyToGroup(policyEntity);
}
- }catch(Exception e2){
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e2, policyDBDaoVar, "Exception auditGroups inner catch");
+ } catch (Exception e2) {
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e2, policyDBDaoVar,
+ "Exception auditGroups inner catch");
}
}
- }catch(Exception e1){
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e1, policyDBDaoVar, "Exception auditGroups middle catch");
+ } catch (Exception e1) {
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e1, policyDBDaoVar,
+ "Exception auditGroups middle catch");
}
}
- }catch(Exception e){
+ } catch (Exception e) {
em.getTransaction().rollback();
PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar, "Exception auditGroups outer catch");
em.close();
@@ -1260,18 +1354,21 @@ public class PolicyDBDao {
}
- private String getConfigFile(String filename, PolicyRestAdapter policy){
- if(policy == null){
- return getConfigFile(filename, (String)null);
+ private String getConfigFile(String filename, PolicyRestAdapter policy) {
+ if (policy == null) {
+ return getConfigFile(filename, (String) null);
}
return getConfigFile(filename, policy.getConfigType());
}
+
//copied from ConfigPolicy.java and modified
// Here we are adding the extension for the configurations file based on the
// config type selection for saving.
private String getConfigFile(String inputFilename, String configType) {
String filename = inputFilename;
- logger.debug("getConfigFile(String filename, String scope, String configType) as getConfigFile("+filename+", "+configType+") called");
+ logger.debug(
+ "getConfigFile(String filename, String scope, String configType) as getConfigFile(" + filename + ", " +
+ configType + ") called");
filename = FilenameUtils.removeExtension(filename);
String id = configType;
@@ -1292,20 +1389,20 @@ public class PolicyDBDao {
return filename;
}
- private String[] getNameScopeAndVersionFromPdpPolicy(String fileName){
+ private String[] getNameScopeAndVersionFromPdpPolicy(String fileName) {
String[] splitByDots = fileName.split("\\.");
- if(splitByDots.length < 3){
+ if (splitByDots.length < 3) {
return null;
}
- String policyName = splitByDots[splitByDots.length-3];
- String version = splitByDots[splitByDots.length-2];
+ String policyName = splitByDots[splitByDots.length - 3];
+ String version = splitByDots[splitByDots.length - 2];
//policy names now include version
String scope = "";
- for(int i=0;i<splitByDots.length-3;i++){
+ for (int i = 0; i < splitByDots.length - 3; i++) {
scope += ".".concat(splitByDots[i]);
}
//remove the first dot
- if(scope.length() > 0){
+ if (scope.length() > 0) {
scope = scope.substring(1);
}
String[] returnArray = new String[3];
@@ -1338,12 +1435,13 @@ public class PolicyDBDao {
/**
* Checks if any of the given strings are empty or null
+ *
* @param strings One or more Strings (or nulls) to check if they are null or empty
* @return true if one or more of the given strings are empty or null
*/
- public static boolean isNullOrEmpty(String... strings){
- for(String s : strings){
- if(s == null || "".equals(s)){
+ public static boolean isNullOrEmpty(String... strings) {
+ for (String s : strings) {
+ if (s == null || "".equals(s)) {
return true;
}
}
@@ -1361,15 +1459,16 @@ public class PolicyDBDao {
private boolean operationRun = false;
private final Thread transactionTimer;
- private PolicyDBDaoTransactionInstance(){
+ private PolicyDBDaoTransactionInstance() {
//call the constructor with arguments
this(Integer.parseInt(XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_TRANS_TIMEOUT)),
Integer.parseInt(XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_TRANS_WAIT)));
}
+
//timeout is how long the transaction can sit before rolling back
//wait time is how long to wait for the transaction to start before throwing an exception
- private PolicyDBDaoTransactionInstance(int transactionTimeout, int transactionWaitTime){
- if(logger.isDebugEnabled()){
+ private PolicyDBDaoTransactionInstance(int transactionTimeout, int transactionWaitTime) {
+ if (logger.isDebugEnabled()) {
logger.debug("\n\nPolicyDBDaoTransactionInstance() as PolicyDBDaoTransactionInstance() called:"
+ "\n transactionTimeout = " + transactionTimeout
+ "\n transactionWaitTime = " + transactionWaitTime + "\n\n");
@@ -1379,24 +1478,27 @@ public class PolicyDBDao {
groupId = -1;
pdpId = -1;
newGroupId = null;
- synchronized(emLock){
- try{
- startTransactionSynced(this.em,transactionWaitTime);
- } catch(Exception e){
+ synchronized (emLock) {
+ try {
+ startTransactionSynced(this.em, transactionWaitTime);
+ } catch (Exception e) {
logger.debug(e);
- throw new PersistenceException("Could not lock transaction within "+transactionWaitTime+" milliseconds");
+ throw new PersistenceException(
+ "Could not lock transaction within " + transactionWaitTime + " milliseconds");
}
}
class TransactionTimer implements Runnable {
private int sleepTime;
- public TransactionTimer(int timeout){
+
+ public TransactionTimer(int timeout) {
this.sleepTime = timeout;
}
+
@Override
public void run() {
- if(logger.isDebugEnabled()){
- Date date= new java.util.Date();
+ if (logger.isDebugEnabled()) {
+ Date date = new java.util.Date();
logger.debug("\n\nTransactionTimer.run() - SLEEPING: "
+ "\n sleepTime (ms) = " + sleepTime
+ "\n TimeStamp = " + date.getTime()
@@ -1406,8 +1508,8 @@ public class PolicyDBDao {
Thread.sleep(sleepTime);
} catch (InterruptedException e) {
//probably, the transaction was completed, the last thing we want to do is roll back
- if(logger.isDebugEnabled()){
- Date date= new java.util.Date();
+ if (logger.isDebugEnabled()) {
+ Date date = new java.util.Date();
logger.debug("\n\nTransactionTimer.run() - WAKE Interrupt: "
+ "\n TimeStamp = " + date.getTime()
+ "\n\n");
@@ -1415,8 +1517,8 @@ public class PolicyDBDao {
Thread.currentThread().interrupt();
return;
}
- if(logger.isDebugEnabled()){
- Date date= new java.util.Date();
+ if (logger.isDebugEnabled()) {
+ Date date = new java.util.Date();
logger.debug("\n\nTransactionTimer.run() - WAKE Timeout: "
+ "\n TimeStamp = " + date.getTime()
+ "\n\n");
@@ -1426,88 +1528,101 @@ public class PolicyDBDao {
}
- transactionTimer = new Thread(new TransactionTimer(transactionTimeout),"transactionTimerThread");
+ transactionTimer = new Thread(new TransactionTimer(transactionTimeout), "transactionTimerThread");
transactionTimer.start();
}
- private void checkBeforeOperationRun(){
+ private void checkBeforeOperationRun() {
checkBeforeOperationRun(false);
}
- private void checkBeforeOperationRun(boolean justCheckOpen){
- if(!isTransactionOpen()){
+
+ private void checkBeforeOperationRun(boolean justCheckOpen) {
+ if (!isTransactionOpen()) {
PolicyLogger.error("There is no transaction currently open");
throw new IllegalStateException("There is no transaction currently open");
}
- if(operationRun && !justCheckOpen){
- PolicyLogger.error("An operation has already been performed and the current transaction should be committed");
- throw new IllegalStateException("An operation has already been performed and the current transaction should be committed");
+ if (operationRun && !justCheckOpen) {
+ PolicyLogger
+ .error("An operation has already been performed and the current transaction should be " +
+ "committed");
+ throw new IllegalStateException(
+ "An operation has already been performed and the current transaction should be committed");
}
operationRun = true;
}
+
@Override
public void commitTransaction() {
- synchronized(emLock){
+ synchronized (emLock) {
logger.debug("commitTransaction() as commitTransaction() called");
- if(!isTransactionOpen()){
+ if (!isTransactionOpen()) {
logger.warn("There is no open transaction to commit");
- try{
+ try {
em.close();
- } catch(Exception e){
- logger.error("Exception Occured"+e);
+ } catch (Exception e) {
+ logger.error("Exception Occured" + e);
}
return;
}
- try{
+ try {
em.getTransaction().commit();
- } catch(RollbackException e){
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar, "Caught RollbackException on em.getTransaction().commit()");
- throw new PersistenceException("The commit failed. Message:\n"+e.getMessage());
+ } catch (RollbackException e) {
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar,
+ "Caught RollbackException on em.getTransaction().commit()");
+ throw new PersistenceException("The commit failed. Message:\n" + e.getMessage());
}
em.close();
// need to revisit
- if(policyId >= 0){
- if(newGroupId != null){
- try{
- notifyOthers(policyId,POLICY_NOTIFICATION,newGroupId);
- } catch(Exception e){
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar, "Caught Exception on notifyOthers("+policyId+","+POLICY_NOTIFICATION+","+newGroupId+")");
+ if (policyId >= 0) {
+ if (newGroupId != null) {
+ try {
+ notifyOthers(policyId, POLICY_NOTIFICATION, newGroupId);
+ } catch (Exception e) {
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar,
+ "Caught Exception on notifyOthers(" + policyId + "," + POLICY_NOTIFICATION + "," +
+ newGroupId + ")");
}
} else {
- try{
- notifyOthers(policyId,POLICY_NOTIFICATION);
- } catch(Exception e){
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar, "Caught Exception on notifyOthers("+policyId+","+POLICY_NOTIFICATION+")");
+ try {
+ notifyOthers(policyId, POLICY_NOTIFICATION);
+ } catch (Exception e) {
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar,
+ "Caught Exception on notifyOthers(" + policyId + "," + POLICY_NOTIFICATION + ")");
}
}
}
- if(groupId >= 0){
+ if (groupId >= 0) {
//we don't want commit to fail just because this does
- if(newGroupId != null){
- try{
- notifyOthers(groupId,GROUP_NOTIFICATION,newGroupId);
- } catch(Exception e){
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar, "Caught Exception on notifyOthers("+groupId+","+GROUP_NOTIFICATION+","+newGroupId+")");
+ if (newGroupId != null) {
+ try {
+ notifyOthers(groupId, GROUP_NOTIFICATION, newGroupId);
+ } catch (Exception e) {
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar,
+ "Caught Exception on notifyOthers(" + groupId + "," + GROUP_NOTIFICATION + "," +
+ newGroupId + ")");
}
} else {
- try{
- notifyOthers(groupId,GROUP_NOTIFICATION);
- } catch(Exception e){
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar, "Caught Exception on notifyOthers("+groupId+","+GROUP_NOTIFICATION+")");
+ try {
+ notifyOthers(groupId, GROUP_NOTIFICATION);
+ } catch (Exception e) {
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar,
+ "Caught Exception on notifyOthers(" + groupId + "," + GROUP_NOTIFICATION + ")");
}
}
}
- if(pdpId >= 0){
+ if (pdpId >= 0) {
//we don't want commit to fail just because this does
- try{
- notifyOthers(pdpId,PDP_NOTIFICATION);
- } catch(Exception e){
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar, "Caught Exception on notifyOthers("+pdpId+","+PDP_NOTIFICATION+")");
+ try {
+ notifyOthers(pdpId, PDP_NOTIFICATION);
+ } catch (Exception e) {
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar,
+ "Caught Exception on notifyOthers(" + pdpId + "," + PDP_NOTIFICATION + ")");
}
}
}
- if(transactionTimer != null){
+ if (transactionTimer != null) {
transactionTimer.interrupt();
}
}
@@ -1515,201 +1630,230 @@ public class PolicyDBDao {
@Override
public void rollbackTransaction() {
logger.debug("rollbackTransaction() as rollbackTransaction() called");
- synchronized(emLock){
- if(isTransactionOpen()){
+ synchronized (emLock) {
+ if (isTransactionOpen()) {
- try{
+ try {
em.getTransaction().rollback();
- } catch(Exception e){
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar, "Could not rollback transaction");
+ } catch (Exception e) {
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar,
+ "Could not rollback transaction");
}
- try{
+ try {
em.close();
- }catch(Exception e){
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar, "Could not close EntityManager");
+ } catch (Exception e) {
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar,
+ "Could not close EntityManager");
}
} else {
- try{
+ try {
em.close();
- }catch(Exception e){
+ } catch (Exception e) {
logger.warn("Could not close already closed transaction", e);
}
}
}
- if(transactionTimer != null){
+ if (transactionTimer != null) {
transactionTimer.interrupt();
}
}
- private void createPolicy(PolicyRestAdapter policy, String username, String policyScope, String inputPolicyName, String policyDataString) {
+ private void createPolicy(PolicyRestAdapter policy, String username, String policyScope, String inputPolicyName,
+ String policyDataString) {
String policyName = inputPolicyName;
- logger.debug("createPolicy(PolicyRestAdapter policy, String username, String policyScope, String policyName, String policyDataString) as createPolicy("+policy+", "+username+", "+policyScope+", "+policyName+", "+policyDataString+") called");
- synchronized(emLock){
+ logger.debug(
+ "createPolicy(PolicyRestAdapter policy, String username, String policyScope, String policyName, " +
+ "String policyDataString) as createPolicy(" +
+ policy + ", " + username + ", " + policyScope + ", " + policyName + ", " +
+ policyDataString + ") called");
+ synchronized (emLock) {
checkBeforeOperationRun();
String configName = policyName;
- if(policyName.contains("Config_")){
+ if (policyName.contains("Config_")) {
policyName = policyName.replace(".Config_", ":Config_");
- }else if(policyName.contains("Action_")){
+ } else if (policyName.contains("Action_")) {
policyName = policyName.replace(".Action_", ":Action_");
- }else if(policyName.contains("Decision_")){
+ } else if (policyName.contains("Decision_")) {
policyName = policyName.replace(".Decision_", ":Decision_");
}
policyName = policyName.split(":")[1];
- Query createPolicyQuery = em.createQuery("SELECT p FROM PolicyEntity p WHERE p.scope=:scope AND p.policyName=:policyName");
+ Query createPolicyQuery = em.createQuery(
+ "SELECT p FROM PolicyEntity p WHERE p.scope=:scope AND p.policyName=:policyName");
createPolicyQuery.setParameter(scope, policyScope);
createPolicyQuery.setParameter("policyName", policyName);
List<?> createPolicyQueryList = createPolicyQuery.getResultList();
PolicyEntity newPolicyEntity;
boolean update;
- if(createPolicyQueryList.isEmpty()){
+ if (createPolicyQueryList.isEmpty()) {
newPolicyEntity = new PolicyEntity();
update = false;
- } else if(createPolicyQueryList.size() > 1){
- PolicyLogger.error("Somehow, more than one policy with the same scope, name, and deleted status were found in the database");
- throw new PersistenceException("Somehow, more than one policy with the same scope, name, and deleted status were found in the database");
+ } else if (createPolicyQueryList.size() > 1) {
+ PolicyLogger
+ .error("Somehow, more than one policy with the same scope, name, and deleted status were " +
+ "found in the database");
+ throw new PersistenceException(
+ "Somehow, more than one policy with the same scope, name, and deleted status were found " +
+ "in the database");
} else {
- newPolicyEntity = (PolicyEntity)createPolicyQueryList.get(0);
+ newPolicyEntity = (PolicyEntity) createPolicyQueryList.get(0);
update = true;
}
ActionBodyEntity newActionBodyEntity = null;
- if(policy.getPolicyType().equals(action)){
+ if (policy.getPolicyType().equals(action)) {
boolean abupdate = false;
- if(newPolicyEntity.getActionBodyEntity() == null){
+ if (newPolicyEntity.getActionBodyEntity() == null) {
newActionBodyEntity = new ActionBodyEntity();
- }else{
- newActionBodyEntity = em.find(ActionBodyEntity.class, newPolicyEntity.getActionBodyEntity().getActionBodyId());
+ } else {
+ newActionBodyEntity = em.find(ActionBodyEntity.class,
+ newPolicyEntity.getActionBodyEntity().getActionBodyId());
abupdate = true;
}
- if(newActionBodyEntity != null){
- if(!abupdate){
+ if (newActionBodyEntity != null) {
+ if (!abupdate) {
em.persist(newActionBodyEntity);
}
//build the file path
//trim the .xml off the end
String policyNameClean = FilenameUtils.removeExtension(configName);
- String actionBodyName = policyNameClean + ".json";
+ String actionBodyName = policyNameClean + ".json";
//get the action body
String actionBodyString = policy.getActionBody();
- if(actionBodyString == null){
+ if (actionBodyString == null) {
actionBodyString = "{}";
}
newActionBodyEntity.setActionBody(actionBodyString);
newActionBodyEntity.setActionBodyName(actionBodyName);
newActionBodyEntity.setModifiedBy("PolicyDBDao.createPolicy()");
newActionBodyEntity.setDeleted(false);
- if(!abupdate){
+ if (!abupdate) {
newActionBodyEntity.setCreatedBy("PolicyDBDao.createPolicy()");
}
- if(logger.isDebugEnabled()){
+ if (logger.isDebugEnabled()) {
logger.debug("\nPolicyDBDao.createPolicy"
- + "\n newActionBodyEntity.getActionBody() = " + newActionBodyEntity.getActionBody()
- + "\n newActionBodyEntity.getActionBodyName() = " + newActionBodyEntity.getActionBodyName()
- + "\n newActionBodyEntity.getModifiedBy() = " + newActionBodyEntity.getModifiedBy()
+ + "\n newActionBodyEntity.getActionBody() = " +
+ newActionBodyEntity.getActionBody()
+ + "\n newActionBodyEntity.getActionBodyName() = " +
+ newActionBodyEntity.getActionBodyName()
+ + "\n newActionBodyEntity.getModifiedBy() = " +
+ newActionBodyEntity.getModifiedBy()
+ "\n newActionBodyEntity.getCreatedBy() = " + newActionBodyEntity.getCreatedBy()
+ "\n newActionBodyEntity.isDeleted() = " + newActionBodyEntity.isDeleted()
+ "\n FLUSHING to DB");
}
//push the actionBodyEntity to the DB
em.flush();
- }else{
+ } else {
//newActionBodyEntity == null
//We have a actionBody in the policy but we found no actionBody in the DB
String msg = "\n\nPolicyDBDao.createPolicy - Incoming Action policy had an "
+ "actionBody, but it could not be found in the DB for update."
+ "\n policyScope = " + policyScope
+ "\n policyName = " + policyName + "\n\n";
- PolicyLogger.error("PolicyDBDao.createPolicy - Incoming Action policy had an actionBody, but it could not be found in the DB for update: policyName = " + policyName);
+ PolicyLogger
+ .error("PolicyDBDao.createPolicy - Incoming Action policy had an actionBody, but it " +
+ "could not be found in the DB for update: policyName = " +
+ policyName);
throw new IllegalArgumentException(msg);
}
}
ConfigurationDataEntity newConfigurationDataEntity;
- if(policy.getPolicyType().equals(config)){
+ if (policy.getPolicyType().equals(config)) {
boolean configUpdate;
- if(newPolicyEntity.getConfigurationData() == null){
+ if (newPolicyEntity.getConfigurationData() == null) {
newConfigurationDataEntity = new ConfigurationDataEntity();
configUpdate = false;
} else {
- newConfigurationDataEntity = em.find(ConfigurationDataEntity.class, newPolicyEntity.getConfigurationData().getConfigurationDataId());
+ newConfigurationDataEntity = em.find(ConfigurationDataEntity.class,
+ newPolicyEntity.getConfigurationData().getConfigurationDataId());
configUpdate = true;
}
- if(newConfigurationDataEntity != null){
- if(!configUpdate){
+ if (newConfigurationDataEntity != null) {
+ if (!configUpdate) {
em.persist(newConfigurationDataEntity);
}
- if(!stringEquals(newConfigurationDataEntity.getConfigurationName(),getConfigFile(configName,policy))){
- newConfigurationDataEntity.setConfigurationName(getConfigFile(configName,policy));
+ if (!stringEquals(newConfigurationDataEntity.getConfigurationName(),
+ getConfigFile(configName, policy))) {
+ newConfigurationDataEntity.setConfigurationName(getConfigFile(configName, policy));
}
- if(newConfigurationDataEntity.getConfigType() == null || !newConfigurationDataEntity.getConfigType().equals(policy.getConfigType())){
+ if (newConfigurationDataEntity.getConfigType() == null ||
+ !newConfigurationDataEntity.getConfigType().equals(policy.getConfigType())) {
newConfigurationDataEntity.setConfigType(policy.getConfigType());
}
- if(!configUpdate){
+ if (!configUpdate) {
newConfigurationDataEntity.setCreatedBy(username);
}
- if(newConfigurationDataEntity.getModifiedBy() == null || !newConfigurationDataEntity.getModifiedBy().equals(username)){
+ if (newConfigurationDataEntity.getModifiedBy() == null ||
+ !newConfigurationDataEntity.getModifiedBy().equals(username)) {
newConfigurationDataEntity.setModifiedBy(username);
}
- if(newConfigurationDataEntity.getDescription() == null || !newConfigurationDataEntity.getDescription().equals("")){
+ if (newConfigurationDataEntity.getDescription() == null ||
+ !newConfigurationDataEntity.getDescription().equals("")) {
newConfigurationDataEntity.setDescription("");
}
- if(newConfigurationDataEntity.getConfigBody() == null || newConfigurationDataEntity.getConfigBody().isEmpty() ||
- (!newConfigurationDataEntity.getConfigBody().equals(policy.getConfigBodyData()))){
+ if (newConfigurationDataEntity.getConfigBody() == null ||
+ newConfigurationDataEntity.getConfigBody().isEmpty() ||
+ (!newConfigurationDataEntity.getConfigBody().equals(policy.getConfigBodyData()))) {
//hopefully one of these won't be null
- if(policy.getConfigBodyData() == null || policy.getConfigBodyData().isEmpty()){
+ if (policy.getConfigBodyData() == null || policy.getConfigBodyData().isEmpty()) {
newConfigurationDataEntity.setConfigBody(policy.getJsonBody());
- }else{
+ } else {
newConfigurationDataEntity.setConfigBody(policy.getConfigBodyData());
}
}
- if(newConfigurationDataEntity.isDeleted()){
+ if (newConfigurationDataEntity.isDeleted()) {
newConfigurationDataEntity.setDeleted(false);
}
em.flush();
- }else{
- //We have a configurationData body in the policy but we found no configurationData body in the DB
+ } else {
+ //We have a configurationData body in the policy but we found no configurationData body in
+ // the DB
String msg = "\n\nPolicyDBDao.createPolicy - Incoming Config policy had a "
+ "configurationData body, but it could not be found in the DB for update."
+ "\n policyScope = " + policyScope
+ "\n policyName = " + policyName + "\n\n";
- PolicyLogger.error("PolicyDBDao.createPolicy - Incoming Config policy had a configurationData body, but it could not be found in the DB for update: policyName = " + policyName);
+ PolicyLogger
+ .error("PolicyDBDao.createPolicy - Incoming Config policy had a configurationData " +
+ "body, but it could not be found in the DB for update: policyName = " +
+ policyName);
throw new IllegalArgumentException(msg);
}
} else {
newConfigurationDataEntity = null;
}
- if(!update){
+ if (!update) {
em.persist(newPolicyEntity);
}
policyId = newPolicyEntity.getPolicyId();
- if(!stringEquals(newPolicyEntity.getPolicyName(),policyName)){
+ if (!stringEquals(newPolicyEntity.getPolicyName(), policyName)) {
newPolicyEntity.setPolicyName(policyName);
}
- if(!stringEquals(newPolicyEntity.getCreatedBy(),username)){
+ if (!stringEquals(newPolicyEntity.getCreatedBy(), username)) {
newPolicyEntity.setCreatedBy(username);
}
- if(!stringEquals(newPolicyEntity.getDescription(),policy.getPolicyDescription())){
+ if (!stringEquals(newPolicyEntity.getDescription(), policy.getPolicyDescription())) {
newPolicyEntity.setDescription(policy.getPolicyDescription());
}
- if(!stringEquals(newPolicyEntity.getModifiedBy(),username)){
+ if (!stringEquals(newPolicyEntity.getModifiedBy(), username)) {
newPolicyEntity.setModifiedBy(username);
}
- if(!stringEquals(newPolicyEntity.getPolicyData(),policyDataString)){
+ if (!stringEquals(newPolicyEntity.getPolicyData(), policyDataString)) {
newPolicyEntity.setPolicyData(policyDataString);
}
- if(!stringEquals(newPolicyEntity.getScope(),policyScope)){
+ if (!stringEquals(newPolicyEntity.getScope(), policyScope)) {
newPolicyEntity.setScope(policyScope);
}
- if(newPolicyEntity.isDeleted() == true){
+ if (newPolicyEntity.isDeleted() == true) {
newPolicyEntity.setDeleted(false);
}
newPolicyEntity.setConfigurationData(newConfigurationDataEntity);
@@ -1718,120 +1862,128 @@ public class PolicyDBDao {
em.flush();
this.policyId = newPolicyEntity.getPolicyId();
}
- return;
}
@SuppressWarnings("unused")
- public PolicyEntity getPolicy(int policyID){
- return getPolicy(policyID,null,null);
+ public PolicyEntity getPolicy(int policyID) {
+ return getPolicy(policyID, null, null);
}
- public PolicyEntity getPolicy(String policyName,String scope){
- return getPolicy(-1,policyName,scope);
+
+ public PolicyEntity getPolicy(String policyName, String scope) {
+ return getPolicy(-1, policyName, scope);
}
- private PolicyEntity getPolicy(int policyID, String policyName,String scope){
- logger.debug("getPolicy(int policyId, String policyName) as getPolicy("+policyID+","+policyName+") called");
- if(policyID < 0 && isNullOrEmpty(policyName,scope)){
- throw new IllegalArgumentException("policyID must be at least 0 or policyName must be not null or blank");
+
+ private PolicyEntity getPolicy(int policyID, String policyName, String scope) {
+ logger.debug("getPolicy(int policyId, String policyName) as getPolicy(" + policyID + "," + policyName +
+ ") called");
+ if (policyID < 0 && isNullOrEmpty(policyName, scope)) {
+ throw new IllegalArgumentException(
+ "policyID must be at least 0 or policyName must be not null or blank");
}
- synchronized(emLock){
+ synchronized (emLock) {
checkBeforeOperationRun(true);
//check if group exists
String policyId;
Query policyQuery;
- if(!isNullOrEmpty(policyName,scope)){
+ if (!isNullOrEmpty(policyName, scope)) {
policyId = policyName;
- policyQuery = em.createQuery("SELECT p FROM PolicyEntity p WHERE p.policyName=:name AND p.scope=:scope");
+ policyQuery =
+ em.createQuery("SELECT p FROM PolicyEntity p WHERE p.policyName=:name AND p.scope=:scope");
policyQuery.setParameter("name", policyId);
policyQuery.setParameter("scope", scope);
- } else{
+ } else {
policyId = String.valueOf(policyID);
policyQuery = em.createNamedQuery("PolicyEntity.FindById");
policyQuery.setParameter("id", policyId);
}
List<?> policyQueryList;
- try{
+ try {
policyQueryList = policyQuery.getResultList();
- }catch(Exception e){
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar, "Caught Exception trying to get policy with policyQuery.getResultList()");
- throw new PersistenceException("Query failed trying to get policy "+policyId);
+ } catch (Exception e) {
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar,
+ "Caught Exception trying to get policy with policyQuery.getResultList()");
+ throw new PersistenceException("Query failed trying to get policy " + policyId);
}
- if(policyQueryList.isEmpty()){
- PolicyLogger.error("Policy does not exist with id "+policyId);
- throw new PersistenceException("Group policy is being added to does not exist with id "+policyId);
- } else if(policyQueryList.size() > 1){
- PolicyLogger.error(duplicatePolicyId+policyId+foundInDB);
- throw new PersistenceException(duplicatePolicyId+policyId+foundInDB);
+ if (policyQueryList.isEmpty()) {
+ PolicyLogger.error("Policy does not exist with id " + policyId);
+ throw new PersistenceException("Group policy is being added to does not exist with id " + policyId);
+ } else if (policyQueryList.size() > 1) {
+ PolicyLogger.error(duplicatePolicyId + policyId + foundInDB);
+ throw new PersistenceException(duplicatePolicyId + policyId + foundInDB);
}
- return (PolicyEntity)policyQueryList.get(0);
+ return (PolicyEntity) policyQueryList.get(0);
}
}
@Override
- public GroupEntity getGroup(long groupKey){
- logger.debug("getGroup(int groupKey) as getGroup("+groupKey+") called");
- if(groupKey < 0){
+ public GroupEntity getGroup(long groupKey) {
+ logger.debug("getGroup(int groupKey) as getGroup(" + groupKey + ") called");
+ if (groupKey < 0) {
throw new IllegalArgumentException("groupKey must be at least 0");
}
- synchronized(emLock){
+ synchronized (emLock) {
checkBeforeOperationRun(true);
//check if group exists
Query groupQuery = em.createQuery("SELECT g FROM GroupEntity g WHERE g.groupKey=:groupKey");
groupQuery.setParameter("groupKey", groupKey);
List<?> groupQueryList;
- try{
+ try {
groupQueryList = groupQuery.getResultList();
- }catch(Exception e){
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar, "Caught Exception trying to get group with groupQuery.getResultList()");
- throw new PersistenceException(queryFailedToGetGroup+groupKey);
+ } catch (Exception e) {
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar,
+ "Caught Exception trying to get group with groupQuery.getResultList()");
+ throw new PersistenceException(queryFailedToGetGroup + groupKey);
}
- if(groupQueryList.isEmpty()){
- PolicyLogger.error("Group does not exist with groupKey "+groupKey);
- throw new PersistenceException("Group does not exist with groupKey "+groupKey);
- } else if(groupQueryList.size() > 1){
- PolicyLogger.error("Somehow, more than one group with the groupKey "+groupKey+foundInDB);
- throw new PersistenceException("Somehow, more than one group with the groupKey "+groupKey+foundInDB);
+ if (groupQueryList.isEmpty()) {
+ PolicyLogger.error("Group does not exist with groupKey " + groupKey);
+ throw new PersistenceException("Group does not exist with groupKey " + groupKey);
+ } else if (groupQueryList.size() > 1) {
+ PolicyLogger.error("Somehow, more than one group with the groupKey " + groupKey + foundInDB);
+ throw new PersistenceException(
+ "Somehow, more than one group with the groupKey " + groupKey + foundInDB);
}
- return (GroupEntity)groupQueryList.get(0);
+ return (GroupEntity) groupQueryList.get(0);
}
}
@Override
- public GroupEntity getGroup(String groupId){
- logger.debug("getGroup(String groupId) as getGroup("+groupId+") called");
- if(isNullOrEmpty(groupId)){
+ public GroupEntity getGroup(String groupId) {
+ logger.debug("getGroup(String groupId) as getGroup(" + groupId + ") called");
+ if (isNullOrEmpty(groupId)) {
throw new IllegalArgumentException("groupId must not be null or empty");
}
- synchronized(emLock){
+ synchronized (emLock) {
checkBeforeOperationRun(true);
//check if group exists
Query groupQuery = em.createQuery("SELECT g FROM GroupEntity g WHERE g.groupId=:groupId");
groupQuery.setParameter(groupIdVar, groupId);
List<?> groupQueryList;
- try{
+ try {
groupQueryList = groupQuery.getResultList();
- }catch(Exception e){
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar, "Caught Exception trying to get group with groupQuery.getResultList()");
- throw new PersistenceException(queryFailedToGetGroup+groupId);
+ } catch (Exception e) {
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar,
+ "Caught Exception trying to get group with groupQuery.getResultList()");
+ throw new PersistenceException(queryFailedToGetGroup + groupId);
}
- if(groupQueryList.isEmpty()){
- PolicyLogger.error("Group does not exist with id "+groupId);
- throw new PersistenceException("Group does not exist with id "+groupId);
- } else if(groupQueryList.size() > 1){
- PolicyLogger.error(duplicateGroupId +groupId+foundInDB);
- throw new PersistenceException(duplicateGroupId+groupId+foundInDB);
+ if (groupQueryList.isEmpty()) {
+ PolicyLogger.error("Group does not exist with id " + groupId);
+ throw new PersistenceException("Group does not exist with id " + groupId);
+ } else if (groupQueryList.size() > 1) {
+ PolicyLogger.error(duplicateGroupId + groupId + foundInDB);
+ throw new PersistenceException(duplicateGroupId + groupId + foundInDB);
}
- return (GroupEntity)groupQueryList.get(0);
+ return (GroupEntity) groupQueryList.get(0);
}
}
@Override
- public List<?> getPdpsInGroup(long groupKey){
- logger.debug("getPdpsInGroup(int groupKey) as getPdpsInGroup("+groupKey+") called");
- if(groupKey < 0){
+ public List<?> getPdpsInGroup(long groupKey) {
+ logger.debug("getPdpsInGroup(int groupKey) as getPdpsInGroup(" + groupKey + ") called");
+ if (groupKey < 0) {
throw new IllegalArgumentException("groupId must not be < 0");
}
- synchronized(emLock){
+ synchronized (emLock) {
checkBeforeOperationRun(true);
Query pdpsQuery = em.createQuery("SELECT p FROM PdpEntity p WHERE p.groupEntity=:group");
pdpsQuery.setParameter("group", getGroup(groupKey));
@@ -1840,103 +1992,114 @@ public class PolicyDBDao {
}
@Override
- public PdpEntity getPdp(long pdpKey){
- logger.debug("getPdp(int pdpKey) as getPdp("+pdpKey+") called");
- if(pdpKey < 0){
+ public PdpEntity getPdp(long pdpKey) {
+ logger.debug("getPdp(int pdpKey) as getPdp(" + pdpKey + ") called");
+ if (pdpKey < 0) {
throw new IllegalArgumentException("pdpKey must be at least 0");
}
- synchronized(emLock){
+ synchronized (emLock) {
checkBeforeOperationRun(true);
//check if group exists
Query pdpQuery = em.createQuery("SELECT p FROM PdpEntity p WHERE p.pdpKey=:pdpKey");
pdpQuery.setParameter("pdpKey", pdpKey);
List<?> pdpQueryList;
- try{
+ try {
pdpQueryList = pdpQuery.getResultList();
- }catch(Exception e){
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar, "Caught Exception trying to get pdp with pdpQuery.getResultList()");
- throw new PersistenceException("Query failed trying to get pdp "+pdpKey);
+ } catch (Exception e) {
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar,
+ "Caught Exception trying to get pdp with pdpQuery.getResultList()");
+ throw new PersistenceException("Query failed trying to get pdp " + pdpKey);
}
- if(pdpQueryList.isEmpty()){
- PolicyLogger.error("Pdp does not exist with pdpKey "+pdpKey);
- throw new PersistenceException("Pdp does not exist with pdpKey "+pdpKey);
- } else if(pdpQueryList.size() > 1){
- PolicyLogger.error("Somehow, more than one pdp with the pdpKey "+pdpKey+foundInDB);
- throw new PersistenceException("Somehow, more than one pdp with the pdpKey "+pdpKey+foundInDB);
+ if (pdpQueryList.isEmpty()) {
+ PolicyLogger.error("Pdp does not exist with pdpKey " + pdpKey);
+ throw new PersistenceException("Pdp does not exist with pdpKey " + pdpKey);
+ } else if (pdpQueryList.size() > 1) {
+ PolicyLogger.error("Somehow, more than one pdp with the pdpKey " + pdpKey + foundInDB);
+ throw new PersistenceException("Somehow, more than one pdp with the pdpKey " + pdpKey + foundInDB);
}
- return (PdpEntity)pdpQueryList.get(0);
+ return (PdpEntity) pdpQueryList.get(0);
}
}
@Override
public boolean isTransactionOpen() {
logger.debug("isTransactionOpen() as isTransactionOpen() called");
- synchronized(emLock){
+ synchronized (emLock) {
return em.isOpen() && em.getTransaction().isActive();
}
}
- private String processConfigPath(String inputConfigPath){
+ private String processConfigPath(String inputConfigPath) {
String configPath = inputConfigPath;
String webappsPath = XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_WEBAPPS);
- if(webappsPath == null){
+ if (webappsPath == null) {
logger.error("Webapps property does not exist");
throw new IllegalArgumentException("Webapps property does not exist");
}
configPath = configPath.replace("$URL", webappsPath);
//make sure the correct slashes are in
- try{
+ try {
configPath = Paths.get(configPath).toString();
- } catch(InvalidPathException e){
- logger.error("Invalid config path: "+configPath, e);
- throw new IllegalArgumentException("Invalid config path: "+configPath);
+ } catch (InvalidPathException e) {
+ logger.error("Invalid config path: " + configPath, e);
+ throw new IllegalArgumentException("Invalid config path: " + configPath);
}
return configPath;
}
- private String readConfigFile(String configPath){
+ private String readConfigFile(String configPath) {
String configDataString = null;
- try(InputStream configContentStream = new FileInputStream(configPath);) {
+ try (InputStream configContentStream = new FileInputStream(configPath);) {
configDataString = IOUtils.toString(configContentStream);
} catch (FileNotFoundException e) {
- logger.error("Caught FileNotFoundException on new FileInputStream("+configPath+")",e);
+ logger.error("Caught FileNotFoundException on new FileInputStream(" + configPath + ")", e);
throw new IllegalArgumentException("The config file path does not exist");
- } catch(IOException e2){
- logger.error("Caught IOException on newIOUtils.toString(configContentStream)",e2);
+ } catch (IOException e2) {
+ logger.error("Caught IOException on newIOUtils.toString(configContentStream)", e2);
throw new IllegalArgumentException("The config file path cannot be read");
}
- if(configDataString == null){
+ if (configDataString == null) {
throw new IllegalArgumentException("The config file path cannot be read");
}
return configDataString;
}
@Override
- public void createPolicy(Policy policy, String username){
+ public void createPolicy(Policy policy, String username) {
- try{
- logger.debug("createPolicy(PolicyRestAdapter policy, String username) as createPolicy("+policy+","+username+") called");
+ try {
+ logger.debug("createPolicy(PolicyRestAdapter policy, String username) as createPolicy(" + policy + "," +
+ username + ") called");
String policyScope = policy.policyAdapter.getDomainDir().replace(File.separator, ".");
//Does not need to be XACMLPolicyWriterWithPapNotify since it is already in the PAP
//and this transaction is intercepted up stream.
- String policyDataString = getPolicyDataString((PolicyType)policy.getCorrectPolicyDataObject());
- if(isJunit){
+ String policyDataString = getPolicyDataString((PolicyType) policy.getCorrectPolicyDataObject());
+ if (isJunit) {
//Using parentPath object to set policy data.
policyDataString = policy.policyAdapter.getParentPath();
}
String configPath = "";
if (policy.policyAdapter.getPolicyType().equalsIgnoreCase(config)) {
- configPath = evaluateXPath("/Policy/Rule/AdviceExpressions/AdviceExpression[contains(@AdviceId,'ID')]/AttributeAssignmentExpression[@AttributeId='URLID']/AttributeValue/text()", policyDataString);
+ configPath = evaluateXPath(
+ "/Policy/Rule/AdviceExpressions/AdviceExpression[contains(@AdviceId,'ID')" +
+ "]/AttributeAssignmentExpression[@AttributeId='URLID']/AttributeValue/text()",
+ policyDataString);
} else if (policy.policyAdapter.getPolicyType().equalsIgnoreCase(action)) {
- configPath = evaluateXPath("/Policy/Rule/ObligationExpressions/ObligationExpression[contains(@ObligationId, " +policy.policyAdapter.getActionAttribute()+ ")]/AttributeAssignmentExpression[@AttributeId='body']/AttributeValue/text()", policyDataString);
+ configPath = evaluateXPath(
+ "/Policy/Rule/ObligationExpressions/ObligationExpression[contains(@ObligationId, " +
+ policy.policyAdapter.getActionAttribute() +
+ ")]/AttributeAssignmentExpression[@AttributeId='body']/AttributeValue/text()",
+ policyDataString);
}
String prefix = null;
if (policy.policyAdapter.getPolicyType().equalsIgnoreCase(config)) {
- prefix = configPath.substring(configPath.indexOf(policyScope+".")+policyScope.concat(".").length(), configPath.lastIndexOf(policy.policyAdapter.getPolicyName()));
- if(isNullOrEmpty(policy.policyAdapter.getConfigBodyData())){
+ prefix = configPath
+ .substring(configPath.indexOf(policyScope + ".") + policyScope.concat(".").length(),
+ configPath.lastIndexOf(policy.policyAdapter.getPolicyName()));
+ if (isNullOrEmpty(policy.policyAdapter.getConfigBodyData())) {
policy.policyAdapter.setConfigBodyData(getConfigData(configPath));
}
} else if (action.equalsIgnoreCase(policy.policyAdapter.getPolicyType())) {
@@ -1945,55 +2108,57 @@ public class PolicyDBDao {
prefix = "Decision_";
}
- if(!(policy.policyAdapter.getData() instanceof PolicyType)){
+ if (!(policy.policyAdapter.getData() instanceof PolicyType)) {
PolicyLogger.error("The data field is not an instance of PolicyType");
throw new IllegalArgumentException("The data field is not an instance of PolicyType");
}
- String finalName = policyScope + "." + prefix+policy.policyAdapter.getPolicyName()+"."+((PolicyType)policy.policyAdapter.getData()).getVersion()+".xml";
- if(policy.policyAdapter.getConfigType() == null || "".equals(policy.policyAdapter.getConfigType())){
+ String finalName = policyScope + "." + prefix + policy.policyAdapter.getPolicyName() + "." +
+ ((PolicyType) policy.policyAdapter.getData()).getVersion() + ".xml";
+ if (policy.policyAdapter.getConfigType() == null || "".equals(policy.policyAdapter.getConfigType())) {
//get the config file extension
String ext = "";
if (configPath != null && !"".equalsIgnoreCase(configPath)) {
- ext = configPath.substring(configPath.lastIndexOf('.'), configPath.length());;
+ ext = configPath.substring(configPath.lastIndexOf('.'), configPath.length());
+ ;
}
- if(ext.contains("txt")){
+ if (ext.contains("txt")) {
policy.policyAdapter.setConfigType(OTHER_CONFIG);
- } else if(ext.contains("json")){
+ } else if (ext.contains("json")) {
policy.policyAdapter.setConfigType(JSON_CONFIG);
- } else if(ext.contains("xml")){
+ } else if (ext.contains("xml")) {
policy.policyAdapter.setConfigType(XML_CONFIG);
- } else if(ext.contains("properties")){
+ } else if (ext.contains("properties")) {
policy.policyAdapter.setConfigType(PROPERTIES_CONFIG);
} else {
- if (policy.policyAdapter.getPolicyType().equalsIgnoreCase(action)){
+ if (policy.policyAdapter.getPolicyType().equalsIgnoreCase(action)) {
policy.policyAdapter.setConfigType(JSON_CONFIG);
}
}
}
- createPolicy(policy.policyAdapter, username, policyScope,finalName,policyDataString);
+ createPolicy(policy.policyAdapter, username, policyScope, finalName, policyDataString);
} catch (Exception e) {
- logger.error("Could not create policy for "+policy,e);
+ logger.error("Could not create policy for " + policy, e);
throw e;
}
}
private String getConfigData(String configPath) {
String configData = "";
- try{
+ try {
configData = getConfigPath(configPath);
- }catch(Exception e){
- logger.error("Could not read config body data for "+configPath,e);
+ } catch (Exception e) {
+ logger.error("Could not read config body data for " + configPath, e);
}
return configData;
}
private String getConfigPath(String configPath) {
- try{
+ try {
String newConfigPath = processConfigPath(configPath);
return readConfigFile(newConfigPath);
- } catch(IllegalArgumentException e2){
- logger.error("Could not process config path: "+configPath,e2);
+ } catch (IllegalArgumentException e2) {
+ logger.error("Could not process config path: " + configPath, e2);
}
return "";
}
@@ -2002,21 +2167,22 @@ public class PolicyDBDao {
try (InputStream policyXmlStream = XACMLPolicyWriter.getXmlAsInputStream(policyType)) {
return IOUtils.toString(policyXmlStream, StandardCharsets.UTF_8);
} catch (IOException e) {
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar, "Caught IOException on IOUtils.toString(policyXmlStream)");
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar,
+ "Caught IOException on IOUtils.toString(policyXmlStream)");
throw new IllegalArgumentException("Cannot parse the policy xml from the PolicyRestAdapter.", e);
}
}
@Override
- public void close(){
- synchronized(emLock){
- if(em.isOpen()){
- if(em.getTransaction().isActive()){
+ public void close() {
+ synchronized (emLock) {
+ if (em.isOpen()) {
+ if (em.getTransaction().isActive()) {
em.getTransaction().rollback();
}
em.close();
}
- if(transactionTimer != null){
+ if (transactionTimer != null) {
transactionTimer.interrupt();
}
}
@@ -2025,29 +2191,31 @@ public class PolicyDBDao {
@Override
public void createGroup(String groupId, String groupName, String inputGroupDescription, String username) {
String groupDescription = inputGroupDescription;
- logger.debug("deletePolicy(String policyToDeletes) as createGroup("+groupId+", "+groupName+", "+groupDescription+") called");
- if(isNullOrEmpty(groupId, groupName, username)){
+ logger.debug("deletePolicy(String policyToDeletes) as createGroup(" + groupId + ", " + groupName + ", " +
+ groupDescription + ") called");
+ if (isNullOrEmpty(groupId, groupName, username)) {
throw new IllegalArgumentException("groupId, groupName, and username must not be null or empty");
}
- if(groupDescription == null){
+ if (groupDescription == null) {
groupDescription = "";
}
- synchronized(emLock){
+ synchronized (emLock) {
checkBeforeOperationRun();
Query checkGroupQuery = em.createQuery(groupEntitySelectQuery);
checkGroupQuery.setParameter(groupIdVar, groupId);
checkGroupQuery.setParameter(deletedVar, false);
List<?> checkGroupQueryList;
- try{
+ try {
checkGroupQueryList = checkGroupQuery.getResultList();
- } catch(Exception e){
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar, "Caught Exception on checkGroupQuery.getResultList()");
+ } catch (Exception e) {
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar,
+ "Caught Exception on checkGroupQuery.getResultList()");
throw new PersistenceException(queryFailedToCheckExisting);
}
- if(!checkGroupQueryList.isEmpty()){
- PolicyLogger.error("The group being added already exists with id "+groupId);
- throw new PersistenceException("The group being added already exists with id "+groupId);
+ if (!checkGroupQueryList.isEmpty()) {
+ PolicyLogger.error("The group being added already exists with id " + groupId);
+ throw new PersistenceException("The group being added already exists with id " + groupId);
}
GroupEntity newGroup = new GroupEntity();
em.persist(newGroup);
@@ -2063,39 +2231,42 @@ public class PolicyDBDao {
}
@Override
- public void updateGroup(OnapPDPGroup group, String username){
- logger.info("PolicyDBDao: updateGroup(PDPGroup group) as updateGroup("+group+","+username+") called");
- if(group == null){
+ public void updateGroup(OnapPDPGroup group, String username) {
+ logger.info(
+ "PolicyDBDao: updateGroup(PDPGroup group) as updateGroup(" + group + "," + username + ") called");
+ if (group == null) {
throw new IllegalArgumentException("PDPGroup group must not be null");
}
- if(isNullOrEmpty(group.getId(), username)){
+ if (isNullOrEmpty(group.getId(), username)) {
throw new IllegalArgumentException("group.getId() and username must not be null or empty");
}
- synchronized(emLock){
+ synchronized (emLock) {
checkBeforeOperationRun();
Query getGroupQuery = em.createQuery(groupEntitySelectQuery);
getGroupQuery.setParameter(groupIdVar, group.getId());
getGroupQuery.setParameter(deletedVar, false);
List<?> getGroupQueryList;
- try{
+ try {
getGroupQueryList = getGroupQuery.getResultList();
- } catch(Exception e){
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar, "Caught Exception on getGroupQuery.getResultList()");
- throw new PersistenceException(queryFailedToGetGroup+group.getId()+" for editing");
- }
- if(getGroupQueryList.isEmpty()){
- PolicyLogger.error("The group cannot be found to update with id "+group.getId());
- throw new PersistenceException("The group cannot be found to update with id "+group.getId());
- } else if(getGroupQueryList.size() > 1){
- PolicyLogger.error(duplicateGroupId+group.getId()+deletedStatusFound);
- throw new PersistenceException(duplicateGroupId+group.getId()+deletedStatusFound);
- }
- GroupEntity groupToUpdateInDB = (GroupEntity)getGroupQueryList.get(0);
- if(!stringEquals(groupToUpdateInDB.getModifiedBy(), username)){
+ } catch (Exception e) {
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar,
+ "Caught Exception on getGroupQuery.getResultList()");
+ throw new PersistenceException(queryFailedToGetGroup + group.getId() + " for editing");
+ }
+ if (getGroupQueryList.isEmpty()) {
+ PolicyLogger.error("The group cannot be found to update with id " + group.getId());
+ throw new PersistenceException("The group cannot be found to update with id " + group.getId());
+ } else if (getGroupQueryList.size() > 1) {
+ PolicyLogger.error(duplicateGroupId + group.getId() + deletedStatusFound);
+ throw new PersistenceException(duplicateGroupId + group.getId() + deletedStatusFound);
+ }
+ GroupEntity groupToUpdateInDB = (GroupEntity) getGroupQueryList.get(0);
+ if (!stringEquals(groupToUpdateInDB.getModifiedBy(), username)) {
groupToUpdateInDB.setModifiedBy(username);
}
- if(group.getDescription() != null && !stringEquals(group.getDescription(),groupToUpdateInDB.getDescription())){
+ if (group.getDescription() != null &&
+ !stringEquals(group.getDescription(), groupToUpdateInDB.getDescription())) {
groupToUpdateInDB.setDescription(group.getDescription());
}
//let's find out what policies have been deleted
@@ -2103,41 +2274,43 @@ public class PolicyDBDao {
try {
oldGroup = (StdPDPGroup) papEngine.getGroup(group.getId());
} catch (PAPException e1) {
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e1, policyDBDaoVar, "We cannot get the group from the papEngine to delete policies");
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e1, policyDBDaoVar,
+ "We cannot get the group from the papEngine to delete policies");
}
- if(oldGroup == null){
+ if (oldGroup == null) {
PolicyLogger.error("We cannot get the group from the papEngine to delete policies");
} else {
Set<String> newPolicySet = new HashSet<>(group.getPolicies().size());
//a multiple of n runtime is faster than n^2, so I am using a hashset to do the comparison
- for(PDPPolicy pol: group.getPolicies()){
+ for (PDPPolicy pol : group.getPolicies()) {
newPolicySet.add(pol.getId());
}
- for(PDPPolicy pol : oldGroup.getPolicies()){
+ for (PDPPolicy pol : oldGroup.getPolicies()) {
//should be fast since getPolicies uses a HashSet in StdPDPGroup
- if(!newPolicySet.contains(pol.getId())){
+ if (!newPolicySet.contains(pol.getId())) {
String[] scopeAndName = getNameScopeAndVersionFromPdpPolicy(pol.getId());
deletePolicyInScope(username, groupToUpdateInDB, pol, scopeAndName);
}
}
}
- if(group.getName() != null && !stringEquals(group.getName(),groupToUpdateInDB.getgroupName())){
+ if (group.getName() != null && !stringEquals(group.getName(), groupToUpdateInDB.getgroupName())) {
//we need to check if the new id exists in the database
String newGroupId = createNewPDPGroupId(group.getName());
Query checkGroupQuery = em.createQuery(groupEntitySelectQuery);
checkGroupQuery.setParameter(groupIdVar, newGroupId);
checkGroupQuery.setParameter(deletedVar, false);
List<?> checkGroupQueryList;
- try{
+ try {
checkGroupQueryList = checkGroupQuery.getResultList();
- } catch(Exception e){
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar, "Caught Exception on checkGroupQuery.getResultList()");
+ } catch (Exception e) {
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar,
+ "Caught Exception on checkGroupQuery.getResultList()");
throw new PersistenceException(queryFailedToCheckExisting);
}
- if(!checkGroupQueryList.isEmpty()){
- PolicyLogger.error("The new group name already exists, group id "+newGroupId);
- throw new PersistenceException("The new group name already exists, group id "+newGroupId);
+ if (!checkGroupQueryList.isEmpty()) {
+ PolicyLogger.error("The new group name already exists, group id " + newGroupId);
+ throw new PersistenceException("The new group name already exists, group id " + newGroupId);
}
groupToUpdateInDB.setGroupId(newGroupId);
groupToUpdateInDB.setGroupName(group.getName());
@@ -2148,13 +2321,14 @@ public class PolicyDBDao {
}
}
- private void deletePolicyInScope(String username, GroupEntity groupToUpdateInDB, PDPPolicy pol, String[] scopeAndName) {
+ private void deletePolicyInScope(String username, GroupEntity groupToUpdateInDB, PDPPolicy pol,
+ String[] scopeAndName) {
PolicyEntity policyToDelete;
if (scopeAndName == null) {
return;
}
- try{
- policyToDelete = getPolicy(scopeAndName[0],scopeAndName[1]);
+ try {
+ policyToDelete = getPolicy(scopeAndName[0], scopeAndName[1]);
if ("XACMLPapServlet.doDelete".equals(username)) {
Iterator<PolicyEntity> dbPolicyIt = groupToUpdateInDB.getPolicies().iterator();
String policyName = getPolicyNameAndVersionFromPolicyFileName(policyToDelete.getPolicyName())[0];
@@ -2162,50 +2336,60 @@ public class PolicyDBDao {
logger.info("PolicyDBDao: delete policy from GroupEntity");
deletePolicyFromGroupEntity(groupToUpdateInDB, policyToDelete, dbPolicyIt, policyName);
}
- }catch(Exception e){
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar, "Could not get policy to remove: "+pol.getId());
- throw new PersistenceException("Could not get policy to remove: "+pol.getId());
+ } catch (Exception e) {
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar,
+ "Could not get policy to remove: " + pol.getId());
+ throw new PersistenceException("Could not get policy to remove: " + pol.getId());
}
}
- private void deletePolicyFromGroupEntity(GroupEntity groupToUpdateInDB, PolicyEntity policyToDelete, Iterator<PolicyEntity> dbPolicyIt, String policyName) {
- try{
- while(dbPolicyIt.hasNext()){
+ private void deletePolicyFromGroupEntity(GroupEntity groupToUpdateInDB, PolicyEntity policyToDelete,
+ Iterator<PolicyEntity> dbPolicyIt, String policyName) {
+ try {
+ while (dbPolicyIt.hasNext()) {
PolicyEntity dbpolicy = dbPolicyIt.next();
- if(policyToDelete.getScope().equals(dbpolicy.getScope()) &&
+ if (policyToDelete.getScope().equals(dbpolicy.getScope()) &&
getPolicyNameAndVersionFromPolicyFileName(dbpolicy.getPolicyName())[0].equals(policyName)) {
dbPolicyIt.remove();
logger.info("PolicyDBDao: deleting policy from the existing group:\n "
- + "policyName is " + policyToDelete.getScope()+"."+policyToDelete.getPolicyName() + "\n"
+ + "policyName is " + policyToDelete.getScope() + "." + policyToDelete.getPolicyName() +
+ "\n"
+ "group is " + groupToUpdateInDB.getGroupId());
}
}
- }catch(Exception e){
+ } catch (Exception e) {
logger.debug(e);
- PolicyLogger.error("Could not delete policy with name: "+ policyToDelete.getScope()+"."+policyToDelete.getPolicyName()+"\n ID: "+ policyToDelete.getPolicyId());
+ PolicyLogger.error("Could not delete policy with name: " + policyToDelete.getScope() + "." +
+ policyToDelete.getPolicyName() + "\n ID: " + policyToDelete.getPolicyId());
}
}
@Override
- public void addPdpToGroup(String pdpID, String groupID, String pdpName, String pdpDescription, int pdpJmxPort, String username) {
- logger.debug("addPdpToGroup(String pdpID, String groupID, String pdpName, String pdpDescription, int pdpJmxPort, String username) as addPdpToGroup("+pdpID+", "+groupID+", "+pdpName+", "+pdpDescription+", "+pdpJmxPort+", "+username+") called");
- if(isNullOrEmpty(pdpID, groupID,pdpName,username)){
+ public void addPdpToGroup(String pdpID, String groupID, String pdpName, String pdpDescription, int pdpJmxPort,
+ String username) {
+ logger.debug(
+ "addPdpToGroup(String pdpID, String groupID, String pdpName, String pdpDescription, int " +
+ "pdpJmxPort, String username) as addPdpToGroup(" +
+ pdpID + ", " + groupID + ", " + pdpName + ", " + pdpDescription + ", " + pdpJmxPort + ", " +
+ username + ") called");
+ if (isNullOrEmpty(pdpID, groupID, pdpName, username)) {
throw new IllegalArgumentException("pdpID, groupID, pdpName, and username must not be null or empty");
}
- synchronized(emLock){
+ synchronized (emLock) {
checkBeforeOperationRun();
Query checkGroupQuery = em.createQuery(groupEntitySelectQuery);
checkGroupQuery.setParameter(groupIdVar, groupID);
checkGroupQuery.setParameter(deletedVar, false);
List<?> checkGroupQueryList;
- try{
+ try {
checkGroupQueryList = checkGroupQuery.getResultList();
- } catch(Exception e){
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar, "Caught Exception trying to check for existing group on checkGroupQuery.getResultList()");
+ } catch (Exception e) {
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar,
+ "Caught Exception trying to check for existing group on checkGroupQuery.getResultList()");
throw new PersistenceException(queryFailedToCheckExisting);
}
- if(checkGroupQueryList.size() != 1){
+ if (checkGroupQueryList.size() != 1) {
PolicyLogger.error("The group does not exist");
throw new PersistenceException("The group does not exist");
}
@@ -2213,16 +2397,18 @@ public class PolicyDBDao {
checkDuplicateQuery.setParameter(pdpIdVariable, pdpID);
checkDuplicateQuery.setParameter(deletedVar, false);
List<?> checkDuplicateList;
- try{
+ try {
checkDuplicateList = checkDuplicateQuery.getResultList();
- } catch(Exception e){
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar, "Caught Exception trying to check for duplicate PDP "+pdpID+" on checkDuplicateQuery.getResultList()");
- throw new PersistenceException("Query failed trying to check for duplicate PDP "+pdpID);
+ } catch (Exception e) {
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar,
+ "Caught Exception trying to check for duplicate PDP " + pdpID +
+ " on checkDuplicateQuery.getResultList()");
+ throw new PersistenceException("Query failed trying to check for duplicate PDP " + pdpID);
}
PdpEntity newPdp;
- if(!checkDuplicateList.isEmpty()){
- logger.warn("PDP already exists with id "+pdpID);
- newPdp = (PdpEntity)checkDuplicateList.get(0);
+ if (!checkDuplicateList.isEmpty()) {
+ logger.warn("PDP already exists with id " + pdpID);
+ newPdp = (PdpEntity) checkDuplicateList.get(0);
} else {
newPdp = new PdpEntity();
em.persist(newPdp);
@@ -2231,7 +2417,7 @@ public class PolicyDBDao {
newPdp.setCreatedBy(username);
newPdp.setDeleted(false);
newPdp.setDescription(pdpDescription);
- newPdp.setGroup((GroupEntity)checkGroupQueryList.get(0));
+ newPdp.setGroup((GroupEntity) checkGroupQueryList.get(0));
newPdp.setJmxPort(pdpJmxPort);
newPdp.setModifiedBy(username);
newPdp.setPdpId(pdpID);
@@ -2244,45 +2430,46 @@ public class PolicyDBDao {
@Override
- public void updatePdp(OnapPDP pdp, String username){
- logger.debug("updatePdp(PDP pdp, String username) as updatePdp("+pdp+","+username+") called");
- if(pdp == null){
+ public void updatePdp(OnapPDP pdp, String username) {
+ logger.debug("updatePdp(PDP pdp, String username) as updatePdp(" + pdp + "," + username + ") called");
+ if (pdp == null) {
throw new IllegalArgumentException("PDP pdp must not be null");
}
- if(isNullOrEmpty(pdp.getId(),username)){
+ if (isNullOrEmpty(pdp.getId(), username)) {
throw new IllegalArgumentException("pdp.getId() and username must not be null or empty");
}
- synchronized(emLock){
+ synchronized (emLock) {
checkBeforeOperationRun();
Query getPdpQuery = em.createQuery(pdpEntitySelectQuery);
getPdpQuery.setParameter(pdpIdVariable, pdp.getId());
getPdpQuery.setParameter(deletedVar, false);
List<?> getPdpQueryList;
- try{
+ try {
getPdpQueryList = getPdpQuery.getResultList();
- } catch(Exception e){
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar, "Caught Exception on getPdpQuery.getResultList()");
- throw new PersistenceException("Query failed trying to get PDP "+pdp.getId());
- }
- if(getPdpQueryList.isEmpty()){
- PolicyLogger.error("The pdp cannot be found to update with id "+pdp.getId());
- throw new PersistenceException("The pdp cannot be found to update with id "+pdp.getId());
- } else if(getPdpQueryList.size() > 1){
- PolicyLogger.error(moreThanOnePDP+pdp.getId()+deletedStatusFound);
- throw new PersistenceException(moreThanOnePDP+pdp.getId()+deletedStatusFound);
- }
- PdpEntity pdpToUpdate = (PdpEntity)getPdpQueryList.get(0);
- if(!stringEquals(pdpToUpdate.getModifiedBy(), username)){
+ } catch (Exception e) {
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar,
+ "Caught Exception on getPdpQuery.getResultList()");
+ throw new PersistenceException("Query failed trying to get PDP " + pdp.getId());
+ }
+ if (getPdpQueryList.isEmpty()) {
+ PolicyLogger.error("The pdp cannot be found to update with id " + pdp.getId());
+ throw new PersistenceException("The pdp cannot be found to update with id " + pdp.getId());
+ } else if (getPdpQueryList.size() > 1) {
+ PolicyLogger.error(moreThanOnePDP + pdp.getId() + deletedStatusFound);
+ throw new PersistenceException(moreThanOnePDP + pdp.getId() + deletedStatusFound);
+ }
+ PdpEntity pdpToUpdate = (PdpEntity) getPdpQueryList.get(0);
+ if (!stringEquals(pdpToUpdate.getModifiedBy(), username)) {
pdpToUpdate.setModifiedBy(username);
}
- if(pdp.getDescription() != null && !stringEquals(pdp.getDescription(),pdpToUpdate.getDescription())){
+ if (pdp.getDescription() != null && !stringEquals(pdp.getDescription(), pdpToUpdate.getDescription())) {
pdpToUpdate.setDescription(pdp.getDescription());
}
- if(pdp.getName() != null && !stringEquals(pdp.getName(),pdpToUpdate.getPdpName())){
+ if (pdp.getName() != null && !stringEquals(pdp.getName(), pdpToUpdate.getPdpName())) {
pdpToUpdate.setPdpName(pdp.getName());
}
- if(pdp.getJmxPort() != null && !pdp.getJmxPort().equals(pdpToUpdate.getJmxPort())){
+ if (pdp.getJmxPort() != null && !pdp.getJmxPort().equals(pdpToUpdate.getJmxPort())) {
pdpToUpdate.setJmxPort(pdp.getJmxPort());
}
@@ -2292,34 +2479,37 @@ public class PolicyDBDao {
}
@Override
- public void movePdp(OnapPDP pdp, OnapPDPGroup group, String username){
- logger.debug("movePdp(PDP pdp, PDPGroup group, String username) as movePdp("+pdp+","+group+","+username+") called");
- if(pdp == null || group == null){
+ public void movePdp(OnapPDP pdp, OnapPDPGroup group, String username) {
+ logger.debug("movePdp(PDP pdp, PDPGroup group, String username) as movePdp(" + pdp + "," + group + "," +
+ username + ") called");
+ if (pdp == null || group == null) {
throw new IllegalArgumentException("PDP pdp and PDPGroup group must not be null");
}
- if(isNullOrEmpty(username,pdp.getId(),group.getId())){
- throw new IllegalArgumentException("pdp.getId(), group.getId(), and username must not be null or empty");
+ if (isNullOrEmpty(username, pdp.getId(), group.getId())) {
+ throw new IllegalArgumentException(
+ "pdp.getId(), group.getId(), and username must not be null or empty");
}
- synchronized(emLock){
+ synchronized (emLock) {
checkBeforeOperationRun();
//check if pdp exists
Query getPdpQuery = em.createQuery(pdpEntitySelectQuery);
getPdpQuery.setParameter(pdpIdVariable, pdp.getId());
getPdpQuery.setParameter(deletedVar, false);
List<?> getPdpQueryList;
- try{
+ try {
getPdpQueryList = getPdpQuery.getResultList();
- } catch(Exception e){
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar, "Caught Exception on getPdpQuery.getResultList()");
- throw new PersistenceException("Query failed trying to get pdp to move with id "+pdp.getId());
+ } catch (Exception e) {
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar,
+ "Caught Exception on getPdpQuery.getResultList()");
+ throw new PersistenceException("Query failed trying to get pdp to move with id " + pdp.getId());
}
- if(getPdpQueryList.isEmpty()){
- PolicyLogger.error("The pdp cannot be found to move with id "+pdp.getId());
- throw new PersistenceException("The pdp cannot be found to move with id "+pdp.getId());
- } else if(getPdpQueryList.size() > 1){
- PolicyLogger.error(moreThanOnePDP+pdp.getId()+deletedStatusFound);
- throw new PersistenceException(moreThanOnePDP+pdp.getId()+deletedStatusFound);
+ if (getPdpQueryList.isEmpty()) {
+ PolicyLogger.error("The pdp cannot be found to move with id " + pdp.getId());
+ throw new PersistenceException("The pdp cannot be found to move with id " + pdp.getId());
+ } else if (getPdpQueryList.size() > 1) {
+ PolicyLogger.error(moreThanOnePDP + pdp.getId() + deletedStatusFound);
+ throw new PersistenceException(moreThanOnePDP + pdp.getId() + deletedStatusFound);
}
//check if new group exists
@@ -2327,20 +2517,21 @@ public class PolicyDBDao {
checkGroupQuery.setParameter(groupIdVar, group.getId());
checkGroupQuery.setParameter(deletedVar, false);
List<?> checkGroupQueryList;
- try{
+ try {
checkGroupQueryList = checkGroupQuery.getResultList();
- } catch(Exception e){
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar, "Caught Exception trying to get group on checkGroupQuery.getResultList()");
- throw new PersistenceException("Query failed trying to get new group "+group.getId());
+ } catch (Exception e) {
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar,
+ "Caught Exception trying to get group on checkGroupQuery.getResultList()");
+ throw new PersistenceException("Query failed trying to get new group " + group.getId());
}
- if(checkGroupQueryList.size() != 1){
- PolicyLogger.error("The group "+group.getId()+" does not exist");
- throw new PersistenceException("The group "+group.getId()+" does not exist");
+ if (checkGroupQueryList.size() != 1) {
+ PolicyLogger.error("The group " + group.getId() + " does not exist");
+ throw new PersistenceException("The group " + group.getId() + " does not exist");
}
- GroupEntity groupToMoveInto = (GroupEntity)checkGroupQueryList.get(0);
- PdpEntity pdpToUpdate = (PdpEntity)getPdpQueryList.get(0);
+ GroupEntity groupToMoveInto = (GroupEntity) checkGroupQueryList.get(0);
+ PdpEntity pdpToUpdate = (PdpEntity) getPdpQueryList.get(0);
pdpToUpdate.setGroup(groupToMoveInto);
- if(!stringEquals(pdpToUpdate.getModifiedBy(), username)){
+ if (!stringEquals(pdpToUpdate.getModifiedBy(), username)) {
pdpToUpdate.setModifiedBy(username);
}
@@ -2350,51 +2541,56 @@ public class PolicyDBDao {
}
@Override
- public void changeDefaultGroup(OnapPDPGroup group, String username){
- logger.debug("changeDefaultGroup(PDPGroup group, String username) as changeDefaultGroup("+group+","+username+") called");
- if(group == null){
+ public void changeDefaultGroup(OnapPDPGroup group, String username) {
+ logger.debug("changeDefaultGroup(PDPGroup group, String username) as changeDefaultGroup(" + group + "," +
+ username + ") called");
+ if (group == null) {
throw new IllegalArgumentException("PDPGroup group must not be null");
}
- if(isNullOrEmpty(group.getId(),username)){
+ if (isNullOrEmpty(group.getId(), username)) {
throw new IllegalArgumentException("group.getId() and username must not be null or empty");
}
- synchronized(emLock){
+ synchronized (emLock) {
checkBeforeOperationRun();
Query getGroupQuery = em.createQuery(groupEntitySelectQuery);
getGroupQuery.setParameter(groupIdVar, group.getId());
getGroupQuery.setParameter(deletedVar, false);
List<?> getGroupQueryList;
- try{
+ try {
getGroupQueryList = getGroupQuery.getResultList();
- } catch(Exception e){
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar, "Caught Exception on getGroupQuery.getResultList()");
- throw new PersistenceException(queryFailedToGetGroup+group.getId());
- }
- if(getGroupQueryList.isEmpty()){
- PolicyLogger.error("The group cannot be found to set default with id "+group.getId());
- throw new PersistenceException("The group cannot be found to set default with id "+group.getId());
- } else if(getGroupQueryList.size() > 1){
- PolicyLogger.error(duplicateGroupId+group.getId()+deletedStatusFound);
- throw new PersistenceException(duplicateGroupId+group.getId()+deletedStatusFound);
- }
- GroupEntity newDefaultGroup = (GroupEntity)getGroupQueryList.get(0);
+ } catch (Exception e) {
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar,
+ "Caught Exception on getGroupQuery.getResultList()");
+ throw new PersistenceException(queryFailedToGetGroup + group.getId());
+ }
+ if (getGroupQueryList.isEmpty()) {
+ PolicyLogger.error("The group cannot be found to set default with id " + group.getId());
+ throw new PersistenceException("The group cannot be found to set default with id " + group.getId());
+ } else if (getGroupQueryList.size() > 1) {
+ PolicyLogger.error(duplicateGroupId + group.getId() + deletedStatusFound);
+ throw new PersistenceException(duplicateGroupId + group.getId() + deletedStatusFound);
+ }
+ GroupEntity newDefaultGroup = (GroupEntity) getGroupQueryList.get(0);
newDefaultGroup.setDefaultGroup(true);
- if(!stringEquals(newDefaultGroup.getModifiedBy(), username)){
+ if (!stringEquals(newDefaultGroup.getModifiedBy(), username)) {
newDefaultGroup.setModifiedBy(username);
}
em.flush();
this.groupId = newDefaultGroup.getGroupKey();
- Query setAllGroupsNotDefault = em.createQuery("UPDATE GroupEntity g SET g.defaultGroup=:defaultGroup WHERE g.deleted=:deleted AND g.groupKey<>:groupKey");
+ Query setAllGroupsNotDefault = em.createQuery(
+ "UPDATE GroupEntity g SET g.defaultGroup=:defaultGroup WHERE g.deleted=:deleted AND g" +
+ ".groupKey<>:groupKey");
//not going to set modified by for all groups
setAllGroupsNotDefault.setParameter("defaultGroup", false);
setAllGroupsNotDefault.setParameter(deletedVar, false);
setAllGroupsNotDefault.setParameter("groupKey", newDefaultGroup.getGroupKey());
- try{
+ try {
logger.info("set " + setAllGroupsNotDefault.executeUpdate() + " groups as not default");
- } catch(Exception e){
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar, "Caught Exception on setAllGroupsNotDefault.executeUpdate()");
+ } catch (Exception e) {
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar,
+ "Caught Exception on setAllGroupsNotDefault.executeUpdate()");
throw new PersistenceException("Could not set all other groups default to false");
}
em.flush();
@@ -2403,94 +2599,107 @@ public class PolicyDBDao {
@Override
- public void deleteGroup(OnapPDPGroup group, OnapPDPGroup moveToGroup, String username) throws PolicyDBException {
- logger.debug("deleteGroup(PDPGroup group, PDPGroup moveToGroup, String username) as deleteGroup("+group+", "+moveToGroup+","+username+") called");
- if(group == null){
+ public void deleteGroup(OnapPDPGroup group, OnapPDPGroup moveToGroup, String username)
+ throws PolicyDBException {
+ logger.debug("deleteGroup(PDPGroup group, PDPGroup moveToGroup, String username) as deleteGroup(" + group +
+ ", " + moveToGroup + "," + username + ") called");
+ if (group == null) {
throw new IllegalArgumentException("PDPGroup group cannot be null");
}
- if(isNullOrEmpty(username,group.getId())){
+ if (isNullOrEmpty(username, group.getId())) {
throw new IllegalArgumentException("group.getId() and and username must not be null or empty");
}
- if(group.isDefaultGroup()){
- PolicyLogger.error("The default group "+group.getId()+" was attempted to be deleted. It cannot be.");
+ if (group.isDefaultGroup()) {
+ PolicyLogger
+ .error("The default group " + group.getId() + " was attempted to be deleted. It cannot be.");
throw new PolicyDBException("You cannot delete the default group.");
}
- synchronized(emLock){
+ synchronized (emLock) {
checkBeforeOperationRun();
Query deleteGroupQuery = em.createQuery(groupEntitySelectQuery);
deleteGroupQuery.setParameter(groupIdVar, group.getId());
deleteGroupQuery.setParameter(deletedVar, false);
List<?> deleteGroupQueryList;
- try{
+ try {
deleteGroupQueryList = deleteGroupQuery.getResultList();
- } catch(Exception e){
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar, "Caught Exception trying to check if group exists deleteGroupQuery.getResultList()");
+ } catch (Exception e) {
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar,
+ "Caught Exception trying to check if group exists deleteGroupQuery.getResultList()");
throw new PersistenceException("Query failed trying to check if group exists");
}
- if(deleteGroupQueryList.isEmpty()){
+ if (deleteGroupQueryList.isEmpty()) {
logger.warn(groupCannotBeFound + group.getId());
return;
- } else if(deleteGroupQueryList.size() > 1){
- PolicyLogger.error(duplicateGroupId+group.getId()+foundInDBNotDeleted);
- throw new PersistenceException(duplicateGroupId+group.getId()+foundInDBNotDeleted);
+ } else if (deleteGroupQueryList.size() > 1) {
+ PolicyLogger.error(duplicateGroupId + group.getId() + foundInDBNotDeleted);
+ throw new PersistenceException(duplicateGroupId + group.getId() + foundInDBNotDeleted);
}
- Query pdpsInGroupQuery = em.createQuery("SELECT p FROM PdpEntity p WHERE p.groupEntity=:group and p.deleted=:deleted");
- pdpsInGroupQuery.setParameter("group", ((GroupEntity)deleteGroupQueryList.get(0)));
+ Query pdpsInGroupQuery =
+ em.createQuery("SELECT p FROM PdpEntity p WHERE p.groupEntity=:group and p.deleted=:deleted");
+ pdpsInGroupQuery.setParameter("group", ((GroupEntity) deleteGroupQueryList.get(0)));
pdpsInGroupQuery.setParameter(deletedVar, false);
List<?> pdpsInGroupList;
- try{
+ try {
pdpsInGroupList = pdpsInGroupQuery.getResultList();
- } catch(Exception e){
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar, "Caught Exception trying to get PDPs in group on pdpsInGroupQuery.getResultList()");
+ } catch (Exception e) {
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar,
+ "Caught Exception trying to get PDPs in group on pdpsInGroupQuery.getResultList()");
throw new PersistenceException("Query failed trying to get PDPs in group");
}
- if(!pdpsInGroupList.isEmpty()){
- if(moveToGroup != null){
- Query checkMoveToGroupQuery = em.createQuery("SELECT o FROM GroupEntity o WHERE o.groupId=:groupId AND o.deleted=:deleted");
+ if (!pdpsInGroupList.isEmpty()) {
+ if (moveToGroup != null) {
+ Query checkMoveToGroupQuery = em.createQuery(
+ "SELECT o FROM GroupEntity o WHERE o.groupId=:groupId AND o.deleted=:deleted");
checkMoveToGroupQuery.setParameter(groupIdVar, moveToGroup.getId());
checkMoveToGroupQuery.setParameter(deletedVar, false);
List<?> checkMoveToGroupList;
- try{
+ try {
checkMoveToGroupList = checkMoveToGroupQuery.getResultList();
- } catch(Exception e){
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar, "Caught Exception trying to check if group exists checkMoveToGroupQuery.getResultList()");
+ } catch (Exception e) {
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar,
+ "Caught Exception trying to check if group exists checkMoveToGroupQuery" +
+ ".getResultList()");
throw new PersistenceException("Query failed trying to check if group exists");
}
- if(checkMoveToGroupList.isEmpty()){
+ if (checkMoveToGroupList.isEmpty()) {
PolicyLogger.error(groupCannotBeFound + moveToGroup.getId());
throw new PersistenceException(groupCannotBeFound + moveToGroup.getId());
- } else if(checkMoveToGroupList.size() > 1){
- PolicyLogger.error(duplicateGroupId+moveToGroup.getId()+foundInDBNotDeleted);
- throw new PersistenceException(duplicateGroupId+moveToGroup.getId()+foundInDBNotDeleted);
+ } else if (checkMoveToGroupList.size() > 1) {
+ PolicyLogger.error(duplicateGroupId + moveToGroup.getId() + foundInDBNotDeleted);
+ throw new PersistenceException(
+ duplicateGroupId + moveToGroup.getId() + foundInDBNotDeleted);
} else {
- GroupEntity newGroup = (GroupEntity)checkMoveToGroupList.get(0);
- for(Object pdpObject : pdpsInGroupList){
- PdpEntity pdp = (PdpEntity)pdpObject;
+ GroupEntity newGroup = (GroupEntity) checkMoveToGroupList.get(0);
+ for (Object pdpObject : pdpsInGroupList) {
+ PdpEntity pdp = (PdpEntity) pdpObject;
pdp.setGroup(newGroup);
- if(!stringEquals(pdp.getModifiedBy(),username)){
+ if (!stringEquals(pdp.getModifiedBy(), username)) {
pdp.setModifiedBy(username);
}
- try{
+ try {
em.flush();
this.newGroupId = newGroup.getGroupId();
- } catch(PersistenceException e){
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar, "Caught PersistenceException trying to set pdp group to null on em.flush()");
+ } catch (PersistenceException e) {
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar,
+ "Caught PersistenceException trying to set pdp group to null on em.flush" +
+ "()");
throw new PersistenceException("Query failed trying to set pdp group to ");
}
}
}
} else {
- PolicyLogger.error("Group "+group.getId()+" is trying to be delted with PDPs. No group was provided to move them to");
+ PolicyLogger.error("Group " + group.getId() +
+ " is trying to be delted with PDPs. No group was provided to move them to");
throw new PolicyDBException("Group has PDPs. Must provide a group for them to move to");
}
}
//delete group here
- GroupEntity groupToDelete = (GroupEntity)deleteGroupQueryList.get(0);
+ GroupEntity groupToDelete = (GroupEntity) deleteGroupQueryList.get(0);
groupToDelete.setDeleted(true);
- if(!stringEquals(groupToDelete.getModifiedBy(), username)){
+ if (!stringEquals(groupToDelete.getModifiedBy(), username)) {
groupToDelete.setModifiedBy(username);
}
em.flush();
@@ -2500,74 +2709,86 @@ public class PolicyDBDao {
@Override
public StdPDPGroup addPolicyToGroup(String groupID, String policyID, String username) throws PolicyDBException {
- logger.info("PolicyDBDao: addPolicyToGroup(String groupID, String policyID, String username) as addPolicyToGroup("+groupID+", "+policyID+","+username+") called");
- if(isNullOrEmpty(groupID, policyID, username)){
+ logger.info(
+ "PolicyDBDao: addPolicyToGroup(String groupID, String policyID, String username) as " +
+ "addPolicyToGroup(" +
+ groupID + ", " + policyID + "," + username + ") called");
+ if (isNullOrEmpty(groupID, policyID, username)) {
throw new IllegalArgumentException("groupID, policyID, and username must not be null or empty");
}
- synchronized(emLock){
+ synchronized (emLock) {
checkBeforeOperationRun();
//check if group exists
Query groupQuery = em.createQuery(groupEntitySelectQuery);
groupQuery.setParameter(groupIdVar, groupID);
groupQuery.setParameter(deletedVar, false);
List<?> groupQueryList;
- try{
+ try {
groupQueryList = groupQuery.getResultList();
- }catch(Exception e){
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar, "Caught Exception trying to check if group exists groupQuery.getResultList()");
- throw new PersistenceException("Query failed trying to check if group "+groupID+" exists");
+ } catch (Exception e) {
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar,
+ "Caught Exception trying to check if group exists groupQuery.getResultList()");
+ throw new PersistenceException("Query failed trying to check if group " + groupID + " exists");
}
- if(groupQueryList.isEmpty()){
- PolicyLogger.error("Group policy is being added to does not exist with id "+groupID);
- throw new PersistenceException("Group policy is being added to does not exist with id "+groupID);
- } else if(groupQueryList.size() > 1){
- PolicyLogger.error(duplicateGroupId+groupID+foundInDBNotDeleted);
- throw new PersistenceException(duplicateGroupId+groupID+foundInDBNotDeleted);
+ if (groupQueryList.isEmpty()) {
+ PolicyLogger.error("Group policy is being added to does not exist with id " + groupID);
+ throw new PersistenceException("Group policy is being added to does not exist with id " + groupID);
+ } else if (groupQueryList.size() > 1) {
+ PolicyLogger.error(duplicateGroupId + groupID + foundInDBNotDeleted);
+ throw new PersistenceException(duplicateGroupId + groupID + foundInDBNotDeleted);
}
//we need to convert the form of the policy id that is used groups into the form that is used
//for the database. (com.Config_mypol.1.xml) to (Config_mypol.xml)
String[] policyNameScopeAndVersion = getNameScopeAndVersionFromPdpPolicy(policyID);
- if(policyNameScopeAndVersion == null) {
+ if (policyNameScopeAndVersion == null) {
throw new IllegalArgumentException("Invalid input - policyID must contain name, scope and version");
}
- Query policyQuery = em.createQuery("SELECT p FROM PolicyEntity p WHERE p.policyName=:policyName AND p.scope=:scope AND p.deleted=:deleted");
+ Query policyQuery = em.createQuery(
+ "SELECT p FROM PolicyEntity p WHERE p.policyName=:policyName AND p.scope=:scope AND p" +
+ ".deleted=:deleted");
policyQuery.setParameter("policyName", policyNameScopeAndVersion[0]);
policyQuery.setParameter(scope, policyNameScopeAndVersion[1]);
policyQuery.setParameter(deletedVar, false);
List<?> policyQueryList;
- try{
+ try {
policyQueryList = policyQuery.getResultList();
- } catch(Exception e){
+ } catch (Exception e) {
logger.debug(e);
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar, "Caught Exception trying to check if policy exists policyQuery.getResultList()");
- throw new PersistenceException("Query failed trying to check if policy "+policyNameScopeAndVersion[0]+" exists");
- }
- if(policyQueryList.isEmpty()){
- PolicyLogger.error("Policy being added to the group does not exist with policy id "+policyNameScopeAndVersion[0]);
- throw new PersistenceException("Policy being added to the group does not exist with policy id "+policyNameScopeAndVersion[0]);
- } else if(policyQueryList.size() > 1){
- PolicyLogger.error(duplicatePolicyId+policyNameScopeAndVersion[0]+foundInDBNotDeleted);
- throw new PersistenceException(duplicateGroupId+policyNameScopeAndVersion[0]+foundInDBNotDeleted);
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar,
+ "Caught Exception trying to check if policy exists policyQuery.getResultList()");
+ throw new PersistenceException(
+ "Query failed trying to check if policy " + policyNameScopeAndVersion[0] + " exists");
+ }
+ if (policyQueryList.isEmpty()) {
+ PolicyLogger.error("Policy being added to the group does not exist with policy id " +
+ policyNameScopeAndVersion[0]);
+ throw new PersistenceException("Policy being added to the group does not exist with policy id " +
+ policyNameScopeAndVersion[0]);
+ } else if (policyQueryList.size() > 1) {
+ PolicyLogger.error(duplicatePolicyId + policyNameScopeAndVersion[0] + foundInDBNotDeleted);
+ throw new PersistenceException(
+ duplicateGroupId + policyNameScopeAndVersion[0] + foundInDBNotDeleted);
}
logger.info("PolicyDBDao: Getting group and policy from database");
- GroupEntity group = (GroupEntity)groupQueryList.get(0);
- PolicyEntity policy = (PolicyEntity)policyQueryList.get(0);
+ GroupEntity group = (GroupEntity) groupQueryList.get(0);
+ PolicyEntity policy = (PolicyEntity) policyQueryList.get(0);
Iterator<PolicyEntity> policyIt = group.getPolicies().iterator();
String policyName = getPolicyNameAndVersionFromPolicyFileName(policy.getPolicyName())[0];
logger.info("PolicyDBDao: policyName retrieved is " + policyName);
- try{
- while(policyIt.hasNext()){
+ try {
+ while (policyIt.hasNext()) {
PolicyEntity pol = policyIt.next();
- if(policy.getScope().equals(pol.getScope()) &&
+ if (policy.getScope().equals(pol.getScope()) &&
getPolicyNameAndVersionFromPolicyFileName(pol.getPolicyName())[0].equals(policyName)) {
policyIt.remove();
}
}
- }catch(Exception e){
+ } catch (Exception e) {
logger.debug(e);
- PolicyLogger.error("Could not delete old versions for policy "+policy.getPolicyName()+", ID: "+policy.getPolicyId());
+ PolicyLogger.error("Could not delete old versions for policy " + policy.getPolicyName() + ", ID: " +
+ policy.getPolicyId());
}
group.addPolicyToGroup(policy);
em.flush();
@@ -2578,7 +2799,9 @@ public class PolicyDBDao {
return synchronizeGroupPoliciesInFileSystem(pdpGroup, group);
} catch (PAPException e) {
logger.debug(e);
- PolicyLogger.error("PolicyDBDao: Could not synchronize the filesystem group with the database group. " + e.getMessage());
+ PolicyLogger
+ .error("PolicyDBDao: Could not synchronize the filesystem group with the database group. " +
+ e.getMessage());
}
return null;
}
@@ -2587,32 +2810,35 @@ public class PolicyDBDao {
//this means delete pdp not just remove from group
@Override
public void removePdpFromGroup(String pdpID, String username) {
- logger.debug("removePdpFromGroup(String pdpID, String username) as removePdpFromGroup("+pdpID+","+username+") called");
- if(isNullOrEmpty(pdpID,username)){
+ logger.debug("removePdpFromGroup(String pdpID, String username) as removePdpFromGroup(" + pdpID + "," +
+ username + ") called");
+ if (isNullOrEmpty(pdpID, username)) {
throw new IllegalArgumentException("pdpID and username must not be null or empty");
}
- synchronized(emLock){
+ synchronized (emLock) {
checkBeforeOperationRun();
Query pdpQuery = em.createQuery(pdpEntitySelectQuery);
pdpQuery.setParameter(pdpIdVariable, pdpID);
pdpQuery.setParameter(deletedVar, false);
List<?> pdpList;
- try{
+ try {
pdpList = pdpQuery.getResultList();
- } catch(Exception e){
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar, "Caught Exception trying to check if pdp exists pdpQuery.getResultList()");
- throw new PersistenceException("Query failed trying to check if pdp "+pdpID+" exists");
- }
- if(pdpList.size() > 1){
- PolicyLogger.error("Somehow, more than one pdp with the id "+pdpID+foundInDBNotDeleted);
- throw new PersistenceException("Somehow, more than one pdp with the id "+pdpID+foundInDBNotDeleted);
- } else if(pdpList.isEmpty()){
- PolicyLogger.error("Pdp being removed does not exist with id "+pdpID);
+ } catch (Exception e) {
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, policyDBDaoVar,
+ "Caught Exception trying to check if pdp exists pdpQuery.getResultList()");
+ throw new PersistenceException("Query failed trying to check if pdp " + pdpID + " exists");
+ }
+ if (pdpList.size() > 1) {
+ PolicyLogger.error("Somehow, more than one pdp with the id " + pdpID + foundInDBNotDeleted);
+ throw new PersistenceException(
+ "Somehow, more than one pdp with the id " + pdpID + foundInDBNotDeleted);
+ } else if (pdpList.isEmpty()) {
+ PolicyLogger.error("Pdp being removed does not exist with id " + pdpID);
return;
}
- PdpEntity pdp = (PdpEntity)pdpList.get(0);
+ PdpEntity pdp = (PdpEntity) pdpList.get(0);
pdp.setGroup(null);
- if(!stringEquals(pdp.getModifiedBy(),username)){
+ if (!stringEquals(pdp.getModifiedBy(), username)) {
pdp.setModifiedBy(username);
}
pdp.setDeleted(true);
@@ -2622,22 +2848,23 @@ public class PolicyDBDao {
}
}
- private void notifyOthers(long entityId,String entityType){
- notifyOthers(entityId,entityType,null);
+ private void notifyOthers(long entityId, String entityType) {
+ notifyOthers(entityId, entityType, null);
}
- private void notifyOthers(long entityId, String entityType, String newGroupId){
- logger.debug("notifyOthers(long entityId, String entityType, long newGroupId) as notifyOthers("+entityId+","+entityType+","+newGroupId+") called");
+ private void notifyOthers(long entityId, String entityType, String newGroupId) {
+ logger.debug("notifyOthers(long entityId, String entityType, long newGroupId) as notifyOthers(" + entityId +
+ "," + entityType + "," + newGroupId + ") called");
LinkedList<Thread> notifyThreads = new LinkedList<>();
//we're going to run notifications in parallel threads to speed things up
- for(Object obj : otherServers){
+ for (Object obj : otherServers) {
Thread newNotifyThread = new Thread(new NotifyOtherThread(obj, entityId, entityType, newGroupId));
newNotifyThread.start();
notifyThreads.add(newNotifyThread);
}
//we want to wait for all notifications to complete or timeout before we unlock the interface and allow more changes
- for(Thread t : notifyThreads){
+ for (Thread t : notifyThreads) {
try {
t.join();
} catch (Exception e) {
@@ -2647,19 +2874,20 @@ public class PolicyDBDao {
}
}
- private PolicyDBDao(){
+ private PolicyDBDao() {
//empty constructor
}
- public static PolicyDBDaoTestClass getPolicyDBDaoTestClass(){
+ public static PolicyDBDaoTestClass getPolicyDBDaoTestClass() {
return new PolicyDBDao().new PolicyDBDaoTestClass();
}
final class PolicyDBDaoTestClass {
- String getConfigFile(String filename, String scope, PolicyRestAdapter policy){
+ String getConfigFile(String filename, String scope, PolicyRestAdapter policy) {
return scope + "." + PolicyDBDao.this.getConfigFile(filename, policy);
}
- String[] getPolicyNameAndVersionFromPolicyFileName(String originalPolicyName) throws PolicyDBException{
+
+ String[] getPolicyNameAndVersionFromPolicyFileName(String originalPolicyName) throws PolicyDBException {
return PolicyDBDao.this.getPolicyNameAndVersionFromPolicyFileName(originalPolicyName);
}
}
diff --git a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/PushPolicyController.java b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/PushPolicyController.java
index 227be1bdf..eec34b642 100644
--- a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/PushPolicyController.java
+++ b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/PushPolicyController.java
@@ -7,9 +7,9 @@
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -55,31 +55,33 @@ import com.fasterxml.jackson.databind.ObjectMapper;
@Controller
public class PushPolicyController {
- private static final Logger LOGGER = FlexLogger.getLogger(PushPolicyController.class);
+ private static final Logger LOGGER = FlexLogger.getLogger(PushPolicyController.class);
private static CommonClassDao commonClassDao;
private static String policyNames = "policyName";
- private static String errorMsg = "error";
+ private static String errorMsg = "error";
private static String operation = "operation";
private static String messageContent = "message";
private static final String REGEX = "[0-9a-zA-Z._ ]*";
@Autowired
- public PushPolicyController(CommonClassDao commonClassDao){
+ public PushPolicyController(CommonClassDao commonClassDao) {
PushPolicyController.commonClassDao = commonClassDao;
}
- public void setCommonClassDao(CommonClassDao commonClassDao){
+ public void setCommonClassDao(CommonClassDao commonClassDao) {
PushPolicyController.commonClassDao = commonClassDao;
}
+
/*
* This is an empty constructor
*/
- public PushPolicyController(){}
+ public PushPolicyController() {
+ }
- @RequestMapping(value="/pushPolicy", method=RequestMethod.POST)
- public void pushPolicy(HttpServletRequest request, HttpServletResponse response){
+ @RequestMapping(value = "/pushPolicy", method = RequestMethod.POST)
+ public void pushPolicy(HttpServletRequest request, HttpServletResponse response) {
ObjectMapper mapper = new ObjectMapper();
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
try {
@@ -89,38 +91,39 @@ public class PushPolicyController {
String policyName = root.get(policyNames).asText();
String pdpGroup = root.get("pdpGroup").asText();
String requestID = request.getHeader("X-ECOMP-RequestID");
- if(requestID==null){
+ if (requestID == null) {
requestID = UUID.randomUUID().toString();
LOGGER.info("No request ID provided, sending generated ID: " + requestID);
}
LOGGER.info("Push policy Request to get the selectedPolicy : " + root.asText());
String policyVersionName = policyScope.replace(".", File.separator) + File.separator
+ filePrefix + policyName;
- List<?> policyVersionObject = commonClassDao.getDataById(PolicyVersion.class, policyNames, policyVersionName);
- if(policyVersionObject!=null){
+ List<?> policyVersionObject =
+ commonClassDao.getDataById(PolicyVersion.class, policyNames, policyVersionName);
+ if (policyVersionObject != null) {
PolicyVersion policyVersion = (PolicyVersion) policyVersionObject.get(0);
String policyID = policyVersionName.replace(File.separator, "."); // This is before adding version.
policyVersionName += "." + policyVersion.getActiveVersion() + ".xml";
- addPolicyToGroup(policyScope, policyID, policyVersionName.replace(File.separator, "."), pdpGroup, response);
- }else{
+ addPolicyToGroup(policyScope, policyID, policyVersionName.replace(File.separator, "."), pdpGroup,
+ response);
+ } else {
String message = "Unknown Policy '" + policyName + "'";
PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " " + message);
response.addHeader(errorMsg, "unknownPolicy");
response.addHeader(operation, "push");
response.addHeader(messageContent, message);
response.setStatus(HttpServletResponse.SC_NOT_FOUND);
- return;
}
} catch (NullPointerException | IOException e) {
LOGGER.error(e);
response.setStatus(HttpServletResponse.SC_NOT_FOUND);
response.addHeader(errorMsg, "unknown");
response.addHeader(operation, "push");
- return;
}
}
- private void addPolicyToGroup(String policyScope, String policyID, String policyName, String pdpGroup, HttpServletResponse response) {
+ private void addPolicyToGroup(String policyScope, String policyID, String policyName, String pdpGroup,
+ HttpServletResponse response) {
StdPDPGroup selectedPDPGroup = null;
StdPDPPolicy selectedPolicy = null;
//Get the selected PDP Group to push the policy
@@ -129,9 +132,9 @@ public class PushPolicyController {
} catch (PAPException e1) {
PolicyLogger.error(e1);
}
- if(selectedPDPGroup==null){
+ if (selectedPDPGroup == null) {
String message = "Unknown groupId '" + selectedPDPGroup + "'";
- if(!message.matches(REGEX) ){
+ if (!message.matches(REGEX)) {
message = "Unknown groupId";
}
PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " " + message);
@@ -143,15 +146,18 @@ public class PushPolicyController {
}
//Get PolicyEntity from DB;
EntityManager em = XACMLPapServlet.getEmf().createEntityManager();
- Query createPolicyQuery = em.createQuery("SELECT p FROM PolicyEntity p WHERE p.scope=:scope AND p.policyName=:policyName");
+ Query createPolicyQuery =
+ em.createQuery("SELECT p FROM PolicyEntity p WHERE p.scope=:scope AND p.policyName=:policyName");
createPolicyQuery.setParameter("scope", policyScope);
- createPolicyQuery.setParameter(policyNames, policyName.substring(policyScope.length()+1));
+ createPolicyQuery.setParameter(policyNames, policyName.substring(policyScope.length() + 1));
List<?> createPolicyQueryList = createPolicyQuery.getResultList();
PolicyEntity policyEntity = null;
- if(!createPolicyQueryList.isEmpty()){
- policyEntity = (PolicyEntity)createPolicyQueryList.get(0);
- }else{
- PolicyLogger.error("Somehow, more than one policy with the same scope, name, and deleted status were found in the database");
+ if (!createPolicyQueryList.isEmpty()) {
+ policyEntity = (PolicyEntity) createPolicyQueryList.get(0);
+ } else {
+ PolicyLogger
+ .error("Somehow, more than one policy with the same scope, name, and deleted status were found in" +
+ " the database");
String message = "Unknown Policy '" + policyName + "'";
PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " " + message);
response.addHeader(errorMsg, "unknownPolicy");
@@ -161,13 +167,13 @@ public class PushPolicyController {
return;
}
File temp = new File(policyName);
- try (BufferedWriter bw = new BufferedWriter(new FileWriter(temp))){
+ try (BufferedWriter bw = new BufferedWriter(new FileWriter(temp))) {
bw.write(policyEntity.getPolicyData());
URI selectedURI = temp.toURI();
// Create the policy Object
selectedPolicy = new StdPDPPolicy(policyName, true, policyID, selectedURI);
} catch (IOException e) {
- LOGGER.error("Unable to get policy '" + policyName + "': "+ e.getMessage(),e);
+ LOGGER.error("Unable to get policy '" + policyName + "': " + e.getMessage(), e);
}
try {
new ObjectOutputStream(response.getOutputStream()).writeObject(selectedPolicy);
@@ -178,11 +184,10 @@ public class PushPolicyController {
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
return;
}
- response.addHeader("Content-Type","application/json");
+ response.addHeader("Content-Type", "application/json");
response.setStatus(HttpServletResponse.SC_ACCEPTED);
response.addHeader(operation, "push");
response.addHeader("policyId", policyName);
- return;
// TODO : Check point to push policies within PAP.
}
}
diff --git a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/handler/APIRequestHandler.java b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/handler/APIRequestHandler.java
index cc9cc16a0..40cb8aaf9 100644
--- a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/handler/APIRequestHandler.java
+++ b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/handler/APIRequestHandler.java
@@ -7,9 +7,9 @@
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -34,7 +34,7 @@ public class APIRequestHandler {
private OnapPDPGroup newGroup;
- public void doGet(HttpServletRequest request, HttpServletResponse response, String apiflag) throws IOException{
+ public void doGet(HttpServletRequest request, HttpServletResponse response, String apiflag) throws IOException {
// Request from the API to get Dictionary Items
if ("api".equalsIgnoreCase(apiflag)) {
DictionaryHandler dictionaryHandler = DictionaryHandler.getInstance();
@@ -42,25 +42,25 @@ public class APIRequestHandler {
return;
}
// Request from the API to get the ActiveVersion from the PolicyVersion table
- if ("version".equalsIgnoreCase(apiflag)){
+ if ("version".equalsIgnoreCase(apiflag)) {
PushPolicyHandler pushHandler = new PushPolicyHandler();
pushHandler.getActiveVersion(request, response);
return;
}
// Request from the API to get the URI from the gitpath
- if ("uri".equalsIgnoreCase(apiflag)){
+ if ("uri".equalsIgnoreCase(apiflag)) {
PushPolicyHandler pushHandler = new PushPolicyHandler();
pushHandler.getSelectedURI(request, response);
return;
}
- if ("getMetrics".equalsIgnoreCase(apiflag)){
+ if ("getMetrics".equalsIgnoreCase(apiflag)) {
MetricService.doGetPolicyMetrics(response);
- return;
}
}
public void doPut(HttpServletRequest request, HttpServletResponse response, String service) throws IOException {
- if ("MICROSERVICE".equalsIgnoreCase(service) || "BRMSPARAM".equalsIgnoreCase(service) || "OPTIMIZATION".equalsIgnoreCase(service)){
+ if ("MICROSERVICE".equalsIgnoreCase(service) || "BRMSPARAM".equalsIgnoreCase(service) ||
+ "OPTIMIZATION".equalsIgnoreCase(service)) {
ImportService importService = new ImportService();
importService.doImportMicroServicePut(request, response);
return;
@@ -68,22 +68,20 @@ public class APIRequestHandler {
if ("dictionaryItem".equalsIgnoreCase(service)) {
DictionaryHandler dictionaryHandler = DictionaryHandler.getInstance();
dictionaryHandler.doDictionaryAPIPut(request, response);
- return;
} else {
SavePolicyHandler savePolicy = SavePolicyHandler.getInstance();
savePolicy.doPolicyAPIPut(request, response);
}
}
- public void doDelete(HttpServletRequest request, HttpServletResponse response, ONAPLoggingContext loggingContext, String apiflag) throws IOException, SQLException{
+ public void doDelete(HttpServletRequest request, HttpServletResponse response, ONAPLoggingContext loggingContext,
+ String apiflag) throws IOException, SQLException {
DeleteHandler deleteHandler = DeleteHandler.getInstance();
if ("deletePapApi".equalsIgnoreCase(apiflag)) {
deleteHandler.doAPIDeleteFromPAP(request, response);
- return;
} else if ("deletePdpApi".equalsIgnoreCase(apiflag)) {
deleteHandler.doAPIDeleteFromPDP(request, response, loggingContext);
setNewGroup(deleteHandler.getDeletedGroup());
- return;
}
}
diff --git a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/handler/DeleteHandler.java b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/handler/DeleteHandler.java
index e2c348239..f71af87cc 100644
--- a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/handler/DeleteHandler.java
+++ b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/handler/DeleteHandler.java
@@ -7,9 +7,9 @@
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -66,18 +66,19 @@ public class DeleteHandler {
public static final String UNKNOWN = "unknown";
private static final String REGEX = "[0-9a-zA-Z._]*";
- public void doAPIDeleteFromPAP(HttpServletRequest request, HttpServletResponse response) throws IOException, SQLException {
+ public void doAPIDeleteFromPAP(HttpServletRequest request, HttpServletResponse response)
+ throws IOException, SQLException {
// get the request content into a String
String json = null;
java.util.Scanner scanner = new java.util.Scanner(request.getInputStream());
scanner.useDelimiter("\\A");
- json = scanner.hasNext() ? scanner.next() : "";
+ json = scanner.hasNext() ? scanner.next() : "";
scanner.close();
PolicyLogger.info("JSON request from API to Delete Policy from the PAP: " + json);
// convert Object sent as JSON into local object
StdPAPPolicy policy = PolicyUtils.jsonStringToObject(json, StdPAPPolicy.class);
String policyName = policy.getPolicyName();
- Boolean policyVersionDeleted = false;
+ boolean policyVersionDeleted = false;
String removeXMLExtension;
int currentVersion;
String removeVersionExtension;
@@ -96,7 +97,8 @@ public class DeleteHandler {
try {
jpaUtils = JPAUtils.getJPAUtilsInstance(XACMLPapServlet.getEmf());
} catch (Exception e) {
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, "XACMLPapServlet", " Could not create JPAUtils instance on the PAP");
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, "XACMLPapServlet",
+ " Could not create JPAUtils instance on the PAP");
response.addHeader(ERROR, "jpautils");
response.addHeader("operation", "delete");
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
@@ -111,51 +113,55 @@ public class DeleteHandler {
}
EntityManager em = XACMLPapServlet.getEmf().createEntityManager();
Query policyEntityQuery = null;
- try{
- if(policyName.endsWith(".xml")){
+ try {
+ if (policyName.endsWith(".xml")) {
removeXMLExtension = policyName.replace(".xml", "");
- currentVersion = Integer.parseInt(removeXMLExtension.substring(removeXMLExtension.lastIndexOf('.')+1));
+ currentVersion =
+ Integer.parseInt(removeXMLExtension.substring(removeXMLExtension.lastIndexOf('.') + 1));
removeVersionExtension = removeXMLExtension.substring(0, removeXMLExtension.lastIndexOf('.'));
boolean queryCheck = true;
- if(policy.getDeleteCondition().equalsIgnoreCase("All Versions")){
- if(policyName.contains("Config_")){
+ if (policy.getDeleteCondition().equalsIgnoreCase("All Versions")) {
+ if (policyName.contains("Config_")) {
splitPolicyName = removeVersionExtension.replace(".Config_", ":Config_");
- }else if(policyName.contains("Action_")){
+ } else if (policyName.contains("Action_")) {
splitPolicyName = removeVersionExtension.replace(".Action_", ":Action_");
- }else if(policyName.contains("Decision_")){
+ } else if (policyName.contains("Decision_")) {
splitPolicyName = removeVersionExtension.replace(".Decision_", ":Decision_");
}
- if(splitPolicyName != null){
+ if (splitPolicyName != null) {
split = splitPolicyName.split(":");
- }else{
- PolicyLogger.error(MessageCodes.ERROR_UNKNOWN + "Failed to delete the policy. Please, provide the valid policyname.");
+ } else {
+ PolicyLogger.error(MessageCodes.ERROR_UNKNOWN +
+ "Failed to delete the policy. Please, provide the valid policyname.");
response.addHeader(ERROR, UNKNOWN);
- response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR );
+ response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
return;
}
- policyEntityQuery = em.createQuery("SELECT p FROM PolicyEntity p WHERE p.policyName LIKE :pName and p.scope=:pScope");
- }else if(policy.getDeleteCondition().equalsIgnoreCase("Current Version")) {
- if(policyName.contains("Config_")){
+ policyEntityQuery = em.createQuery(
+ "SELECT p FROM PolicyEntity p WHERE p.policyName LIKE :pName and p.scope=:pScope");
+ } else if (policy.getDeleteCondition().equalsIgnoreCase("Current Version")) {
+ if (policyName.contains("Config_")) {
splitPolicyName = policyName.replace(".Config_", ":Config_");
- }else if(policyName.contains("Action_")){
+ } else if (policyName.contains("Action_")) {
splitPolicyName = policyName.replace(".Action_", ":Action_");
- }else if(policyName.contains("Decision_")){
+ } else if (policyName.contains("Decision_")) {
splitPolicyName = policyName.replace(".Decision_", ":Decision_");
}
split = splitPolicyName.split(":");
queryCheck = false;
- policyEntityQuery = em.createQuery("SELECT p FROM PolicyEntity p WHERE p.policyName=:pName and p.scope=:pScope");
+ policyEntityQuery = em.createQuery(
+ "SELECT p FROM PolicyEntity p WHERE p.policyName=:pName and p.scope=:pScope");
}
- if(queryCheck){
- policyEntityQuery.setParameter("pName", "%"+split[1]+"%");
- }else{
+ if (queryCheck) {
+ policyEntityQuery.setParameter("pName", "%" + split[1] + "%");
+ } else {
policyEntityQuery.setParameter("pName", split[1]);
}
policyEntityQuery.setParameter("pScope", split[0]);
List<?> peResult = policyEntityQuery.getResultList();
- if(!peResult.isEmpty()){
+ if (!peResult.isEmpty()) {
Query getPolicyVersion = em.createQuery("Select p from PolicyVersion p where p.policyName=:pname");
getPolicyVersion.setParameter("pname", removeVersionExtension.replace(".", File.separator));
List<?> pvResult = getPolicyVersion.getResultList();
@@ -163,97 +169,106 @@ public class DeleteHandler {
int newVersion = 0;
em.getTransaction().begin();
Class.forName(papDbDriver);
- con = DriverManager.getConnection(papDbUrl,papDbUser,papDbPassword);
+ con = DriverManager.getConnection(papDbUrl, papDbUser, papDbPassword);
- if(policy.getDeleteCondition().equalsIgnoreCase("All Versions")){
+ if (policy.getDeleteCondition().equalsIgnoreCase("All Versions")) {
boolean groupCheck = checkPolicyGroupEntity(con, peResult);
- if(!groupCheck){
- for(Object peData : peResult){
+ if (!groupCheck) {
+ for (Object peData : peResult) {
policyEntity = (PolicyEntity) peData;
status = deletePolicyEntityData(em, policyEntity);
}
- }else{
+ } else {
status = POLICY_IN_PDP;
}
- if(status.equals(ERROR)){
- PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + "Exception Occured while deleting the Entity from Database.");
- response.addHeader(ERROR, UNKNOWN);
- response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR );
- return;
- }else if(status.equals(POLICY_IN_PDP)){
- PolicyLogger.error(MessageCodes.GENERAL_WARNING + "Policy can't be deleted, it is active in PDP Groups.");
- response.addHeader(ERROR, POLICY_IN_PDP);
- response.setStatus(HttpServletResponse.SC_CONFLICT);
- return;
- }else{
- try{
- policyVersionDeleted = true;
- em.remove(pVersion);
- }catch(Exception e){
- logger.error(e.getMessage(),e);
- policyVersionDeleted = false;
- }
+ switch (status) {
+ case ERROR:
+ PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE +
+ "Exception Occured while deleting the Entity from Database.");
+ response.addHeader(ERROR, UNKNOWN);
+ response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+ return;
+ case POLICY_IN_PDP:
+ PolicyLogger.error(MessageCodes.GENERAL_WARNING +
+ "Policy can't be deleted, it is active in PDP Groups.");
+ response.addHeader(ERROR, POLICY_IN_PDP);
+ response.setStatus(HttpServletResponse.SC_CONFLICT);
+ return;
+ default:
+ try {
+ policyVersionDeleted = true;
+ em.remove(pVersion);
+ } catch (Exception e) {
+ logger.error(e.getMessage(), e);
+ policyVersionDeleted = false;
+ }
+ break;
}
- }else if(policy.getDeleteCondition().equalsIgnoreCase("Current Version")){
+ } else if (policy.getDeleteCondition().equalsIgnoreCase("Current Version")) {
boolean groupCheck = checkPolicyGroupEntity(con, peResult);
- if(!groupCheck){
+ if (!groupCheck) {
policyEntity = (PolicyEntity) peResult.get(0);
status = deletePolicyEntityData(em, policyEntity);
- }else{
+ } else {
status = POLICY_IN_PDP;
}
- if(ERROR.equals(status)){
- PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + "Exception Occured while deleting the Entity from Database.");
+ if (ERROR.equals(status)) {
+ PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE +
+ "Exception Occured while deleting the Entity from Database.");
response.addHeader(ERROR, UNKNOWN);
- response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR );
+ response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
return;
- }else if(POLICY_IN_PDP.equals(status)){
- PolicyLogger.error(MessageCodes.GENERAL_WARNING + "Policy can't be deleted, it is active in PDP Groups.");
+ } else if (POLICY_IN_PDP.equals(status)) {
+ PolicyLogger.error(MessageCodes.GENERAL_WARNING +
+ "Policy can't be deleted, it is active in PDP Groups.");
response.addHeader(ERROR, POLICY_IN_PDP);
response.setStatus(HttpServletResponse.SC_CONFLICT);
return;
- }else{
- if(currentVersion > 1){
- if(!peResult.isEmpty()){
- for(Object object : peResult){
+ } else {
+ if (currentVersion > 1) {
+ if (!peResult.isEmpty()) {
+ for (Object object : peResult) {
policyEntity = (PolicyEntity) object;
String policyEntityName = policyEntity.getPolicyName().replace(".xml", "");
- int policyEntityVersion = Integer.parseInt(policyEntityName.substring(policyEntityName.lastIndexOf('.')+1));
- if(policyEntityVersion > newVersion){
- newVersion = policyEntityVersion-1;
+ int policyEntityVersion = Integer.parseInt(
+ policyEntityName.substring(policyEntityName.lastIndexOf('.') + 1));
+ if (policyEntityVersion > newVersion) {
+ newVersion = policyEntityVersion - 1;
}
}
}
pVersion.setActiveVersion(newVersion);
pVersion.setHigherVersion(newVersion);
- try{
+ try {
policyVersionDeleted = true;
em.persist(pVersion);
- }catch(Exception e){
- logger.error(e.getMessage(),e);
+ } catch (Exception e) {
+ logger.error(e.getMessage(), e);
policyVersionDeleted = false;
}
- }else{
- try{
+ } else {
+ try {
policyVersionDeleted = true;
em.remove(pVersion);
- }catch(Exception e){
- logger.error(e.getMessage(),e);
+ } catch (Exception e) {
+ logger.error(e.getMessage(), e);
policyVersionDeleted = false;
}
}
}
}
- }else{
- PolicyLogger.error(MessageCodes.ERROR_UNKNOWN + "Failed to delete the policy for an unknown reason. Check the file system and other logs for further information.");
+ } else {
+ PolicyLogger.error(MessageCodes.ERROR_UNKNOWN +
+ "Failed to delete the policy for an unknown reason. Check the file system and other logs" +
+ " for further information.");
response.addHeader(ERROR, UNKNOWN);
- response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR );
+ response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
return;
}
}
em.getTransaction().commit();
- }catch(Exception e){
+ } catch (Exception e) {
em.getTransaction().rollback();
PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, "XACMLPapServlet", " ERROR");
response.addHeader(ERROR, "deleteDB");
@@ -261,7 +276,7 @@ public class DeleteHandler {
return;
} finally {
em.close();
- if(con != null){
+ if (con != null) {
con.close();
}
}
@@ -270,43 +285,44 @@ public class DeleteHandler {
response.setStatus(HttpServletResponse.SC_OK);
response.addHeader("successMapKey", "success");
response.addHeader("operation", "delete");
- return;
} else {
- PolicyLogger.error(MessageCodes.ERROR_UNKNOWN + "Failed to delete the policy for an unknown reason. Check the file system and other logs for further information.");
+ PolicyLogger.error(MessageCodes.ERROR_UNKNOWN +
+ "Failed to delete the policy for an unknown reason. Check the file system and other logs for " +
+ "further information.");
response.addHeader(ERROR, UNKNOWN);
- response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR );
- return;
+ response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
}
}
- public static String deletePolicyEntityData(EntityManager em, PolicyEntity policyEntity){
+ public static String deletePolicyEntityData(EntityManager em, PolicyEntity policyEntity) {
PolicyElasticSearchController controller = new PolicyElasticSearchController();
PolicyRestAdapter policyData = new PolicyRestAdapter();
String policyName = policyEntity.getPolicyName();
- try{
- if(policyName.contains("Config_")){
+ try {
+ if (policyName.contains("Config_")) {
em.remove(policyEntity.getConfigurationData());
- }else if(policyName.contains("Action_")){
+ } else if (policyName.contains("Action_")) {
em.remove(policyEntity.getActionBodyEntity());
}
String searchPolicyName = policyEntity.getScope() + "." + policyEntity.getPolicyName();
policyData.setNewFileName(searchPolicyName);
controller.deleteElk(policyData);
em.remove(policyEntity);
- }catch(Exception e){
- logger.error(e.getMessage(),e);
+ } catch (Exception e) {
+ logger.error(e.getMessage(), e);
return ERROR;
}
return "success";
}
- public static boolean checkPolicyGroupEntity(Connection con, List<?> peResult) throws SQLException{
- for(Object peData : peResult){
+ public static boolean checkPolicyGroupEntity(Connection con, List<?> peResult) throws SQLException {
+ for (Object peData : peResult) {
PolicyEntity policyEntity = (PolicyEntity) peData;
- try(Statement st = con.createStatement();
- ResultSet rs = st.executeQuery("Select * from PolicyGroupEntity where policyid = '"+policyEntity.getPolicyId()+"'")){
+ try (Statement st = con.createStatement();
+ ResultSet rs = st.executeQuery(
+ "Select * from PolicyGroupEntity where policyid = '" + policyEntity.getPolicyId() + "'")) {
boolean gEntityList = rs.next();
- if(gEntityList){
+ if (gEntityList) {
return true;
}
}
@@ -314,15 +330,16 @@ public class DeleteHandler {
return false;
}
- public void doAPIDeleteFromPDP(HttpServletRequest request, HttpServletResponse response, ONAPLoggingContext loggingContext) throws IOException {
+ public void doAPIDeleteFromPDP(HttpServletRequest request, HttpServletResponse response,
+ ONAPLoggingContext loggingContext) throws IOException {
String policyName = request.getParameter("policyName");
String groupId = request.getParameter("groupId");
String responseString = null;
- if(groupId != null && !groupId.matches(REGEX) ){
+ if (groupId != null && !groupId.matches(REGEX)) {
response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
- response.addHeader("error",ERROR);
+ response.addHeader("error", ERROR);
response.addHeader("message", "Group Id is not valid");
return;
}
@@ -334,7 +351,7 @@ public class DeleteHandler {
try {
group = XACMLPapServlet.getPAPEngine().getGroup(groupId);
} catch (PAPException e) {
- PolicyLogger.error("Exception occured While PUT operation is performing for PDP Group"+e);
+ PolicyLogger.error("Exception occured While PUT operation is performing for PDP Group" + e);
}
if (group == null) {
String message = "Unknown groupId '" + groupId + "'.";
@@ -348,7 +365,8 @@ public class DeleteHandler {
} else {
loggingContext.setServiceName("API:PAP.deletPolicyFromPDPGroup");
if (policyName.contains("xml")) {
- PolicyLogger.debug("The full file name including the extension was provided for policyName.. continue.");
+ PolicyLogger
+ .debug("The full file name including the extension was provided for policyName.. continue.");
} else {
String message = XACMLErrorConstants.ERROR_DATA_ISSUE + "Invalid policyName... "
+ "policyName must be the full name of the file to be deleted including version and extension";
@@ -359,7 +377,7 @@ public class DeleteHandler {
return;
}
RemoveGroupPolicy removePolicy = new RemoveGroupPolicy((StdPDPGroup) group);
- PDPPolicy policy = group.getPolicy(policyName);
+ PDPPolicy policy = group.getPolicy(policyName);
if (policy != null) {
if ((policy.getId().contains("Config_MS_")) || (policy.getId().contains("BRMS_Param"))) {
@@ -380,35 +398,39 @@ public class DeleteHandler {
return;
}
}
- if (responseString.equals("success")) {
- loggingContext.transactionEnded();
- PolicyLogger.info("Policy successfully deleted!");
- PolicyLogger.audit("Policy successfully deleted!");
- response.setStatus(HttpServletResponse.SC_OK);
- response.addHeader("successMapKey", "success");
- response.addHeader("operation", "delete");
- return;
- } else if (responseString.equals("No Group")) {
- String message = XACMLErrorConstants.ERROR_DATA_ISSUE + "Group update had bad input.";
- PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " Group update had bad input.");
- response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
- response.addHeader(ERROR, "groupUpdate");
- response.addHeader("message", message);
- return;
- } else if (responseString.equals("DB Error")) {
- PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW + " Error while updating group in the database");
- response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
- response.addHeader(ERROR, "deleteDB");
- return;
- } else {
- PolicyLogger.error(MessageCodes.ERROR_UNKNOWN + " Failed to delete the policy for an unknown reason. Check the file system and other logs for further information.");
- response.addHeader(ERROR, UNKNOWN);
- response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR );
- return;
+ switch (responseString) {
+ case "success":
+ loggingContext.transactionEnded();
+ PolicyLogger.info("Policy successfully deleted!");
+ PolicyLogger.audit("Policy successfully deleted!");
+ response.setStatus(HttpServletResponse.SC_OK);
+ response.addHeader("successMapKey", "success");
+ response.addHeader("operation", "delete");
+ break;
+ case "No Group":
+ String message = XACMLErrorConstants.ERROR_DATA_ISSUE + "Group update had bad input.";
+ PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " Group update had bad input.");
+ response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+ response.addHeader(ERROR, "groupUpdate");
+ response.addHeader("message", message);
+ break;
+ case "DB Error":
+ PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW + " Error while updating group in the database");
+ response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+ response.addHeader(ERROR, "deleteDB");
+ break;
+ default:
+ PolicyLogger.error(MessageCodes.ERROR_UNKNOWN +
+ " Failed to delete the policy for an unknown reason. Check the file system and other logs " +
+ "for " +
+ "further information.");
+ response.addHeader(ERROR, UNKNOWN);
+ response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+ break;
}
}
- private String deletePolicyFromPDPGroup (OnapPDPGroup group, ONAPLoggingContext loggingContext){
+ private String deletePolicyFromPDPGroup(OnapPDPGroup group, ONAPLoggingContext loggingContext) {
PolicyDBDaoTransaction acPutTransaction = XACMLPapServlet.getDbDaoTransaction();
String response = null;
loggingContext.setServiceName("API:PAP.DeleteHandler");
@@ -416,14 +438,16 @@ public class DeleteHandler {
try {
existingGroup = XACMLPapServlet.getPAPEngine().getGroup(group.getId());
} catch (PAPException e1) {
- PolicyLogger.error("Exception occured While Deleting Policy From PDP Group"+e1);
+ PolicyLogger.error("Exception occured While Deleting Policy From PDP Group" + e1);
}
- if (!(group instanceof StdPDPGroup) || existingGroup == null || !(group.getId().equals(existingGroup.getId()))) {
+ if (!(group instanceof StdPDPGroup) || existingGroup == null ||
+ !(group.getId().equals(existingGroup.getId()))) {
String existingID = null;
- if(existingGroup != null){
+ if (existingGroup != null) {
existingID = existingGroup.getId();
}
- PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " Group update had bad input. id=" + existingID + " objectFromJSON="+group);
+ PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " Group update had bad input. id=" + existingID +
+ " objectFromJSON=" + group);
loggingContext.transactionEnded();
PolicyLogger.audit("Transaction Failed - See Error.log");
response = "No Group";
@@ -432,19 +456,20 @@ public class DeleteHandler {
// The Path on the PAP side is not carried on the RESTful interface with the AC
// (because it is local to the PAP)
// so we need to fill that in before submitting the group for update
- ((StdPDPGroup)group).setDirectory(((StdPDPGroup)existingGroup).getDirectory());
- try{
+ ((StdPDPGroup) group).setDirectory(((StdPDPGroup) existingGroup).getDirectory());
+ try {
acPutTransaction.updateGroup(group, "XACMLPapServlet.doDelete");
- } catch(Exception e){
- PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "XACMLPapServlet", " Error while updating group in the database: "
- +"group="+existingGroup.getId());
+ } catch (Exception e) {
+ PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "XACMLPapServlet",
+ " Error while updating group in the database: "
+ + "group=" + existingGroup.getId());
response = "DB Error";
return response;
}
try {
XACMLPapServlet.getPAPEngine().updateGroup(group);
} catch (PAPException e) {
- PolicyLogger.error("Exception occured While Updating PDP Groups"+e);
+ PolicyLogger.error("Exception occured While Updating PDP Groups" + e);
response = "error in updateGroup method";
}
PolicyLogger.debug("Group '" + group.getId() + "' updated");
@@ -452,11 +477,11 @@ public class DeleteHandler {
// Group changed, which might include changing the policies
try {
newgroup = existingGroup;
- } catch (Exception e) {
- PolicyLogger.error("Exception occured in Group Change Method"+e);
+ } catch (Exception e) {
+ PolicyLogger.error("Exception occured in Group Change Method" + e);
response = "error in groupChanged method";
}
- if (response==null){
+ if (response == null) {
response = "success";
loggingContext.transactionEnded();
PolicyLogger.audit("Policy successfully deleted!");
@@ -466,7 +491,7 @@ public class DeleteHandler {
return response;
}
- public OnapPDPGroup getDeletedGroup(){
+ public OnapPDPGroup getDeletedGroup() {
return newgroup;
}
@@ -476,10 +501,11 @@ public class DeleteHandler {
public static DeleteHandler getInstance() {
try {
- Class<?> deleteHandler = Class.forName(XACMLProperties.getProperty("deletePolicy.impl.className", DeleteHandler.class.getName()));
+ Class<?> deleteHandler = Class.forName(
+ XACMLProperties.getProperty("deletePolicy.impl.className", DeleteHandler.class.getName()));
return (DeleteHandler) deleteHandler.newInstance();
} catch (Exception e) {
- logger.error(e.getMessage(),e);
+ logger.error(e.getMessage(), e);
}
return null;
}
diff --git a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/handler/DictionaryHandlerImpl.java b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/handler/DictionaryHandlerImpl.java
index b90592b02..ef6092d72 100644
--- a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/handler/DictionaryHandlerImpl.java
+++ b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/handler/DictionaryHandlerImpl.java
@@ -7,9 +7,9 @@
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -27,7 +27,7 @@ import org.onap.policy.common.logging.eelf.PolicyLogger;
import org.onap.policy.pap.xacml.rest.service.DictionaryService;
import org.onap.policy.xacml.api.XACMLErrorConstants;
-public class DictionaryHandlerImpl implements DictionaryHandler{
+public class DictionaryHandlerImpl implements DictionaryHandler {
/*
* Get Equivalent for Dictionary Services.
*/
@@ -36,117 +36,116 @@ public class DictionaryHandlerImpl implements DictionaryHandler{
try {
DictionaryService dictionary = new DictionaryService();
switch (dictionaryType) {
- case "OnapName":
- dictionary.getOnapDictionary(response);
- break;
- case "Attribute":
- dictionary.getAttributeDictionary(response);
- break;
- case "Action":
- dictionary.getActionPolicyDictionary(response);
- break;
- case "BRMSParamTemplate":
- dictionary.getBRMSParamDictionary(response);
- break;
- case "VSCLAction":
- dictionary.getVSCLAction(response);
- break;
- case "VNFType":
- dictionary.getVnfType(response);
- break;
- case "PEPOptions":
- dictionary.getPEPOptions(response);
- break;
- case "Varbind":
- dictionary.getVarbind(response);
- break;
- case "Service":
- dictionary.getServiceType(response);
- break;
- case "Site":
- dictionary.getSiteType(response);
- break;
- case "Settings":
- dictionary.getSettingsDictionary(response);
- break;
- case "RainyDayTreatments":
- dictionary.getRainyDayDictionary(response);
- break;
- case "DescriptiveScope":
- dictionary.getDescriptiveDictionary(response);
- break;
- case "ActionList":
- dictionary.getActionListDictionary(response);
- break;
- case "ProtocolList":
- dictionary.getProtocolListDictionary(response);
- break;
- case "Zone":
- dictionary.getZoneDictionary(response);
- break;
- case "SecurityZone":
- dictionary.getSecurityZoneDictionary(response);
- break;
- case "PrefixList":
- dictionary.getPrefixListDictionary(response);
- break;
- case "AddressGroup":
- dictionary.getAddressGroupDictionary(response);
- break;
- case "ServiceGroup":
- dictionary.getServiceGroupDictionary(response);
- break;
- case "ServiceList":
- dictionary.getServiceListDictionary(response);
- break;
- case "TermList":
- case "RuleList":
- case "FirewallRuleList":
- case "Term":
- dictionary.getTermListDictionary(response);
- break;
- case "MicroServiceLocation":
- dictionary.getMicroServiceLocationDictionary(response);
- break;
- case "MicroServiceConfigName":
- dictionary.getMicroServiceConfigNameDictionary(response);
- break;
- case "DCAEUUID":
- dictionary.getDCAEUUIDDictionary(response);
- break;
- case "MicroServiceModels":
- dictionary.getMicroServiceModelsDictionary(response);
- break;
- case "MicroServiceDictionary":
- dictionary.getMicroServiceDictionary(response);
- break;
- case "OptimizationModels":
- dictionary.getOptimizationModelsDictionary(response);
- break;
- case "PolicyScopeService":
- dictionary.getPSServiceDictionary(response);
- break;
- case "PolicyScopeResource":
- dictionary.getPSResourceDictionary(response);
- break;
- case "PolicyScopeType":
- dictionary.getPSTypeDictionary(response);
- break;
- case "PolicyScopeClosedLoop":
- dictionary.getPSClosedLoopDictionary(response);
- break;
- case "GroupPolicyScopeList":
- dictionary.getPSGroupScopeDictionary(response);
- break;
- case "RiskType":
- dictionary.getRiskTypeDictionary(response);
- break;
- case "SafePolicyWarning":
- dictionary.getSafePolicyWarningDictionary(response);
- break;
- default:
- extendedOptions(dictionaryType, request, response, true);
- return;
+ case "OnapName":
+ dictionary.getOnapDictionary(response);
+ break;
+ case "Attribute":
+ dictionary.getAttributeDictionary(response);
+ break;
+ case "Action":
+ dictionary.getActionPolicyDictionary(response);
+ break;
+ case "BRMSParamTemplate":
+ dictionary.getBRMSParamDictionary(response);
+ break;
+ case "VSCLAction":
+ dictionary.getVSCLAction(response);
+ break;
+ case "VNFType":
+ dictionary.getVnfType(response);
+ break;
+ case "PEPOptions":
+ dictionary.getPEPOptions(response);
+ break;
+ case "Varbind":
+ dictionary.getVarbind(response);
+ break;
+ case "Service":
+ dictionary.getServiceType(response);
+ break;
+ case "Site":
+ dictionary.getSiteType(response);
+ break;
+ case "Settings":
+ dictionary.getSettingsDictionary(response);
+ break;
+ case "RainyDayTreatments":
+ dictionary.getRainyDayDictionary(response);
+ break;
+ case "DescriptiveScope":
+ dictionary.getDescriptiveDictionary(response);
+ break;
+ case "ActionList":
+ dictionary.getActionListDictionary(response);
+ break;
+ case "ProtocolList":
+ dictionary.getProtocolListDictionary(response);
+ break;
+ case "Zone":
+ dictionary.getZoneDictionary(response);
+ break;
+ case "SecurityZone":
+ dictionary.getSecurityZoneDictionary(response);
+ break;
+ case "PrefixList":
+ dictionary.getPrefixListDictionary(response);
+ break;
+ case "AddressGroup":
+ dictionary.getAddressGroupDictionary(response);
+ break;
+ case "ServiceGroup":
+ dictionary.getServiceGroupDictionary(response);
+ break;
+ case "ServiceList":
+ dictionary.getServiceListDictionary(response);
+ break;
+ case "TermList":
+ case "RuleList":
+ case "FirewallRuleList":
+ case "Term":
+ dictionary.getTermListDictionary(response);
+ break;
+ case "MicroServiceLocation":
+ dictionary.getMicroServiceLocationDictionary(response);
+ break;
+ case "MicroServiceConfigName":
+ dictionary.getMicroServiceConfigNameDictionary(response);
+ break;
+ case "DCAEUUID":
+ dictionary.getDCAEUUIDDictionary(response);
+ break;
+ case "MicroServiceModels":
+ dictionary.getMicroServiceModelsDictionary(response);
+ break;
+ case "MicroServiceDictionary":
+ dictionary.getMicroServiceDictionary(response);
+ break;
+ case "OptimizationModels":
+ dictionary.getOptimizationModelsDictionary(response);
+ break;
+ case "PolicyScopeService":
+ dictionary.getPSServiceDictionary(response);
+ break;
+ case "PolicyScopeResource":
+ dictionary.getPSResourceDictionary(response);
+ break;
+ case "PolicyScopeType":
+ dictionary.getPSTypeDictionary(response);
+ break;
+ case "PolicyScopeClosedLoop":
+ dictionary.getPSClosedLoopDictionary(response);
+ break;
+ case "GroupPolicyScopeList":
+ dictionary.getPSGroupScopeDictionary(response);
+ break;
+ case "RiskType":
+ dictionary.getRiskTypeDictionary(response);
+ break;
+ case "SafePolicyWarning":
+ dictionary.getSafePolicyWarningDictionary(response);
+ break;
+ default:
+ extendedOptions(dictionaryType, request, response, true);
}
} catch (Exception e) {
String message = XACMLErrorConstants.ERROR_DATA_ISSUE + " Error Querying the Database: " + e.getMessage();
@@ -154,18 +153,19 @@ public class DictionaryHandlerImpl implements DictionaryHandler{
response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
response.addHeader("error", "dictionaryDBQuery");
response.addHeader("error", message);
- return;
}
}
/**
* Can be used to extend the services.
- *
+ * <p>
* getflag=true indicates Get Request.
* getflag=false indicates Put Request.
+ *
* @return
*/
- public String extendedOptions(String dictionaryType, HttpServletRequest request, HttpServletResponse response, boolean getflag) {
+ public String extendedOptions(String dictionaryType, HttpServletRequest request, HttpServletResponse response,
+ boolean getflag) {
// Default code
String message = XACMLErrorConstants.ERROR_DATA_ISSUE + " Invalid Dictionary in Request.";
PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, "DictionaryHandler", " Invalid Dictionary in Request.");
@@ -182,121 +182,121 @@ public class DictionaryHandlerImpl implements DictionaryHandler{
try {
DictionaryService dictionary = new DictionaryService();
switch (dictionaryType) {
- case "OnapName":
- result = dictionary.saveOnapDictionary(request, response);
- break;
- case "Attribute":
- result = dictionary.saveAttributeDictionary(request, response);
- break;
- case "Action":
- result = dictionary.saveActionPolicyDictionary(request, response);
- break;
- case "BRMSParamTemplate":
- result = dictionary.saveBRMSParamDictionary(request, response);
- break;
- case "VSCLAction":
- result = dictionary.saveVSCLAction(request, response);
- break;
- case "VNFType":
- result = dictionary.saveVnfType(request, response);
- break;
- case "PEPOptions":
- result = dictionary.savePEPOptions(request, response);
- break;
- case "Varbind":
- result = dictionary.saveVarbind(request, response);
- break;
- case "Service":
- result = dictionary.saveServiceType(request, response);
- break;
- case "Site":
- result = dictionary.saveSiteType(request, response);
- break;
- case "Settings":
- result = dictionary.saveSettingsDictionary(request, response);
- break;
- case "RainyDayTreatments":
- result = dictionary.saveRainyDayDictionary(request, response);
- break;
- case "DescriptiveScope":
- result = dictionary.saveDescriptiveDictionary(request, response);
- break;
- case "ActionList":
- result = dictionary.saveActionListDictionary(request, response);
- break;
- case "ProtocolList":
- result = dictionary.saveProtocolListDictionary(request, response);
- break;
- case "Zone":
- result = dictionary.saveZoneDictionary(request, response);
- break;
- case "SecurityZone":
- result = dictionary.saveSecurityZoneDictionary(request, response);
- break;
- case "PrefixList":
- result = dictionary.savePrefixListDictionary(request, response);
- break;
- case "AddressGroup":
- result = dictionary.saveAddressGroupDictionary(request, response);
- break;
- case "ServiceGroup":
- result = dictionary.saveServiceGroupDictionary(request, response);
- break;
- case "ServiceList":
- result = dictionary.saveServiceListDictionary(request, response);
- break;
- case "TermList":
- case "RuleList":
- case "FirewallRuleList":
- case "Term":
- result = dictionary.saveTermListDictionary(request, response);
- break;
- case "MicroServiceLocation":
- result = dictionary.saveMicroServiceLocationDictionary(request, response);
- break;
- case "MicroServiceConfigName":
- result = dictionary.saveMicroServiceConfigNameDictionary(request, response);
- break;
- case "DCAEUUID":
- result = dictionary.saveDCAEUUIDDictionary(request, response);
- break;
- case "MicroServiceModels":
- result = dictionary.saveMicroServiceModelsDictionary(request, response);
- break;
- case "MicroServiceDictionary":
- result = dictionary.saveMicroServiceDictionary(request, response);
- break;
- case "OptimizationModels":
- result = dictionary.saveOptimizationModelsDictionary(request, response);
- break;
- case "PolicyScopeService":
- result = dictionary.savePSServiceDictionary(request, response);
- break;
- case "PolicyScopeResource":
- result = dictionary.savePSResourceDictionary(request, response);
- break;
- case "PolicyScopeType":
- result = dictionary.savePSTypeDictionary(request, response);
- break;
- case "PolicyScopeClosedLoop":
- result = dictionary.savePSClosedLoopDictionary(request, response);
- break;
- case "GroupPolicyScopeList":
- result = dictionary.savePSGroupScopeDictionary(request, response);
- break;
- case "RiskType":
- result = dictionary.saveRiskTypeDictionary(request, response);
- break;
- case "SafePolicyWarning":
- result = dictionary.saveSafePolicyWarningDictionary(request, response);
- break;
- default:
- result = extendedOptions(dictionaryType, request, response, false);
- if(result==null){
- return;
- }else{
- break;
- }
+ case "OnapName":
+ result = dictionary.saveOnapDictionary(request, response);
+ break;
+ case "Attribute":
+ result = dictionary.saveAttributeDictionary(request, response);
+ break;
+ case "Action":
+ result = dictionary.saveActionPolicyDictionary(request, response);
+ break;
+ case "BRMSParamTemplate":
+ result = dictionary.saveBRMSParamDictionary(request, response);
+ break;
+ case "VSCLAction":
+ result = dictionary.saveVSCLAction(request, response);
+ break;
+ case "VNFType":
+ result = dictionary.saveVnfType(request, response);
+ break;
+ case "PEPOptions":
+ result = dictionary.savePEPOptions(request, response);
+ break;
+ case "Varbind":
+ result = dictionary.saveVarbind(request, response);
+ break;
+ case "Service":
+ result = dictionary.saveServiceType(request, response);
+ break;
+ case "Site":
+ result = dictionary.saveSiteType(request, response);
+ break;
+ case "Settings":
+ result = dictionary.saveSettingsDictionary(request, response);
+ break;
+ case "RainyDayTreatments":
+ result = dictionary.saveRainyDayDictionary(request, response);
+ break;
+ case "DescriptiveScope":
+ result = dictionary.saveDescriptiveDictionary(request, response);
+ break;
+ case "ActionList":
+ result = dictionary.saveActionListDictionary(request, response);
+ break;
+ case "ProtocolList":
+ result = dictionary.saveProtocolListDictionary(request, response);
+ break;
+ case "Zone":
+ result = dictionary.saveZoneDictionary(request, response);
+ break;
+ case "SecurityZone":
+ result = dictionary.saveSecurityZoneDictionary(request, response);
+ break;
+ case "PrefixList":
+ result = dictionary.savePrefixListDictionary(request, response);
+ break;
+ case "AddressGroup":
+ result = dictionary.saveAddressGroupDictionary(request, response);
+ break;
+ case "ServiceGroup":
+ result = dictionary.saveServiceGroupDictionary(request, response);
+ break;
+ case "ServiceList":
+ result = dictionary.saveServiceListDictionary(request, response);
+ break;
+ case "TermList":
+ case "RuleList":
+ case "FirewallRuleList":
+ case "Term":
+ result = dictionary.saveTermListDictionary(request, response);
+ break;
+ case "MicroServiceLocation":
+ result = dictionary.saveMicroServiceLocationDictionary(request, response);
+ break;
+ case "MicroServiceConfigName":
+ result = dictionary.saveMicroServiceConfigNameDictionary(request, response);
+ break;
+ case "DCAEUUID":
+ result = dictionary.saveDCAEUUIDDictionary(request, response);
+ break;
+ case "MicroServiceModels":
+ result = dictionary.saveMicroServiceModelsDictionary(request, response);
+ break;
+ case "MicroServiceDictionary":
+ result = dictionary.saveMicroServiceDictionary(request, response);
+ break;
+ case "OptimizationModels":
+ result = dictionary.saveOptimizationModelsDictionary(request, response);
+ break;
+ case "PolicyScopeService":
+ result = dictionary.savePSServiceDictionary(request, response);
+ break;
+ case "PolicyScopeResource":
+ result = dictionary.savePSResourceDictionary(request, response);
+ break;
+ case "PolicyScopeType":
+ result = dictionary.savePSTypeDictionary(request, response);
+ break;
+ case "PolicyScopeClosedLoop":
+ result = dictionary.savePSClosedLoopDictionary(request, response);
+ break;
+ case "GroupPolicyScopeList":
+ result = dictionary.savePSGroupScopeDictionary(request, response);
+ break;
+ case "RiskType":
+ result = dictionary.saveRiskTypeDictionary(request, response);
+ break;
+ case "SafePolicyWarning":
+ result = dictionary.saveSafePolicyWarningDictionary(request, response);
+ break;
+ default:
+ result = extendedOptions(dictionaryType, request, response, false);
+ if (result == null) {
+ return;
+ } else {
+ break;
+ }
}
} catch (Exception e) {
String message = XACMLErrorConstants.ERROR_DATA_ISSUE + " Error Updating the Database: " + e.getMessage();
@@ -309,7 +309,7 @@ public class DictionaryHandlerImpl implements DictionaryHandler{
response.setStatus(HttpServletResponse.SC_OK);
response.addHeader("successMapKey", "success");
if (operation.equalsIgnoreCase("update")) {
- response.addHeader("operation", "updateDictionary");
+ response.addHeader("operation", "updateDictionary");
} else {
response.addHeader("operation", "createDictionary");
}
diff --git a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/service/MetricService.java b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/service/MetricService.java
index 864201cfe..66fb9acfc 100644
--- a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/service/MetricService.java
+++ b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/service/MetricService.java
@@ -7,9 +7,9 @@
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -35,18 +35,20 @@ import org.onap.policy.xacml.api.pap.OnapPDPGroup;
import com.att.research.xacml.api.pap.PDPPolicy;
public class MetricService {
- private static String errorMsg = "error";
+ private static String errorMsg = "error";
+
/*
* This is a private constructor
* */
- private MetricService(){
+ private MetricService() {
}
+
public static void doGetPolicyMetrics(HttpServletResponse response) {
Set<OnapPDPGroup> groups = new HashSet<>();
try {
//get the count of policies on the PDP
- if(XACMLPapServlet.getPAPEngine()!=null){
+ if (XACMLPapServlet.getPAPEngine() != null) {
groups = XACMLPapServlet.getPAPEngine().getOnapPDPGroups();
}
int pdpCount = 0;
@@ -56,11 +58,13 @@ public class MetricService {
}
//get the count of policies on the PAP
EntityManager em = null;
- if(XACMLPapServlet.getEmf()!=null){
+ if (XACMLPapServlet.getEmf() != null) {
em = XACMLPapServlet.getEmf().createEntityManager();
}
- if (em==null){
- PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " Error creating entity manager with persistence unit: " + XACMLPapServlet.getPersistenceUnit());
+ if (em == null) {
+ PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE +
+ " Error creating entity manager with persistence unit: " +
+ XACMLPapServlet.getPersistenceUnit());
response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
response.addHeader(errorMsg, "Error creating entity manager with persistence unit");
return;
@@ -73,25 +77,26 @@ public class MetricService {
json.put("papCount", papCount);
json.put("pdpCount", pdpCount);
json.put("totalCount", totalCount);
- if (pdpCount>0 && papCount>0 && totalCount>0) {
- PolicyLogger.info("Metrics have been found on the Policy Engine for the number of policies on the PAP and PDP.");
+ if (pdpCount > 0 && papCount > 0 && totalCount > 0) {
+ PolicyLogger
+ .info("Metrics have been found on the Policy Engine for the number of policies on the PAP and" +
+ " PDP.");
response.setStatus(HttpServletResponse.SC_OK);
response.addHeader("successMapKey", "success");
response.addHeader("operation", "getMetrics");
- response.addHeader("metrics", json.toString() );
- return;
- }else{
- String message = "The policy count on the PAP and PDP is 0. Please check the database and file system to correct this error.";
+ response.addHeader("metrics", json.toString());
+ } else {
+ String message =
+ "The policy count on the PAP and PDP is 0. Please check the database and file system to " +
+ "correct this error.";
response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
response.addHeader(errorMsg, message);
- return;
}
} catch (Exception e) {
String message = XACMLErrorConstants.ERROR_DATA_ISSUE + " Error Querying the Database: " + e.getMessage();
PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, e, "XACMLPapServlet", " Error Querying the Database.");
response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
response.addHeader(errorMsg, message);
- return;
}
}
diff --git a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/restAuth/CheckPDP.java b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/restAuth/CheckPDP.java
index 28207f29d..cddcb2a4c 100644
--- a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/restAuth/CheckPDP.java
+++ b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/restAuth/CheckPDP.java
@@ -34,6 +34,7 @@ import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
+import java.util.Objects;
import java.util.Properties;
import org.onap.policy.common.logging.eelf.MessageCodes;
@@ -91,7 +92,7 @@ public class CheckPDP {
// Check if File is updated recently
else {
newModified = pdpPath.toFile().lastModified();
- if (newModified != oldModified) {
+ if (!Objects.equals(newModified, oldModified)) {
// File has been updated.
readProps();
}