summaryrefslogtreecommitdiffstats
path: root/ONAP-PAP-REST/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'ONAP-PAP-REST/src/main')
-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();
}