X-Git-Url: https://gerrit.onap.org/r/gitweb?p=policy%2Fengine.git;a=blobdiff_plain;f=ONAP-PAP-REST%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fpolicy%2Fpap%2Fxacml%2Frest%2Fcomponents%2FPolicyDbDaoTransactionInstance.java;h=347db92d7102260395bf6d6863857089996a8882;hp=a9d7851695ede1f561069b75c1919bfc3bd9c03d;hb=1e61676b77dd09659027b8984f050df7e8538526;hpb=26b2f0b9eb6fa60a8e161181768e20fdf3b4c7f7 diff --git a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/PolicyDbDaoTransactionInstance.java b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/PolicyDbDaoTransactionInstance.java index a9d785169..347db92d7 100644 --- a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/PolicyDbDaoTransactionInstance.java +++ b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/PolicyDbDaoTransactionInstance.java @@ -23,6 +23,7 @@ package org.onap.policy.pap.xacml.rest.components; import com.att.research.xacml.api.pap.PAPException; import com.att.research.xacml.api.pap.PDPPolicy; import com.att.research.xacml.util.XACMLProperties; + import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; @@ -36,14 +37,17 @@ import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Set; + import javax.persistence.PersistenceException; import javax.persistence.RollbackException; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.xpath.XPath; import javax.xml.xpath.XPathFactory; + import oasis.names.tc.xacml._3_0.core.schema.wd_17.PolicySetType; import oasis.names.tc.xacml._3_0.core.schema.wd_17.PolicyType; + import org.apache.commons.io.FilenameUtils; import org.apache.commons.io.IOUtils; import org.hibernate.Query; @@ -60,6 +64,7 @@ import org.onap.policy.rest.jpa.ActionBodyEntity; import org.onap.policy.rest.jpa.ConfigurationDataEntity; import org.onap.policy.rest.jpa.GroupEntity; import org.onap.policy.rest.jpa.PdpEntity; +import org.onap.policy.rest.jpa.PolicyAuditlog; import org.onap.policy.rest.jpa.PolicyEntity; import org.onap.policy.xacml.api.pap.OnapPDP; import org.onap.policy.xacml.api.pap.OnapPDPGroup; @@ -70,7 +75,6 @@ import org.springframework.stereotype.Component; import org.w3c.dom.Document; import org.xml.sax.InputSource; - @Component public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction { @@ -87,7 +91,6 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction { private static final String PDP_NOTIFICATION = "pdp"; private static final String GROUP_NOTIFICATION = "group"; - private static final String DECISIONMS_MODEL = "MicroService_Model"; private static boolean isJunit = false; Session session; @@ -99,10 +102,8 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction { */ public PolicyDbDaoTransactionInstance(String test) { // call the constructor with arguments - this(Integer - .parseInt(XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_TRANS_TIMEOUT)), - Integer.parseInt( - XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_TRANS_WAIT))); + this(Integer.parseInt(XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_TRANS_TIMEOUT)), + Integer.parseInt(XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_TRANS_WAIT))); } public PolicyDbDaoTransactionInstance() { @@ -116,20 +117,16 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction { private static SessionFactory sessionfactory; - /** * Instantiates a new policy DB dao transaction instance. * - * @param transactionTimeout the transaction timeout is how long the transaction can sit before - * rolling back - * @param transactionWaitTime the transaction wait time is how long to wait for the transaction - * to start before + * @param transactionTimeout the transaction timeout is how long the transaction can sit before rolling back + * @param transactionWaitTime the transaction wait time is how long to wait for the transaction to start before */ public PolicyDbDaoTransactionInstance(int transactionTimeout, int transactionWaitTime) { - logger.info( - "\n\nPolicyDBDaoTransactionInstance() as PolicyDBDaoTransactionInstance() called:" - + "\n transactionTimeout = " + transactionTimeout - + "\n transactionWaitTime = " + transactionWaitTime + "\n\n"); + logger.info("\n\nPolicyDBDaoTransactionInstance() as PolicyDBDaoTransactionInstance() called:" + + "\n transactionTimeout = " + transactionTimeout + "\n transactionWaitTime = " + + transactionWaitTime + "\n\n"); policyId = -1; groupId = -1; @@ -138,13 +135,11 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction { synchronized (emLock) { session = sessionfactory.openSession(); try { - PolicyDBDao.getPolicyDBDaoInstance().startTransactionSynced(session, - transactionWaitTime); + PolicyDBDao.getPolicyDBDaoInstance().startTransactionSynced(session, transactionWaitTime); } catch (Exception e) { - logger.error("Could not lock transaction within " + transactionWaitTime - + " milliseconds" + e); - throw new PersistenceException("Could not lock transaction within " - + transactionWaitTime + " milliseconds"); + logger.error("Could not lock transaction within " + transactionWaitTime + " milliseconds" + e); + throw new PersistenceException( + "Could not lock transaction within " + transactionWaitTime + " milliseconds"); } } class TransactionTimer implements Runnable { @@ -159,9 +154,8 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction { public void run() { if (logger.isDebugEnabled()) { Date date = new java.util.Date(); - logger.debug( - "\n\nTransactionTimer.run() - SLEEPING: " + "\n sleepTime (ms) = " - + sleepTime + "\n TimeStamp = " + date.getTime() + "\n\n"); + logger.debug("\n\nTransactionTimer.run() - SLEEPING: " + "\n sleepTime (ms) = " + sleepTime + + "\n TimeStamp = " + date.getTime() + "\n\n"); } try { Thread.sleep(sleepTime); @@ -170,26 +164,24 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction { // we want to do is roll back if (logger.isDebugEnabled()) { Date date = new java.util.Date(); - logger.debug("\n\nTransactionTimer.run() - WAKE Interrupt: " - + "\n TimeStamp = " + date.getTime() + "\n\n"); + logger.debug("\n\nTransactionTimer.run() - WAKE Interrupt: " + "\n TimeStamp = " + + date.getTime() + "\n\n"); } Thread.currentThread().interrupt(); return; } if (logger.isDebugEnabled()) { Date date = new java.util.Date(); - logger.debug("\n\nTransactionTimer.run() - WAKE Timeout: " + "\n TimeStamp = " - + date.getTime() + "\n\n"); + logger.debug("\n\nTransactionTimer.run() - WAKE Timeout: " + "\n TimeStamp = " + date.getTime() + + "\n\n"); } - logger.warn( - "PolicyDBDaoTransactionInstance - TransactionTimer - Rolling back transaction."); + logger.warn("PolicyDBDaoTransactionInstance - TransactionTimer - Rolling back transaction."); rollbackTransaction(); } } - transactionTimer = - new Thread(new TransactionTimer(transactionTimeout), "transactionTimerThread"); + transactionTimer = new Thread(new TransactionTimer(transactionTimeout), "transactionTimerThread"); transactionTimer.start(); } @@ -218,8 +210,8 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction { NotifyOtherPaps otherPaps = new NotifyOtherPaps(); logger.debug("commitTransaction() as commitTransaction() called"); if (!isTransactionOpen()) { - logger.warn("There is no open transaction to commit - PolicyId - " + policyId - + ", GroupId - " + groupId); + logger.warn( + "There is no open transaction to commit - PolicyId - " + policyId + ", GroupId - " + groupId); try { session.close(); } catch (Exception e) { @@ -241,18 +233,16 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction { try { otherPaps.notifyOthers(policyId, POLICY_NOTIFICATION, newGroupId); } catch (Exception e) { - PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, - PolicyDBDao.POLICYDBDAO_VAR, - "Caught Exception on notifyOthers(" + policyId + "," - + POLICY_NOTIFICATION + "," + newGroupId + ")"); + PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, PolicyDBDao.POLICYDBDAO_VAR, + "Caught Exception on notifyOthers(" + policyId + "," + POLICY_NOTIFICATION + "," + + newGroupId + ")"); } } else { try { otherPaps.notifyOthers(policyId, POLICY_NOTIFICATION); } catch (Exception e) { - PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, - PolicyDBDao.POLICYDBDAO_VAR, "Caught Exception on notifyOthers(" - + policyId + "," + POLICY_NOTIFICATION + ")"); + PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, PolicyDBDao.POLICYDBDAO_VAR, + "Caught Exception on notifyOthers(" + policyId + "," + POLICY_NOTIFICATION + ")"); } } } @@ -262,18 +252,16 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction { try { otherPaps.notifyOthers(groupId, GROUP_NOTIFICATION, newGroupId); } catch (Exception e) { - PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, - PolicyDBDao.POLICYDBDAO_VAR, - "Caught Exception on notifyOthers(" + groupId + "," - + GROUP_NOTIFICATION + "," + newGroupId + ")"); + PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, PolicyDBDao.POLICYDBDAO_VAR, + "Caught Exception on notifyOthers(" + groupId + "," + GROUP_NOTIFICATION + "," + + newGroupId + ")"); } } else { try { otherPaps.notifyOthers(groupId, GROUP_NOTIFICATION); } catch (Exception e) { - PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, - PolicyDBDao.POLICYDBDAO_VAR, "Caught Exception on notifyOthers(" - + groupId + "," + GROUP_NOTIFICATION + ")"); + PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, PolicyDBDao.POLICYDBDAO_VAR, + "Caught Exception on notifyOthers(" + groupId + "," + GROUP_NOTIFICATION + ")"); } } } @@ -283,8 +271,7 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction { otherPaps.notifyOthers(pdpId, PDP_NOTIFICATION); } catch (Exception e) { PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, PolicyDBDao.POLICYDBDAO_VAR, - "Caught Exception on notifyOthers(" + pdpId + "," + PDP_NOTIFICATION - + ")"); + "Caught Exception on notifyOthers(" + pdpId + "," + PDP_NOTIFICATION + ")"); } } } @@ -324,13 +311,12 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction { } } - 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"); + + " String policyName, String policyDataString) as createPolicy(" + policy + ", " + username + ", " + + policyScope + ", " + policyName + ", " + policyDataString + ") called"); synchronized (emLock) { PolicyDBDao policyDbDao = new PolicyDBDao(); checkBeforeOperationRun(); @@ -345,8 +331,8 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction { policyName = policyName.replace(".Decision_", ":Decision_"); } policyName = policyName.split(":")[1]; - Query createPolicyQuery = session.createQuery( - "SELECT p FROM PolicyEntity p WHERE p.scope=:scope AND p.policyName=:policyName"); + Query createPolicyQuery = session + .createQuery("SELECT p FROM PolicyEntity p WHERE p.scope=:scope AND p.policyName=:policyName"); createPolicyQuery.setParameter(PolicyDBDao.SCOPE, policyScope); createPolicyQuery.setParameter("policyName", policyName); List createPolicyQueryList = createPolicyQuery.list(); @@ -395,17 +381,14 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction { newActionBodyEntity.setCreatedBy("PolicyDBDao.createPolicy()"); } if (logger.isDebugEnabled()) { - logger.debug("\nPolicyDBDao.createPolicy" - + "\n newActionBodyEntity.getActionBody() = " + logger.debug("\nPolicyDBDao.createPolicy" + "\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"); + + "\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 if (isJunit) { @@ -419,13 +402,10 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction { // 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); + + "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); throw new IllegalArgumentException(msg); } } @@ -438,8 +418,7 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction { newConfigurationDataEntity = new ConfigurationDataEntity(); configUpdate = false; } else { - newConfigurationDataEntity = (ConfigurationDataEntity) session.get( - ConfigurationDataEntity.class, + newConfigurationDataEntity = (ConfigurationDataEntity) session.get(ConfigurationDataEntity.class, newPolicyEntity.getConfigurationData().getConfigurationDataId()); configUpdate = true; } @@ -447,12 +426,10 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction { if (newConfigurationDataEntity != null) { if (!PolicyDBDao.stringEquals(newConfigurationDataEntity.getConfigurationName(), policyDbDao.getConfigFile(configName, policy))) { - newConfigurationDataEntity.setConfigurationName( - policyDbDao.getConfigFile(configName, policy)); + newConfigurationDataEntity.setConfigurationName(policyDbDao.getConfigFile(configName, policy)); } if (newConfigurationDataEntity.getConfigType() == null - || !newConfigurationDataEntity.getConfigType() - .equals(policy.getConfigType())) { + || !newConfigurationDataEntity.getConfigType().equals(policy.getConfigType())) { newConfigurationDataEntity.setConfigType(policy.getConfigType()); } if (!configUpdate) { @@ -468,11 +445,9 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction { } if (newConfigurationDataEntity.getConfigBody() == null || newConfigurationDataEntity.getConfigBody().isEmpty() - || (!newConfigurationDataEntity.getConfigBody() - .equals(policy.getConfigBodyData()))) { + || (!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 { newConfigurationDataEntity.setConfigBody(policy.getConfigBodyData()); @@ -492,12 +467,10 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction { // 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); + + "\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); throw new IllegalArgumentException(msg); } @@ -512,8 +485,7 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction { if (!PolicyDBDao.stringEquals(newPolicyEntity.getCreatedBy(), username)) { newPolicyEntity.setCreatedBy(username); } - if (!PolicyDBDao.stringEquals(newPolicyEntity.getDescription(), - policy.getPolicyDescription())) { + if (!PolicyDBDao.stringEquals(newPolicyEntity.getDescription(), policy.getPolicyDescription())) { newPolicyEntity.setDescription(policy.getPolicyDescription()); } if (!PolicyDBDao.stringEquals(newPolicyEntity.getModifiedBy(), username)) { @@ -546,8 +518,8 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction { public void createPolicy(Policy policy, String username) { InputStream policyXmlStream = null; try { - logger.debug("createPolicy(PolicyRestAdapter policy, String username) as createPolicy(" - + policy + "," + username + ") called"); + 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 @@ -556,19 +528,17 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction { try { if (policy.policyAdapter.getData() instanceof PolicySetType) { - policyXmlStream = XACMLPolicyWriter.getPolicySetXmlAsInputStream( - (PolicySetType) policy.getCorrectPolicyDataObject()); - } else { policyXmlStream = XACMLPolicyWriter - .getXmlAsInputStream(policy.getCorrectPolicyDataObject()); + .getPolicySetXmlAsInputStream((PolicySetType) policy.getCorrectPolicyDataObject()); + } else { + policyXmlStream = XACMLPolicyWriter.getXmlAsInputStream(policy.getCorrectPolicyDataObject()); } policyDataString = IOUtils.toString(policyXmlStream); } catch (IOException e) { policyDataString = "could not read"; PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, PolicyDBDao.POLICYDBDAO_VAR, "Caught IOException on IOUtils.toString(" + policyXmlStream + ")"); - throw new IllegalArgumentException( - "Cannot parse the policy xml from the PolicyRestAdapter."); + throw new IllegalArgumentException("Cannot parse the policy xml from the PolicyRestAdapter."); } IOUtils.closeQuietly(policyXmlStream); @@ -596,8 +566,7 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction { String prefix = null; if (PolicyDBDao.CONFIG.equalsIgnoreCase(policy.policyAdapter.getPolicyType()) || DECISIONMS_MODEL.equalsIgnoreCase(policy.policyAdapter.getRuleProvider())) { - prefix = configPath.substring( - configPath.indexOf(policyScope + ".") + policyScope.concat(".").length(), + prefix = configPath.substring(configPath.indexOf(policyScope + ".") + policyScope.concat(".").length(), configPath.lastIndexOf(policy.policyAdapter.getPolicyName())); if (PolicyDBDao.isNullOrEmpty(policy.policyAdapter.getConfigBodyData())) { String configData = ""; @@ -623,13 +592,11 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction { if (!(policy.policyAdapter.getData() instanceof PolicyType) && !(policy.policyAdapter.getData() instanceof PolicySetType)) { PolicyLogger.error("The data field is not an instance of PolicyType"); - throw new IllegalArgumentException( - "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() - + "." + policy.policyAdapter.getHighestVersion() + ".xml"; - if (policy.policyAdapter.getConfigType() == null - || "".equals(policy.policyAdapter.getConfigType())) { + String finalName = policyScope + "." + prefix + policy.policyAdapter.getPolicyName() + "." + + policy.policyAdapter.getHighestVersion() + ".xml"; + if (policy.policyAdapter.getConfigType() == null || "".equals(policy.policyAdapter.getConfigType())) { // get the config file extension String ext = ""; if (configPath != null && !"".equalsIgnoreCase(configPath)) { @@ -663,7 +630,6 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction { } } - public PolicyEntity getPolicy(int policyId) { return getPolicy(policyId, null, null); } @@ -673,11 +639,10 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction { } private PolicyEntity getPolicy(int policyIdVar, String policyName, String scope) { - logger.debug("getPolicy(int policyId, String policyName) as " + " getPolicy(" + policyIdVar - + "," + policyName + ") called"); + logger.debug("getPolicy(int policyId, String policyName) as " + " getPolicy(" + policyIdVar + "," + policyName + + ") called"); if (policyIdVar < 0 && PolicyDBDao.isNullOrEmpty(policyName, scope)) { - throw new IllegalArgumentException( - "policyID must be at least 0 or policyName must be not null or blank"); + throw new IllegalArgumentException("policyID must be at least 0 or policyName must be not null or blank"); } synchronized (emLock) { @@ -687,8 +652,8 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction { Query policyQuery; if (!PolicyDBDao.isNullOrEmpty(policyName, scope)) { policyId = policyName; - policyQuery = session.createQuery( - "SELECT p FROM PolicyEntity p WHERE p.policyName=:name AND p.scope=:scope"); + policyQuery = + session.createQuery("SELECT p FROM PolicyEntity p WHERE p.policyName=:name AND p.scope=:scope"); policyQuery.setParameter("name", policyId); policyQuery.setParameter("scope", scope); } else { @@ -707,12 +672,10 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction { 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); + throw new PersistenceException("Group policy is being added to does not exist with id " + policyId); } else if (policyQueryList.size() > 1) { PolicyLogger.error(PolicyDBDao.DUP_POLICYID + policyId + PolicyDBDao.FOUND_IN_DB); - throw new PersistenceException( - PolicyDBDao.DUP_POLICYID + policyId + PolicyDBDao.FOUND_IN_DB); + throw new PersistenceException(PolicyDBDao.DUP_POLICYID + policyId + PolicyDBDao.FOUND_IN_DB); } return (PolicyEntity) policyQueryList.get(0); } @@ -727,8 +690,7 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction { synchronized (emLock) { checkBeforeOperationRun(true); // check if group exists - Query groupQuery = - session.createQuery("SELECT g FROM GroupEntity g WHERE g.groupKey=:groupKey"); + Query groupQuery = session.createQuery("SELECT g FROM GroupEntity g WHERE g.groupKey=:groupKey"); groupQuery.setParameter("groupKey", groupKey); List groupQueryList; try { @@ -742,10 +704,10 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction { 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 - + PolicyDBDao.FOUND_IN_DB); - throw new PersistenceException("Somehow, more than one group with the groupKey " - + groupKey + PolicyDBDao.FOUND_IN_DB); + PolicyLogger + .error("Somehow, more than one group with the groupKey " + groupKey + PolicyDBDao.FOUND_IN_DB); + throw new PersistenceException( + "Somehow, more than one group with the groupKey " + groupKey + PolicyDBDao.FOUND_IN_DB); } return (GroupEntity) groupQueryList.get(0); } @@ -760,8 +722,7 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction { synchronized (emLock) { checkBeforeOperationRun(true); // check if group exists - Query groupQuery = - session.createQuery("SELECT g FROM GroupEntity g WHERE g.groupId=:groupId"); + Query groupQuery = session.createQuery("SELECT g FROM GroupEntity g WHERE g.groupId=:groupId"); groupQuery.setParameter(PolicyDBDao.GROUP_ID, groupId); List groupQueryList; try { @@ -775,10 +736,8 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction { 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(PolicyDBDao.DUPLICATE_GROUPID + groupId + PolicyDBDao.FOUND_IN_DB); - throw new PersistenceException( - PolicyDBDao.DUPLICATE_GROUPID + groupId + PolicyDBDao.FOUND_IN_DB); + PolicyLogger.error(PolicyDBDao.DUPLICATE_GROUPID + groupId + PolicyDBDao.FOUND_IN_DB); + throw new PersistenceException(PolicyDBDao.DUPLICATE_GROUPID + groupId + PolicyDBDao.FOUND_IN_DB); } return (GroupEntity) groupQueryList.get(0); } @@ -792,8 +751,7 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction { } synchronized (emLock) { checkBeforeOperationRun(true); - Query pdpsQuery = - session.createQuery("SELECT p FROM PdpEntity p WHERE p.groupEntity=:group"); + Query pdpsQuery = session.createQuery("SELECT p FROM PdpEntity p WHERE p.groupEntity=:group"); pdpsQuery.setParameter("group", getGroup(groupKey)); return pdpsQuery.list(); } @@ -808,8 +766,7 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction { synchronized (emLock) { checkBeforeOperationRun(true); // check if group exists - Query pdpQuery = - session.createQuery("SELECT p FROM PdpEntity p WHERE p.pdpKey=:pdpKey"); + Query pdpQuery = session.createQuery("SELECT p FROM PdpEntity p WHERE p.pdpKey=:pdpKey"); pdpQuery.setParameter("pdpKey", pdpKey); List pdpQueryList; try { @@ -823,10 +780,9 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction { 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 - + PolicyDBDao.FOUND_IN_DB); - throw new PersistenceException("Somehow, more than one pdp with the pdpKey " - + pdpKey + PolicyDBDao.FOUND_IN_DB); + PolicyLogger.error("Somehow, more than one pdp with the pdpKey " + pdpKey + PolicyDBDao.FOUND_IN_DB); + throw new PersistenceException( + "Somehow, more than one pdp with the pdpKey " + pdpKey + PolicyDBDao.FOUND_IN_DB); } return (PdpEntity) pdpQueryList.get(0); } @@ -865,12 +821,10 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction { 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); + logger.error("Caught IOException on newIOUtils.toString(" + configContentStream + ")", e2); throw new IllegalArgumentException("The config file path cannot be read"); } finally { IOUtils.closeQuietly(configContentStream); @@ -881,7 +835,6 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction { return configDataString; } - @Override public void close() { synchronized (emLock) { @@ -898,14 +851,12 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction { } @Override - public void createGroup(String groupId, String groupName, String inputGroupDescription, - String username) { + 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"); + logger.debug("deletePolicy(String policyToDeletes) as createGroup(" + groupId + ", " + groupName + ", " + + groupDescription + ") called"); if (PolicyDBDao.isNullOrEmpty(groupId, groupName, username)) { - throw new IllegalArgumentException( - "groupId, groupName, and username must not be null or empty"); + throw new IllegalArgumentException("groupId, groupName, and username must not be null or empty"); } if (groupDescription == null) { groupDescription = ""; @@ -926,8 +877,7 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction { } 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); + throw new PersistenceException("The group being added already exists with id " + groupId); } GroupEntity newGroup = new GroupEntity(); newGroup.setCreatedBy(username); @@ -946,14 +896,13 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction { @Override public void updateGroup(OnapPDPGroup group, String requestType, String username) { - logger.info("PolicyDBDao: updateGroup(PDPGroup group) as updateGroup(" + group + "," - + requestType + "," + username + ") called"); + logger.info("PolicyDBDao: updateGroup(PDPGroup group) as updateGroup(" + group + "," + requestType + "," + + username + ") called"); if (group == null) { throw new IllegalArgumentException("PDPGroup group must not be null"); } if (PolicyDBDao.isNullOrEmpty(group.getId(), requestType)) { - throw new IllegalArgumentException( - "group.getId() and username must not be null or empty"); + throw new IllegalArgumentException("group.getId() and username must not be null or empty"); } synchronized (emLock) { @@ -968,32 +917,28 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction { } catch (Exception e) { PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, PolicyDBDao.POLICYDBDAO_VAR, "Caught Exception on getGroupQuery.getResultList()"); - throw new PersistenceException( - PolicyDBDao.QUERY_FAILED_GET_GROUP + group.getId() + " for editing"); + throw new PersistenceException(PolicyDBDao.QUERY_FAILED_GET_GROUP + 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()); + throw new PersistenceException("The group cannot be found to update with id " + group.getId()); } else if (getGroupQueryList.size() > 1) { - PolicyLogger.error(PolicyDBDao.DUPLICATE_GROUPID + group.getId() - + PolicyDBDao.DELETED_STATUS_FOUND); - throw new PersistenceException(PolicyDBDao.DUPLICATE_GROUPID + group.getId() - + PolicyDBDao.DELETED_STATUS_FOUND); + PolicyLogger.error(PolicyDBDao.DUPLICATE_GROUPID + group.getId() + PolicyDBDao.DELETED_STATUS_FOUND); + throw new PersistenceException( + PolicyDBDao.DUPLICATE_GROUPID + group.getId() + PolicyDBDao.DELETED_STATUS_FOUND); } GroupEntity groupToUpdateInDb = (GroupEntity) getGroupQueryList.get(0); if (!PolicyDBDao.stringEquals(groupToUpdateInDb.getModifiedBy(), requestType)) { groupToUpdateInDb.setModifiedBy(requestType); } - if (group.getDescription() != null && !PolicyDBDao.stringEquals(group.getDescription(), - groupToUpdateInDb.getDescription())) { + if (group.getDescription() != null + && !PolicyDBDao.stringEquals(group.getDescription(), groupToUpdateInDb.getDescription())) { groupToUpdateInDb.setDescription(group.getDescription()); } // let's find out what policies have been deleted StdPDPGroup oldGroup = null; try { - oldGroup = (StdPDPGroup) PolicyDBDao.getPolicyDBDaoInstance().getPapEngine() - .getGroup(group.getId()); + oldGroup = (StdPDPGroup) PolicyDBDao.getPolicyDBDaoInstance().getPapEngine().getGroup(group.getId()); } catch (PAPException e1) { PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e1, PolicyDBDao.POLICYDBDAO_VAR, "We cannot get the group from the papEngine to delete policies"); @@ -1011,61 +956,51 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction { // should be fast since getPolicies uses a HashSet in // StdPDPGroup if (!newPolicySet.contains(pol.getId())) { - String[] scopeAndName = - policyDbDaoVar.getNameScopeAndVersionFromPdpPolicy(pol.getId()); + String[] scopeAndName = policyDbDaoVar.getNameScopeAndVersionFromPdpPolicy(pol.getId()); PolicyEntity policyToDelete = null; try { if (scopeAndName != null) { policyToDelete = getPolicy(scopeAndName[0], scopeAndName[1]); if ("XACMLPapServlet.doDelete".equals(requestType)) { - Iterator dbPolicyIt = - groupToUpdateInDb.getPolicies().iterator(); - String policyName = policyDbDaoVar - .getPolicyNameAndVersionFromPolicyFileName( - policyToDelete.getPolicyName())[0]; + Iterator dbPolicyIt = groupToUpdateInDb.getPolicies().iterator(); + String policyName = policyDbDaoVar.getPolicyNameAndVersionFromPolicyFileName( + policyToDelete.getPolicyName())[0]; logger.info("PolicyDBDao: delete policy from GroupEntity"); try { while (dbPolicyIt.hasNext()) { PolicyEntity dbpolicy = dbPolicyIt.next(); - if (policyToDelete.getScope() - .equals(dbpolicy.getScope()) - && policyDbDaoVar - .getPolicyNameAndVersionFromPolicyFileName( - dbpolicy.getPolicyName())[0] - .equals(policyName)) { + if (policyToDelete.getScope().equals(dbpolicy.getScope()) + && policyDbDaoVar.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" + "group is " - + groupToUpdateInDb.getGroupId()); + auditPdpOperations(username, + dbpolicy.getScope() + "." + dbpolicy.getPolicyName(), "Delete"); + logger.info("PolicyDBDao: deleting policy from the existing group:\n " + + "policyName is " + policyToDelete.getScope() + "." + + policyToDelete.getPolicyName() + "\n" + "group is " + + groupToUpdateInDb.getGroupId()); } } } catch (Exception e) { logger.debug(e); PolicyLogger.error("Could not delete policy with name: " - + policyToDelete.getScope() + "." - + policyToDelete.getPolicyName() + "\n ID: " - + policyToDelete.getPolicyId()); + + policyToDelete.getScope() + "." + policyToDelete.getPolicyName() + + "\n ID: " + policyToDelete.getPolicyId()); } } } } catch (Exception e) { - PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, - PolicyDBDao.POLICYDBDAO_VAR, - "Could not get policy to remove: " + pol.getId()); - throw new PersistenceException( + PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, PolicyDBDao.POLICYDBDAO_VAR, "Could not get policy to remove: " + pol.getId()); + throw new PersistenceException("Could not get policy to remove: " + pol.getId()); } } } } - if (group.getName() != null && !PolicyDBDao.stringEquals(group.getName(), - groupToUpdateInDb.getgroupName())) { + if (group.getName() != null + && !PolicyDBDao.stringEquals(group.getName(), groupToUpdateInDb.getgroupName())) { // we need to check if the new id exists in the database String newGrpId = PolicyDBDao.createNewPDPGroupId(group.getName()); Query checkGroupQuery = session.createQuery(PolicyDBDao.GROUPENTITY_SELECT); @@ -1081,8 +1016,7 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction { } if (!checkGroupQueryList.isEmpty()) { PolicyLogger.error("The new group name already exists, group id " + newGrpId); - throw new PersistenceException( - "The new group name already exists, group id " + newGrpId); + throw new PersistenceException("The new group name already exists, group id " + newGrpId); } groupToUpdateInDb.setGroupId(newGrpId); groupToUpdateInDb.setGroupName(group.getName()); @@ -1094,15 +1028,14 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction { } @Override - public void addPdpToGroup(String pdpId, String groupIdVar, String pdpName, - String pdpDescription, int pdpJmxPort, String username) { + public void addPdpToGroup(String pdpId, String groupIdVar, 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 + ", " + groupIdVar + ", " + pdpName + ", " + pdpDescription + ", " - + pdpJmxPort + ", " + username + ") called"); + + "String pdpDescription, int pdpJmxPort, String username) as addPdpToGroup(" + pdpId + ", " + + groupIdVar + ", " + pdpName + ", " + pdpDescription + ", " + pdpJmxPort + ", " + username + + ") called"); if (PolicyDBDao.isNullOrEmpty(pdpId, groupIdVar, pdpName, username)) { - throw new IllegalArgumentException( - "pdpID, groupID, pdpName, and username must not be null or empty"); + throw new IllegalArgumentException("pdpID, groupID, pdpName, and username must not be null or empty"); } synchronized (emLock) { checkBeforeOperationRun(); @@ -1131,8 +1064,7 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction { PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, PolicyDBDao.POLICYDBDAO_VAR, "Caught Exception trying to check for duplicate PDP " + pdpId + " on checkDuplicateQuery.getResultList()"); - throw new PersistenceException( - "Query failed trying to check for duplicate PDP " + pdpId); + throw new PersistenceException("Query failed trying to check for duplicate PDP " + pdpId); } PdpEntity newPdp; if (!checkDuplicateList.isEmpty()) { @@ -1161,14 +1093,12 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction { @Override public void updatePdp(OnapPDP pdp, String username) { - logger.debug("updatePdp(PDP pdp, String username) as updatePdp(" + pdp + "," + username - + ") called"); + 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 (PolicyDBDao.isNullOrEmpty(pdp.getId(), username)) { - throw new IllegalArgumentException( - "pdp.getId() and username must not be null or empty"); + throw new IllegalArgumentException("pdp.getId() and username must not be null or empty"); } synchronized (emLock) { @@ -1186,24 +1116,21 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction { } 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()); + throw new PersistenceException("The pdp cannot be found to update with id " + pdp.getId()); } else if (getPdpQueryList.size() > 1) { - PolicyLogger.error(PolicyDBDao.MORE_THAN_ONE_PDP + pdp.getId() - + PolicyDBDao.DELETED_STATUS_FOUND); - throw new PersistenceException(PolicyDBDao.MORE_THAN_ONE_PDP + pdp.getId() - + PolicyDBDao.DELETED_STATUS_FOUND); + PolicyLogger.error(PolicyDBDao.MORE_THAN_ONE_PDP + pdp.getId() + PolicyDBDao.DELETED_STATUS_FOUND); + throw new PersistenceException( + PolicyDBDao.MORE_THAN_ONE_PDP + pdp.getId() + PolicyDBDao.DELETED_STATUS_FOUND); } PdpEntity pdpToUpdate = (PdpEntity) getPdpQueryList.get(0); if (!PolicyDBDao.stringEquals(pdpToUpdate.getModifiedBy(), username)) { pdpToUpdate.setModifiedBy(username); } - if (pdp.getDescription() != null && !PolicyDBDao.stringEquals(pdp.getDescription(), - pdpToUpdate.getDescription())) { + if (pdp.getDescription() != null + && !PolicyDBDao.stringEquals(pdp.getDescription(), pdpToUpdate.getDescription())) { pdpToUpdate.setDescription(pdp.getDescription()); } - if (pdp.getName() != null - && !PolicyDBDao.stringEquals(pdp.getName(), pdpToUpdate.getPdpName())) { + if (pdp.getName() != null && !PolicyDBDao.stringEquals(pdp.getName(), pdpToUpdate.getPdpName())) { pdpToUpdate.setPdpName(pdp.getName()); } if (pdp.getJmxPort() != null && !pdp.getJmxPort().equals(pdpToUpdate.getJmxPort())) { @@ -1217,14 +1144,13 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction { @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"); + 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 (PolicyDBDao.isNullOrEmpty(username, pdp.getId(), group.getId())) { - throw new IllegalArgumentException( - "pdp.getId(), group.getId(), and username must not be null or empty"); + throw new IllegalArgumentException("pdp.getId(), group.getId(), and username must not be null or empty"); } synchronized (emLock) { @@ -1239,18 +1165,15 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction { } catch (Exception e) { PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, PolicyDBDao.POLICYDBDAO_VAR, "Caught Exception on getPdpQuery.getResultList()"); - throw new PersistenceException( - "Query failed trying to get pdp to move with id " + pdp.getId()); + 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()); + throw new PersistenceException("The pdp cannot be found to move with id " + pdp.getId()); } else if (getPdpQueryList.size() > 1) { - PolicyLogger.error(PolicyDBDao.MORE_THAN_ONE_PDP + pdp.getId() - + PolicyDBDao.DELETED_STATUS_FOUND); - throw new PersistenceException(PolicyDBDao.MORE_THAN_ONE_PDP + pdp.getId() - + PolicyDBDao.DELETED_STATUS_FOUND); + PolicyLogger.error(PolicyDBDao.MORE_THAN_ONE_PDP + pdp.getId() + PolicyDBDao.DELETED_STATUS_FOUND); + throw new PersistenceException( + PolicyDBDao.MORE_THAN_ONE_PDP + pdp.getId() + PolicyDBDao.DELETED_STATUS_FOUND); } // check if new group exists @@ -1263,8 +1186,7 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction { } catch (Exception e) { PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, PolicyDBDao.POLICYDBDAO_VAR, "Caught Exception trying to get group on checkGroupQuery.getResultList()"); - throw new PersistenceException( - "Query failed trying to get new group " + group.getId()); + 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"); @@ -1284,14 +1206,13 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction { @Override public void changeDefaultGroup(OnapPDPGroup group, String username) { - logger.debug("changeDefaultGroup(PDPGroup group, String username) as changeDefaultGroup(" - + group + "," + username + ") called"); + 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 (PolicyDBDao.isNullOrEmpty(group.getId(), username)) { - throw new IllegalArgumentException( - "group.getId() and username must not be null or empty"); + throw new IllegalArgumentException("group.getId() and username must not be null or empty"); } synchronized (emLock) { @@ -1308,15 +1229,12 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction { throw new PersistenceException(PolicyDBDao.QUERY_FAILED_GET_GROUP + 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()); + 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(PolicyDBDao.DUPLICATE_GROUPID + group.getId() - + PolicyDBDao.DELETED_STATUS_FOUND); - throw new PersistenceException(PolicyDBDao.DUPLICATE_GROUPID + group.getId() - + PolicyDBDao.DELETED_STATUS_FOUND); + PolicyLogger.error(PolicyDBDao.DUPLICATE_GROUPID + group.getId() + PolicyDBDao.DELETED_STATUS_FOUND); + throw new PersistenceException( + PolicyDBDao.DUPLICATE_GROUPID + group.getId() + PolicyDBDao.DELETED_STATUS_FOUND); } GroupEntity newDefaultGroup = (GroupEntity) getGroupQueryList.get(0); newDefaultGroup.setDefaultGroup(true); @@ -1326,16 +1244,14 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction { session.flush(); this.groupId = newDefaultGroup.getGroupKey(); - Query setAllGroupsNotDefault = - session.createQuery("UPDATE GroupEntity g SET g.defaultGroup=:defaultGroup " - + "WHERE g.deleted=:deleted AND g.groupKey<>:groupKey"); + Query setAllGroupsNotDefault = session.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(PolicyDBDao.DELETED, false); setAllGroupsNotDefault.setParameter("groupKey", newDefaultGroup.getGroupKey()); try { - logger.info( - "set " + setAllGroupsNotDefault.executeUpdate() + " groups as not default"); + logger.info("set " + setAllGroupsNotDefault.executeUpdate() + " groups as not default"); } catch (Exception e) { PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, PolicyDBDao.POLICYDBDAO_VAR, "Caught Exception on setAllGroupsNotDefault.executeUpdate()"); @@ -1346,22 +1262,18 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction { } @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"); + 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 (PolicyDBDao.isNullOrEmpty(username, group.getId())) { - throw new IllegalArgumentException( - "group.getId() and and username must not be null or empty"); + 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."); + 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) { @@ -1381,14 +1293,13 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction { logger.warn(PolicyDBDao.GROUP_NOT_FOUND + group.getId()); return; } else if (deleteGroupQueryList.size() > 1) { - PolicyLogger.error(PolicyDBDao.DUPLICATE_GROUPID + group.getId() - + PolicyDBDao.FOUND_IN_DB_NOT_DEL); - throw new PersistenceException(PolicyDBDao.DUPLICATE_GROUPID + group.getId() - + PolicyDBDao.FOUND_IN_DB_NOT_DEL); + PolicyLogger.error(PolicyDBDao.DUPLICATE_GROUPID + group.getId() + PolicyDBDao.FOUND_IN_DB_NOT_DEL); + throw new PersistenceException( + PolicyDBDao.DUPLICATE_GROUPID + group.getId() + PolicyDBDao.FOUND_IN_DB_NOT_DEL); } - Query pdpsInGroupQuery = session.createQuery( - "SELECT p FROM PdpEntity p WHERE p.groupEntity=:group and p.deleted=:deleted"); + Query pdpsInGroupQuery = + session.createQuery("SELECT p FROM PdpEntity p WHERE p.groupEntity=:group and p.deleted=:deleted"); pdpsInGroupQuery.setParameter("group", (deleteGroupQueryList.get(0))); pdpsInGroupQuery.setParameter(PolicyDBDao.DELETED, false); List pdpsInGroupList; @@ -1401,29 +1312,26 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction { } if (!pdpsInGroupList.isEmpty()) { if (moveToGroup != null) { - Query checkMoveToGroupQuery = session.createQuery( - "SELECT o FROM GroupEntity o WHERE o.groupId=:groupId AND o.deleted=:deleted"); + Query checkMoveToGroupQuery = session + .createQuery("SELECT o FROM GroupEntity o WHERE o.groupId=:groupId AND o.deleted=:deleted"); checkMoveToGroupQuery.setParameter(PolicyDBDao.GROUP_ID, moveToGroup.getId()); checkMoveToGroupQuery.setParameter(PolicyDBDao.DELETED, false); List checkMoveToGroupList; try { checkMoveToGroupList = checkMoveToGroupQuery.list(); } catch (Exception e) { - PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, - PolicyDBDao.POLICYDBDAO_VAR, + PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, PolicyDBDao.POLICYDBDAO_VAR, "Caught Exception trying to check if group exists checkMoveToGroupQuery.getResultList"); - throw new PersistenceException( - "Query failed trying to check if group exists"); + throw new PersistenceException("Query failed trying to check if group exists"); } if (checkMoveToGroupList.isEmpty()) { PolicyLogger.error(PolicyDBDao.GROUP_NOT_FOUND + moveToGroup.getId()); - throw new PersistenceException( - PolicyDBDao.GROUP_NOT_FOUND + moveToGroup.getId()); + throw new PersistenceException(PolicyDBDao.GROUP_NOT_FOUND + moveToGroup.getId()); } else if (checkMoveToGroupList.size() > 1) { - PolicyLogger.error(PolicyDBDao.DUPLICATE_GROUPID + moveToGroup.getId() - + PolicyDBDao.FOUND_IN_DB_NOT_DEL); - throw new PersistenceException(PolicyDBDao.DUPLICATE_GROUPID - + moveToGroup.getId() + PolicyDBDao.FOUND_IN_DB_NOT_DEL); + PolicyLogger.error( + PolicyDBDao.DUPLICATE_GROUPID + moveToGroup.getId() + PolicyDBDao.FOUND_IN_DB_NOT_DEL); + throw new PersistenceException( + PolicyDBDao.DUPLICATE_GROUPID + moveToGroup.getId() + PolicyDBDao.FOUND_IN_DB_NOT_DEL); } else { GroupEntity newGroup = (GroupEntity) checkMoveToGroupList.get(0); for (Object pdpObject : pdpsInGroupList) { @@ -1436,19 +1344,16 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction { session.flush(); this.newGroupId = newGroup.getGroupId(); } catch (PersistenceException e) { - PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, - PolicyDBDao.POLICYDBDAO_VAR, + PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, PolicyDBDao.POLICYDBDAO_VAR, "Caught PersistenceException trying to set pdp group to null on em.flush()"); - throw new PersistenceException( - "Query failed trying to set pdp group to "); + 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"); - throw new PolicyDBException( - "Group has PDPs. Must provide a group for them to move to"); + throw new PolicyDBException("Group has PDPs. Must provide a group for them to move to"); } } @@ -1464,15 +1369,13 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction { } @Override - public StdPDPGroup addPolicyToGroup(String groupIdVar, String policyIdVar, String requestType, - String username) throws PolicyDBException { + public StdPDPGroup addPolicyToGroup(String groupIdVar, String policyIdVar, String requestType, String username) + throws PolicyDBException { logger.info( "PolicyDBDao: addPolicyToGroup(String groupID, String policyID, String username) as addPolicyToGroup(" - + groupIdVar + ", " + policyIdVar + "," + requestType + "," + username - + ") called"); + + groupIdVar + ", " + policyIdVar + "," + requestType + "," + username + ") called"); if (PolicyDBDao.isNullOrEmpty(groupIdVar, policyIdVar, requestType)) { - throw new IllegalArgumentException( - "groupID, policyID, and username must not be null or empty"); + throw new IllegalArgumentException("groupID, policyID, and username must not be null or empty"); } synchronized (emLock) { checkBeforeOperationRun(); @@ -1486,34 +1389,27 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction { } catch (Exception e) { PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, PolicyDBDao.POLICYDBDAO_VAR, "Caught Exception trying to check if group exists groupQuery.getResultList()"); - throw new PersistenceException( - "Query failed trying to check if group " + groupIdVar + " exists"); + throw new PersistenceException("Query failed trying to check if group " + groupIdVar + " exists"); } if (groupQueryList.isEmpty()) { - PolicyLogger.error( - "Group policy is being added to does not exist with id " + groupIdVar); - throw new PersistenceException( - "Group policy is being added to does not exist with id " + groupIdVar); + PolicyLogger.error("Group policy is being added to does not exist with id " + groupIdVar); + throw new PersistenceException("Group policy is being added to does not exist with id " + groupIdVar); } else if (groupQueryList.size() > 1) { - PolicyLogger.error(PolicyDBDao.DUPLICATE_GROUPID + groupIdVar - + PolicyDBDao.FOUND_IN_DB_NOT_DEL); - throw new PersistenceException(PolicyDBDao.DUPLICATE_GROUPID + groupIdVar - + PolicyDBDao.FOUND_IN_DB_NOT_DEL); + PolicyLogger.error(PolicyDBDao.DUPLICATE_GROUPID + groupIdVar + PolicyDBDao.FOUND_IN_DB_NOT_DEL); + throw new PersistenceException( + PolicyDBDao.DUPLICATE_GROUPID + groupIdVar + PolicyDBDao.FOUND_IN_DB_NOT_DEL); } // 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) PolicyDBDao policyDbDao = new PolicyDBDao(); - String[] policyNameScopeAndVersion = - policyDbDao.getNameScopeAndVersionFromPdpPolicy(policyIdVar); + String[] policyNameScopeAndVersion = policyDbDao.getNameScopeAndVersionFromPdpPolicy(policyIdVar); if (policyNameScopeAndVersion == null) { - throw new IllegalArgumentException( - "Invalid input - policyID must contain name, scope and version"); + throw new IllegalArgumentException("Invalid input - policyID must contain name, scope and version"); } - Query policyQuery = session - .createQuery("SELECT p FROM PolicyEntity p WHERE p.policyName=:policyName " - + "AND p.scope=:scope AND p.deleted=:deleted"); + Query policyQuery = session.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(PolicyDBDao.SCOPE, policyNameScopeAndVersion[1]); policyQuery.setParameter(PolicyDBDao.DELETED, false); @@ -1524,57 +1420,55 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction { logger.debug(e); PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, PolicyDBDao.POLICYDBDAO_VAR, "Caught Exception trying to check if policy exists policyQuery.getResultList()"); - throw new PersistenceException("Query failed trying to check if policy " - + policyNameScopeAndVersion[0] + " exists"); + 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]); + throw new PersistenceException("Policy being added to the group does not exist with policy id " + + policyNameScopeAndVersion[0]); } else if (policyQueryList.size() > 1) { - PolicyLogger.error(PolicyDBDao.DUP_POLICYID + policyNameScopeAndVersion[0] - + PolicyDBDao.FOUND_IN_DB_NOT_DEL); - throw new PersistenceException(PolicyDBDao.DUPLICATE_GROUPID - + policyNameScopeAndVersion[0] + PolicyDBDao.FOUND_IN_DB_NOT_DEL); + PolicyLogger.error( + PolicyDBDao.DUP_POLICYID + policyNameScopeAndVersion[0] + PolicyDBDao.FOUND_IN_DB_NOT_DEL); + throw new PersistenceException( + PolicyDBDao.DUPLICATE_GROUPID + policyNameScopeAndVersion[0] + PolicyDBDao.FOUND_IN_DB_NOT_DEL); } logger.info("PolicyDBDao: Getting group and policy from database"); GroupEntity group = (GroupEntity) groupQueryList.get(0); PolicyEntity policy = (PolicyEntity) policyQueryList.get(0); Iterator policyIt = group.getPolicies().iterator(); - String policyName = policyDbDao - .getPolicyNameAndVersionFromPolicyFileName(policy.getPolicyName())[0]; + String policyName = policyDbDao.getPolicyNameAndVersionFromPolicyFileName(policy.getPolicyName())[0]; logger.info("PolicyDBDao: policyName retrieved is " + policyName); try { while (policyIt.hasNext()) { PolicyEntity pol = policyIt.next(); - if (policy.getScope().equals(pol.getScope()) && policyDbDao - .getPolicyNameAndVersionFromPolicyFileName(pol.getPolicyName())[0] + if (policy.getScope().equals(pol.getScope()) + && policyDbDao.getPolicyNameAndVersionFromPolicyFileName(pol.getPolicyName())[0] .equals(policyName)) { policyIt.remove(); } } } 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); + auditPdpOperations(username, policy.getScope() + "." + policy.getPolicyName(), "Push"); session.flush(); // After adding policy to the db group we need to make sure the // filesytem group is in sync with the db group try { - StdPDPGroup pdpGroup = (StdPDPGroup) PolicyDBDao.getPolicyDBDaoInstance() - .getPapEngine().getGroup(group.getGroupId()); + StdPDPGroup pdpGroup = + (StdPDPGroup) PolicyDBDao.getPolicyDBDaoInstance().getPapEngine().getGroup(group.getGroupId()); return policyDbDao.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; } @@ -1583,8 +1477,8 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction { // 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"); + logger.debug("removePdpFromGroup(String pdpID, String username) as removePdpFromGroup(" + pdpId + "," + username + + ") called"); if (PolicyDBDao.isNullOrEmpty(pdpId, username)) { throw new IllegalArgumentException("pdpID and username must not be null or empty"); } @@ -1599,14 +1493,12 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction { } catch (Exception e) { PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, PolicyDBDao.POLICYDBDAO_VAR, "Caught Exception trying to check if pdp exists pdpQuery.getResultList()"); - throw new PersistenceException( - "Query failed trying to check if pdp " + pdpId + " exists"); + 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 - + PolicyDBDao.FOUND_IN_DB_NOT_DEL); - throw new PersistenceException("Somehow, more than one pdp with the id " + pdpId - + PolicyDBDao.FOUND_IN_DB_NOT_DEL); + PolicyLogger.error("Somehow, more than one pdp with the id " + pdpId + PolicyDBDao.FOUND_IN_DB_NOT_DEL); + throw new PersistenceException( + "Somehow, more than one pdp with the id " + pdpId + PolicyDBDao.FOUND_IN_DB_NOT_DEL); } else if (pdpList.isEmpty()) { PolicyLogger.error("Pdp being removed does not exist with id " + pdpId); return; @@ -1652,4 +1544,20 @@ public class PolicyDbDaoTransactionInstance implements PolicyDBDaoTransaction { public static void setJunit(boolean isJunit) { PolicyDbDaoTransactionInstance.isJunit = isJunit; } + + /** + * Audit pdp operations. + * + * @param username the username + * @param policyID the policy ID + * @param action the action + */ + public void auditPdpOperations(String username, String policyID, String action) { + PolicyAuditlog log = new PolicyAuditlog(); + log.setUserName(username); + log.setActions(action); + log.setPolicyName(policyID); + log.setDateAndTime(new Date()); + session.save(log); + } }