* ============LICENSE_START=======================================================
* ONAP-XACML
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
*/
public class StdEngine extends StdPDPItemSetChangeNotifier implements PAPPolicyEngine {
public static final String pipPropertyFile = "pip.properties";
+
+ private static final String addGroup = "addGroup ";
- private static Log logger = LogFactory.getLog(StdEngine.class);
+ private static Log logger = LogFactory.getLog(StdEngine.class);
public static final String PROP_PAP_REPO = "xacml.pap.pdps";
public static final String PROP_PAP_GROUPS = "xacml.pap.groups";
if (Files.notExists(this.repository)) {
Files.createDirectory(repository);
}
- if (Files.isDirectory(this.repository) == false) {
+ if (!Files.isDirectory(this.repository)) {
throw new PAPException ("Repository is NOT a directory: " + this.repository.toAbsolutePath());
}
- if (Files.isWritable(this.repository) == false) {
+ if (!Files.isWritable(this.repository)) {
throw new PAPException ("Repository is NOT writable: " + this.repository.toAbsolutePath());
}
//
//
PDPGroup group = this.getDefaultGroup();
if (group != null) {
+ wasDefaultGroupJustAdded = true;
return group;
}
//
// We don't have the default group, create it
//
String defaultId = properties.getProperty(PROP_PAP_GROUPS_DEFAULT, PROP_PAP_GROUPS_DEFAULT_NAME);
- if(defaultId == null){
- defaultId = PROP_PAP_GROUPS_DEFAULT_NAME;
- }
- if(defaultId.equals("")){
- defaultId = PROP_PAP_GROUPS_DEFAULT_NAME;
- }
- //we're going to check one more time in case the PROP_PAP_GROUPS_DEFAULT_NAME doesn't exist
- if(defaultId == null){
- defaultId = "default";
- }
- if(defaultId.equals("")){
- defaultId = "default";
+ if("".equals(defaultId)){
+ defaultId = PROP_PAP_GROUPS_DEFAULT_NAME;
}
logger.warn("Default group does NOT exist, creating " + defaultId);
Path defaultPath = Paths.get(this.repository.toString(), defaultId);
// If it exists already
//
if (Files.exists(groupPath)) {
- logger.warn("addGroup " + id + " directory exists" + groupPath.toString());
+ logger.warn(addGroup + id + " directory exists");
} else {
try {
//
Path policyProperties = Paths.get(groupPath.toString(), "xacml.policy.properties");
if (Files.exists(policyProperties)) {
- logger.warn("addGroup " + id + " file exists: " + policyProperties.toString());
+ logger.warn(addGroup + id + " file exists");
} else {
Properties props = new Properties();
props.setProperty(XACMLProperties.PROP_REFERENCEDPOLICIES, "");
props.store(os, "");
}
} catch (IOException e) {
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, "StdEngine", "Failed to create " + policyProperties);
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, "StdEngine", "Failed to create policyProperties");
throw new PAPException("Failed to create " + id);
}
}
Path pipProperties = Paths.get(groupPath.toString(), "xacml.pip.properties");
Properties props = new Properties();
if (Files.exists(pipProperties)) {
- logger.warn("addGroup " + id + " file exists: " + pipProperties.toString());
+ logger.warn(addGroup + id + " file exists.");
} else {
try {
props = setPIPProperties(props);
props.store(os, "");
}
} catch (IOException e) {
- PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, e, "StdEngine", "Failed to create " + pipProperties);
+ PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, e, "StdEngine", "Failed to create pipProperties");
throw new PAPException("Failed to create " + id);
}
this.doSave();
} else {
PolicyLogger.error("Failed to add to new group, putting back into original group.");
- if (((StdPDPGroup) currentGroup).removePDP(pdp) == false) {
+ if (!((StdPDPGroup) currentGroup).removePDP(pdp)) {
PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + "Failed to put PDP back into original group.");
}
}
// the only things that the user can change are name and description
currentPDP.setDescription(pdp.getDescription());
currentPDP.setName(pdp.getName());
- if (currentPDP instanceof OnapPDP && pdp instanceof OnapPDP) {
- ((OnapPDP)currentPDP).setJmxPort(((OnapPDP)pdp).getJmxPort());
+ if (currentPDP instanceof OnapPDP) {
+ ((OnapPDP)currentPDP).setJmxPort(pdp.getJmxPort());
}
this.doSave();
}
throw new PAPException("Unknown PDP Group: " + group.getId());
}
- // Currently not used on the PAP side. This is done by ((StdPDPGroup) group).copyPolicyToFile
+
@Override
public void copyPolicy(PDPPolicy policy, OnapPDPGroup group)
throws PAPException {
+ //
+ // Currently not used on the PAP side. This is done by ((StdPDPGroup) group).copyPolicyToFile
+ //
}
//
private Set<StdPDPGroup> readProperties(Path repository, Properties properties) throws PAPException {
- Set<StdPDPGroup> groups = new HashSet<>();
+ Set<StdPDPGroup> pdpGroups = new HashSet<>();
//
// See if there is a groups property
//
//
// Add it in
//
- groups.add(g);
+ pdpGroups.add(g);
}
//
// Dump what we got
//
if (logger.isDebugEnabled()) {
- logger.debug("PDP Group List: " + groups.toString());
+ logger.debug("PDP Group List: " + pdpGroups.toString());
}
- return groups;
+ return pdpGroups;
}
private void saveConfiguration() throws PAPException, IOException {
List<String> ids = new ArrayList<>();
for (PDPGroup group : this.groups) {
ids.add(group.getId());
- properties.setProperty(group.getId() + ".name", (group.getName() == null ? "" : group.getName()));
- properties.setProperty(group.getId() + ".description", (group.getDescription() == null ? "" : group.getDescription()));
+ properties.setProperty(group.getId() + ".name", group.getName() == null ? "" : group.getName());
+ properties.setProperty(group.getId() + ".description", group.getDescription() == null ? "" : group.getDescription());
//
// Iterate its PDPs
//
List<String> pdps = new ArrayList<>();
for (PDP pdp : group.getPdps()) {
pdps.add(pdp.getId());
- properties.setProperty(pdp.getId() + ".name", (pdp.getName() == null ? "" : pdp.getName()));
- properties.setProperty(pdp.getId() + ".description", (pdp.getDescription() == null ? "" : pdp.getDescription()));
+ properties.setProperty(pdp.getId() + ".name", pdp.getName() == null ? "" : pdp.getName());
+ properties.setProperty(pdp.getId() + ".description", pdp.getDescription() == null ? "" : pdp.getDescription());
if (pdp instanceof OnapPDP) {
properties.setProperty(pdp.getId() + ".jmxport", (((OnapPDP)pdp).getJmxPort()==0 ? "" : ((OnapPDP)pdp).getJmxPort()).toString());
}
inList = true;
}
}
- if (inList == false) {
+ if (!inList) {
Set<String> grps = Sets.newHashSet(groups);
grps.add(group.getId());
- String newGroupList = "";;
+ String newGroupList;
if (grps.size() == 1) {
newGroupList = grps.iterator().next();
} else if (grps.size() > 1) {
newGroupList = Joiner.on(',').skipNulls().join(grps);
- }
+ } else {
+ newGroupList = "";
+ }
logger.info("New Group List: " + newGroupList);
properties.setProperty(PROP_PAP_GROUPS, newGroupList);
}
//
// Set its PDP list
//
- if (group.getPdps().size() > 0) {
+ if (!group.getPdps().isEmpty()) {
String pdpList = "";
if (group.getPdps().size() == 1) {
pdpList = group.getPdps().iterator().next().getId();
// Save the configuration
//
this.saveConfiguration();
- } catch (IOException e) {
- PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "StdEngine", "Failed to save configuration");
- } catch (PAPException e) {
+ } catch (IOException|PAPException e) {
PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "StdEngine", "Failed to save configuration");
}
}
} catch (IOException e) {
PolicyLogger.error(XACMLErrorConstants.ERROR_SYSTEM_ERROR + "can not load the pip properties from file" +e);
}
- props = prop;
+ props = prop;
}
return props;
}
if (group == null) {
throw new PAPException("You must specify which group the PDP will belong to.");
}
- if (this.groups.contains(group) == false) {
+ if (!this.groups.contains(group)) {
throw new PAPException("Unknown group, not in our list.");
}
for (OnapPDP p : group.getOnapPdps()) {
//
// Does this group exist?
//
- if (this.groups.contains(group) == false) {
+ if (!this.groups.contains(group)) {
PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + "This group doesn't exist.");
throw new PAPException("The group '" + group.getId() + "' does not exist");
}
//
// Are there PDPs? If so, then we need a target group
//
- if (pdps.isEmpty() == false && newGroup == null) {
+ if (!pdps.isEmpty() && newGroup == null) {
throw new NullPointerException("Group targeted for deletion has PDPs, you must provide a new group for them.");
}
//
// Move the PDPs
//
- if (pdps.isEmpty() == false) {
+ if (!pdps.isEmpty()) {
if (! (newGroup instanceof StdPDPGroup)) {
throw new PAPException("Unexpected class for newGroup: " + newGroup.getClass().getCanonicalName());
}