summaryrefslogtreecommitdiffstats
path: root/ONAP-PAP-REST/src/main
diff options
context:
space:
mode:
authorKrishnajinka <kris.jinka@samsung.com>2018-08-02 20:55:10 +0900
committerKrishnajinka <kris.jinka@samsung.com>2018-08-02 20:55:23 +0900
commitf0fec2a861ea0a92b27b40882ea38f9422cde0c6 (patch)
tree29a8bdc0acc2131489915e6286a1d42d18a68c61 /ONAP-PAP-REST/src/main
parent7a6c4f9214a71101db3354ed06ccd3cfd3cea65b (diff)
Convert tabs to space in ONAP PAP REST1
Modify tabs to space for checkstyle issue fix in ONAP PAP REST module. It helps future reviews and refactoring Issue-ID: POLICY-1014 Change-Id: Idcf45689565f039c76a3ef0f40ad9a46b41bd8d6 Signed-off-by: Krishnajinka <kris.jinka@samsung.com>
Diffstat (limited to 'ONAP-PAP-REST/src/main')
-rw-r--r--ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/adapters/GridData.java72
-rw-r--r--ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/adapters/SearchData.java154
-rw-r--r--ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/adapters/UpdateObjectData.java54
-rw-r--r--ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/ActionPolicy.java14
-rw-r--r--ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/ClosedLoopPolicy.java678
-rw-r--r--ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/CreateBRMSRuleTemplate.java90
-rw-r--r--ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/CreateBrmsParamPolicy.java1098
-rw-r--r--ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/CreateBrmsRawPolicy.java786
-rw-r--r--ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/CreateClosedLoopPerformanceMetrics.java692
-rw-r--r--ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/CreateNewOptimizationModel.java466
-rw-r--r--ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/DecisionPolicy.java1370
-rw-r--r--ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/FirewallConfigPolicy.java2392
-rw-r--r--ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/MicroServiceConfigPolicy.java792
-rw-r--r--ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/OptimizationConfigPolicy.java746
-rw-r--r--ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/PolicyDBDaoTransaction.java276
-rw-r--r--ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/SafePolicyBuilder.java100
-rw-r--r--ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/ActionPolicyDictionaryController.java214
-rw-r--r--ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/BRMSDictionaryController.java528
-rw-r--r--ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/ClosedLoopDictionaryController.java882
-rw-r--r--ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/DecisionPolicyDictionaryController.java346
-rw-r--r--ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/DescriptiveDictionaryController.java192
-rw-r--r--ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/DictionaryController.java384
-rw-r--r--ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/DictionaryImportController.java1388
-rw-r--r--ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/FirewallDictionaryController.java2122
-rw-r--r--ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/MicroServiceDictionaryController.java1032
-rw-r--r--ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/OptimizationDictionaryController.java492
-rw-r--r--ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/PolicyScopeDictionaryController.java866
-rw-r--r--ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/PushPolicyController.java256
-rw-r--r--ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/SafePolicyController.java282
29 files changed, 9382 insertions, 9382 deletions
diff --git a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/adapters/GridData.java b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/adapters/GridData.java
index 7e05efc63..24f4fefca 100644
--- a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/adapters/GridData.java
+++ b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/adapters/GridData.java
@@ -23,40 +23,40 @@ package org.onap.policy.pap.xacml.rest.adapters;
import java.util.List;
public class GridData {
- private List<Object> attributes;
- private List<Object> alAttributes;
- private List<Object> transportProtocols;
- private List<Object> appProtocols;
-
- public List<Object> getAttributes() {
- return attributes;
- }
-
- public void setAttributes(List<Object> attributes) {
- this.attributes = attributes;
- }
-
- public List<Object> getAlAttributes() {
- return alAttributes;
- }
-
- public void setAlAttributes(List<Object> alAttributes) {
- this.alAttributes = alAttributes;
- }
-
- public List<Object> getAppProtocols() {
- return appProtocols;
- }
-
- public void setAppProtocols(List<Object> appProtocols) {
- this.appProtocols = appProtocols;
- }
-
- public List<Object> getTransportProtocols() {
- return transportProtocols;
- }
-
- public void setTransportProtocols(List<Object> transportProtocols) {
- this.transportProtocols = transportProtocols;
- }
+ private List<Object> attributes;
+ private List<Object> alAttributes;
+ private List<Object> transportProtocols;
+ private List<Object> appProtocols;
+
+ public List<Object> getAttributes() {
+ return attributes;
+ }
+
+ public void setAttributes(List<Object> attributes) {
+ this.attributes = attributes;
+ }
+
+ public List<Object> getAlAttributes() {
+ return alAttributes;
+ }
+
+ public void setAlAttributes(List<Object> alAttributes) {
+ this.alAttributes = alAttributes;
+ }
+
+ public List<Object> getAppProtocols() {
+ return appProtocols;
+ }
+
+ public void setAppProtocols(List<Object> appProtocols) {
+ this.appProtocols = appProtocols;
+ }
+
+ public List<Object> getTransportProtocols() {
+ return transportProtocols;
+ }
+
+ public void setTransportProtocols(List<Object> transportProtocols) {
+ this.transportProtocols = transportProtocols;
+ }
}
diff --git a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/adapters/SearchData.java b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/adapters/SearchData.java
index 44e340396..45c46cb5b 100644
--- a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/adapters/SearchData.java
+++ b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/adapters/SearchData.java
@@ -20,81 +20,81 @@
package org.onap.policy.pap.xacml.rest.adapters;
public class SearchData {
- private String query;
- private String policyType;
- private String descriptiveScope;
- private String closedLooppolicyType;
- private String onapName;
- private String d2Service;
- private String vnfType;
- private String policyStatus;
- private String vproAction;
- private String serviceType;
- private String bindTextSearch;
- public String getQuery() {
- return query;
- }
- public void setQuery(String query) {
- this.query = query;
- }
- public String getPolicyType() {
- return policyType;
- }
- public void setPolicyType(String policyType) {
- this.policyType = policyType;
- }
- public String getDescriptiveScope() {
- return descriptiveScope;
- }
- public void setDescriptiveScope(String descriptiveScope) {
- this.descriptiveScope = descriptiveScope;
- }
- public String getClosedLooppolicyType() {
- return closedLooppolicyType;
- }
- public void setClosedLooppolicyType(String closedLooppolicyType) {
- this.closedLooppolicyType = closedLooppolicyType;
- }
- public String getOnapName() {
- return onapName;
- }
- public void setOnapName(String onapName) {
- this.onapName = onapName;
- }
- public String getD2Service() {
- return d2Service;
- }
- public void setD2Service(String d2Service) {
- this.d2Service = d2Service;
- }
- public String getVnfType() {
- return vnfType;
- }
- public void setVnfType(String vnfType) {
- this.vnfType = vnfType;
- }
- public String getPolicyStatus() {
- return policyStatus;
- }
- public void setPolicyStatus(String policyStatus) {
- this.policyStatus = policyStatus;
- }
- public String getVproAction() {
- return vproAction;
- }
- public void setVproAction(String vproAction) {
- this.vproAction = vproAction;
- }
- public String getServiceType() {
- return serviceType;
- }
- public void setServiceType(String serviceType) {
- this.serviceType = serviceType;
- }
- public String getBindTextSearch() {
- return bindTextSearch;
- }
- public void setBindTextSearch(String bindTextSearch) {
- this.bindTextSearch = bindTextSearch;
- }
+ private String query;
+ private String policyType;
+ private String descriptiveScope;
+ private String closedLooppolicyType;
+ private String onapName;
+ private String d2Service;
+ private String vnfType;
+ private String policyStatus;
+ private String vproAction;
+ private String serviceType;
+ private String bindTextSearch;
+ public String getQuery() {
+ return query;
+ }
+ public void setQuery(String query) {
+ this.query = query;
+ }
+ public String getPolicyType() {
+ return policyType;
+ }
+ public void setPolicyType(String policyType) {
+ this.policyType = policyType;
+ }
+ public String getDescriptiveScope() {
+ return descriptiveScope;
+ }
+ public void setDescriptiveScope(String descriptiveScope) {
+ this.descriptiveScope = descriptiveScope;
+ }
+ public String getClosedLooppolicyType() {
+ return closedLooppolicyType;
+ }
+ public void setClosedLooppolicyType(String closedLooppolicyType) {
+ this.closedLooppolicyType = closedLooppolicyType;
+ }
+ public String getOnapName() {
+ return onapName;
+ }
+ public void setOnapName(String onapName) {
+ this.onapName = onapName;
+ }
+ public String getD2Service() {
+ return d2Service;
+ }
+ public void setD2Service(String d2Service) {
+ this.d2Service = d2Service;
+ }
+ public String getVnfType() {
+ return vnfType;
+ }
+ public void setVnfType(String vnfType) {
+ this.vnfType = vnfType;
+ }
+ public String getPolicyStatus() {
+ return policyStatus;
+ }
+ public void setPolicyStatus(String policyStatus) {
+ this.policyStatus = policyStatus;
+ }
+ public String getVproAction() {
+ return vproAction;
+ }
+ public void setVproAction(String vproAction) {
+ this.vproAction = vproAction;
+ }
+ public String getServiceType() {
+ return serviceType;
+ }
+ public void setServiceType(String serviceType) {
+ this.serviceType = serviceType;
+ }
+ public String getBindTextSearch() {
+ return bindTextSearch;
+ }
+ public void setBindTextSearch(String bindTextSearch) {
+ this.bindTextSearch = bindTextSearch;
+ }
} \ No newline at end of file
diff --git a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/adapters/UpdateObjectData.java b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/adapters/UpdateObjectData.java
index 04006f320..aa59868fe 100644
--- a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/adapters/UpdateObjectData.java
+++ b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/adapters/UpdateObjectData.java
@@ -20,31 +20,31 @@
package org.onap.policy.pap.xacml.rest.adapters;
public class UpdateObjectData {
- private String oldPolicyName;
- private String newPolicyName;
- private String action;
-
- public String getOldPolicyName() {
- return oldPolicyName;
- }
-
- public void setOldPolicyName(String oldPolicyName) {
- this.oldPolicyName = oldPolicyName;
- }
-
- public String getNewPolicyName() {
- return newPolicyName;
- }
-
- public void setNewPolicyName(String newPolicyName) {
- this.newPolicyName = newPolicyName;
- }
-
- public String getAction() {
- return action;
- }
-
- public void setAction(String action) {
- this.action = action;
- }
+ private String oldPolicyName;
+ private String newPolicyName;
+ private String action;
+
+ public String getOldPolicyName() {
+ return oldPolicyName;
+ }
+
+ public void setOldPolicyName(String oldPolicyName) {
+ this.oldPolicyName = oldPolicyName;
+ }
+
+ public String getNewPolicyName() {
+ return newPolicyName;
+ }
+
+ public void setNewPolicyName(String newPolicyName) {
+ this.newPolicyName = newPolicyName;
+ }
+
+ public String getAction() {
+ return action;
+ }
+
+ public void setAction(String action) {
+ this.action = action;
+ }
}
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 43eb4348e..9f84a4eac 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
@@ -106,7 +106,7 @@ public class ActionPolicy extends Policy {
this.commonClassDao = commonClassDao;
}
- @Override
+ @Override
public Map<String, String> savePolicies() throws PAPException {
Map<String, String> successMap = new HashMap<>();
@@ -260,7 +260,7 @@ public class ActionPolicy extends Policy {
policyName = policyName.replace(".xml", "");
}
File file = new File(ACTION_HOME+ File.separator + policyName + ".json");
- try(BufferedWriter bw = new BufferedWriter(new FileWriter(file.getAbsoluteFile()))) {
+ 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());
@@ -488,11 +488,11 @@ public class ActionPolicy extends Policy {
}
public String getFunctionDefinitionId(String key){
- FunctionDefinition object = (FunctionDefinition) commonClassDao.getDataById(FunctionDefinition.class, "short_name", key);
- if(object != null){
- return object.getXacmlid();
- }
- return null;
+ FunctionDefinition object = (FunctionDefinition) commonClassDao.getDataById(FunctionDefinition.class, "short_name", key);
+ if(object != null){
+ return object.getXacmlid();
+ }
+ return null;
}
} \ No newline at end of file
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 7c05a31c6..e446c2af3 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
@@ -58,345 +58,345 @@ import oasis.names.tc.xacml._3_0.core.schema.wd_17.TargetType;
public class ClosedLoopPolicy extends Policy {
- private static final Logger LOGGER = FlexLogger.getLogger(ClosedLoopPolicy.class);
-
- public ClosedLoopPolicy() {
- super();
- }
-
- 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")){
- 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);
- }
- }
-
- //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));
- return new String(encoded, encoding);
-
- }
-
- //create the configuration file based on the policy name on adding the extension as .json
- private String getConfigFile(String filename) {
- filename = FilenameUtils.removeExtension(filename);
- if (filename.endsWith(".xml")) {
- filename = filename.substring(0, filename.length() - 4);
- }
- filename = filename + ".json";
- return filename;
- }
-
- @Override
- public Map<String, String> savePolicies() throws PAPException {
-
- Map<String, String> successMap = new HashMap<>();
- if(isPolicyExists()){
- successMap.put("EXISTS", "This Policy already exist on the PAP");
- return successMap;
- }
-
- if(!isPreparedToSave()){
- prepareToSave();
- }
-
- // 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;
- }
-
- //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{
-
- 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("Config")) {
- PolicyType policyConfig = new PolicyType();
-
- policyConfig.setVersion(Integer.toString(version));
- policyConfig.setPolicyId(policyID);
- policyConfig.setTarget(new TargetType());
- policyAdapter.setData(policyConfig);
- }
- policyName = policyAdapter.getNewFileName();
- if (policyAdapter.getData() != null) {
- // Save the Configurations file with the policy name with extention based on selection.
- String jsonBody = policyAdapter.getJsonBody();
- saveConfigurations(policyName, jsonBody);
-
- // Make sure the filename ends with an extension
- if (policyName.endsWith(".xml") == false) {
- policyName = policyName + ".xml";
- }
-
- PolicyType faultPolicy = (PolicyType) policyAdapter.getData();
-
- faultPolicy.setDescription(policyAdapter.getPolicyDescription());
-
- faultPolicy.setRuleCombiningAlgId(policyAdapter.getRuleCombiningAlgId());
-
- 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());
- }
- allOfOne.getMatch().add(createMatch("PolicyName", name));
- AllOfType allOf = new AllOfType();
- // Adding the matches to AllOfType element
- // Match for Onap
- allOf.getMatch().add(createMatch("ONAPName", policyAdapter.getOnapName()));
- // Match for riskType
- allOf.getMatch().add(
- createDynamicMatch("RiskType", policyAdapter.getRiskType()));
- // Match for riskLevel
- allOf.getMatch().add(
- createDynamicMatch("RiskLevel", String.valueOf(policyAdapter.getRiskLevel())));
- // Match for riskguard
- allOf.getMatch().add(
- createDynamicMatch("guard", policyAdapter.getGuard()));
- // Match for ttlDate
- allOf.getMatch().add(
- createDynamicMatch("TTLDate", policyAdapter.getTtlDate()));
-
- AnyOfType anyOf = new AnyOfType();
- anyOf.getAllOf().add(allOfOne);
- anyOf.getAllOf().add(allOf);
-
- TargetType target = new TargetType();
- ((TargetType) target).getAnyOf().add(anyOf);
- // Adding the target to the policy element
- faultPolicy.setTarget((TargetType) target);
-
- RuleType rule = new RuleType();
- rule.setRuleId(policyAdapter.getRuleID());
- rule.setEffect(EffectType.PERMIT);
-
- // Create Target in Rule
- AllOfType allOfInRule = new AllOfType();
-
- // Creating match for ACCESS in rule target
- MatchType accessMatch = new MatchType();
- AttributeValueType accessAttributeValue = new AttributeValueType();
- accessAttributeValue.setDataType(STRING_DATATYPE);
- accessAttributeValue.getContent().add("ACCESS");
- accessMatch.setAttributeValue(accessAttributeValue);
- AttributeDesignatorType accessAttributeDesignator = new AttributeDesignatorType();
- URI accessURI = null;
- try {
- accessURI = new URI(ACTION_ID);
- } catch (URISyntaxException e) {
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, "CreateClosedLoopPolicy", "Exception creating ACCESS URI");
- }
- accessAttributeDesignator.setCategory(CATEGORY_ACTION);
- accessAttributeDesignator.setDataType(STRING_DATATYPE);
- accessAttributeDesignator.setAttributeId(new IdentifierImpl(accessURI).stringValue());
- accessMatch.setAttributeDesignator(accessAttributeDesignator);
- accessMatch.setMatchId(FUNCTION_STRING_EQUAL_IGNORE);
-
- // Creating Config Match in rule Target
- MatchType closedMatch = new MatchType();
- AttributeValueType closedAttributeValue = new AttributeValueType();
- closedAttributeValue.setDataType(STRING_DATATYPE);
- closedAttributeValue.getContent().add("Config");
- closedMatch.setAttributeValue(closedAttributeValue);
- AttributeDesignatorType closedAttributeDesignator = new AttributeDesignatorType();
- URI closedURI = null;
- try {
- closedURI = new URI(RESOURCE_ID);
- } catch (URISyntaxException e) {
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, "CreateClosedLoopPolicy", "Exception creating closed URI");
- }
- closedAttributeDesignator.setCategory(CATEGORY_RESOURCE);
- closedAttributeDesignator.setDataType(STRING_DATATYPE);
- closedAttributeDesignator.setAttributeId(new IdentifierImpl(closedURI).stringValue());
- closedMatch.setAttributeDesignator(closedAttributeDesignator);
- closedMatch.setMatchId(FUNCTION_STRING_EQUAL_IGNORE);
-
- allOfInRule.getMatch().add(accessMatch);
- allOfInRule.getMatch().add(closedMatch);
-
- AnyOfType anyOfInRule = new AnyOfType();
- anyOfInRule.getAllOf().add(allOfInRule);
-
- TargetType targetInRule = new TargetType();
- targetInRule.getAnyOf().add(anyOfInRule);
-
- rule.setTarget(targetInRule);
- rule.setAdviceExpressions(getAdviceExpressions(version, policyName));
-
- faultPolicy.getCombinerParametersOrRuleCombinerParametersOrVariableDefinition().add(rule);
- policyAdapter.setPolicyData(faultPolicy);
-
- } else {
- PolicyLogger.error("Unsupported data object." + policyAdapter.getData().getClass().getCanonicalName());
- }
-
- setPreparedToSave(true);
- return true;
- }
-
- // Data required for Advice part is setting here.
- private AdviceExpressionsType getAdviceExpressions(int version, String fileName) {
- AdviceExpressionsType advices = new AdviceExpressionsType();
- AdviceExpressionType advice = new AdviceExpressionType();
- advice.setAdviceId("faultID");
- advice.setAppliesTo(EffectType.PERMIT);
- // For Configuration
- AttributeAssignmentExpressionType assignment1 = new AttributeAssignmentExpressionType();
- assignment1.setAttributeId("type");
- assignment1.setCategory(CATEGORY_RESOURCE);
- assignment1.setIssuer("");
-
- AttributeValueType configNameAttributeValue = new AttributeValueType();
- configNameAttributeValue.setDataType(STRING_DATATYPE);
- configNameAttributeValue.getContent().add("Configuration");
- assignment1.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue));
-
- advice.getAttributeAssignmentExpression().add(assignment1);
- // For Config file Url if configurations are provided.
- AttributeAssignmentExpressionType assignment2 = new AttributeAssignmentExpressionType();
- assignment2.setAttributeId("URLID");
- assignment2.setCategory(CATEGORY_RESOURCE);
- assignment2.setIssuer("");
-
- AttributeValueType AttributeValue = new AttributeValueType();
- AttributeValue.setDataType(URI_DATATYPE);
- String content = CONFIG_URL +"/Config/" + getConfigFile(policyName);
- System.out.println("URL value :" + content);
- AttributeValue.getContent().add(content);
- assignment2.setExpression(new ObjectFactory().createAttributeValue(AttributeValue));
-
- advice.getAttributeAssignmentExpression().add(assignment2);
- AttributeAssignmentExpressionType assignment3 = new AttributeAssignmentExpressionType();
- assignment3.setAttributeId("PolicyName");
- assignment3.setCategory(CATEGORY_RESOURCE);
- assignment3.setIssuer("");
-
- AttributeValueType attributeValue3 = new AttributeValueType();
- attributeValue3.setDataType(STRING_DATATYPE);
- fileName = FilenameUtils.removeExtension(fileName);
- fileName = fileName + ".xml";
- String name = fileName.substring(fileName.lastIndexOf("\\") + 1, fileName.length());
- if ((name == null) || (name.equals(""))) {
- name = fileName.substring(fileName.lastIndexOf("/") + 1, fileName.length());
- }
- attributeValue3.getContent().add(name);
- assignment3.setExpression(new ObjectFactory().createAttributeValue(attributeValue3));
- advice.getAttributeAssignmentExpression().add(assignment3);
-
- AttributeAssignmentExpressionType assignment4 = new AttributeAssignmentExpressionType();
- assignment4.setAttributeId("VersionNumber");
- assignment4.setCategory(CATEGORY_RESOURCE);
- assignment4.setIssuer("");
-
- AttributeValueType configNameAttributeValue4 = new AttributeValueType();
- configNameAttributeValue4.setDataType(STRING_DATATYPE);
- configNameAttributeValue4.getContent().add(Integer.toString(version));
- assignment4.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue4));
-
- advice.getAttributeAssignmentExpression().add(assignment4);
-
- AttributeAssignmentExpressionType assignment5 = new AttributeAssignmentExpressionType();
- assignment5.setAttributeId("matching:" + ONAPID);
- assignment5.setCategory(CATEGORY_RESOURCE);
- assignment5.setIssuer("");
-
- AttributeValueType configNameAttributeValue5 = new AttributeValueType();
- configNameAttributeValue5.setDataType(STRING_DATATYPE);
- configNameAttributeValue5.getContent().add(policyAdapter.getOnapName());
- assignment5.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue5));
-
- advice.getAttributeAssignmentExpression().add(assignment5);
-
- //Risk Attributes
- AttributeAssignmentExpressionType assignment6 = new AttributeAssignmentExpressionType();
- assignment6.setAttributeId("RiskType");
- assignment6.setCategory(CATEGORY_RESOURCE);
- assignment6.setIssuer("");
-
- AttributeValueType configNameAttributeValue6 = new AttributeValueType();
- configNameAttributeValue6.setDataType(STRING_DATATYPE);
- configNameAttributeValue6.getContent().add(policyAdapter.getRiskType());
- assignment6.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue6));
-
- advice.getAttributeAssignmentExpression().add(assignment6);
-
- AttributeAssignmentExpressionType assignment7 = new AttributeAssignmentExpressionType();
- assignment7.setAttributeId("RiskLevel");
- assignment7.setCategory(CATEGORY_RESOURCE);
- assignment7.setIssuer("");
-
- AttributeValueType configNameAttributeValue7 = new AttributeValueType();
- configNameAttributeValue7.setDataType(STRING_DATATYPE);
- configNameAttributeValue7.getContent().add(policyAdapter.getRiskLevel());
- assignment7.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue7));
-
- advice.getAttributeAssignmentExpression().add(assignment7);
-
- AttributeAssignmentExpressionType assignment8 = new AttributeAssignmentExpressionType();
- assignment8.setAttributeId("guard");
- assignment8.setCategory(CATEGORY_RESOURCE);
- assignment8.setIssuer("");
-
- AttributeValueType configNameAttributeValue8 = new AttributeValueType();
- configNameAttributeValue8.setDataType(STRING_DATATYPE);
- configNameAttributeValue8.getContent().add(policyAdapter.getGuard());
- assignment8.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue8));
-
- advice.getAttributeAssignmentExpression().add(assignment8);
-
- AttributeAssignmentExpressionType assignment9 = new AttributeAssignmentExpressionType();
- assignment9.setAttributeId("TTLDate");
- assignment9.setCategory(CATEGORY_RESOURCE);
- assignment9.setIssuer("");
-
- AttributeValueType configNameAttributeValue9 = new AttributeValueType();
- configNameAttributeValue9.setDataType(STRING_DATATYPE);
- configNameAttributeValue9.getContent().add(policyAdapter.getTtlDate());
- assignment9.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue9));
-
- advice.getAttributeAssignmentExpression().add(assignment9);
-
-
-
- advices.getAdviceExpression().add(advice);
- return advices;
- }
-
- @Override
- public Object getCorrectPolicyDataObject() {
- return policyAdapter.getPolicyData();
- }
+ private static final Logger LOGGER = FlexLogger.getLogger(ClosedLoopPolicy.class);
+
+ public ClosedLoopPolicy() {
+ super();
+ }
+
+ 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")){
+ 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);
+ }
+ }
+
+ //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));
+ return new String(encoded, encoding);
+
+ }
+
+ //create the configuration file based on the policy name on adding the extension as .json
+ private String getConfigFile(String filename) {
+ filename = FilenameUtils.removeExtension(filename);
+ if (filename.endsWith(".xml")) {
+ filename = filename.substring(0, filename.length() - 4);
+ }
+ filename = filename + ".json";
+ return filename;
+ }
+
+ @Override
+ public Map<String, String> savePolicies() throws PAPException {
+
+ Map<String, String> successMap = new HashMap<>();
+ if(isPolicyExists()){
+ successMap.put("EXISTS", "This Policy already exist on the PAP");
+ return successMap;
+ }
+
+ if(!isPreparedToSave()){
+ prepareToSave();
+ }
+
+ // 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;
+ }
+
+ //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{
+
+ 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("Config")) {
+ PolicyType policyConfig = new PolicyType();
+
+ policyConfig.setVersion(Integer.toString(version));
+ policyConfig.setPolicyId(policyID);
+ policyConfig.setTarget(new TargetType());
+ policyAdapter.setData(policyConfig);
+ }
+ policyName = policyAdapter.getNewFileName();
+ if (policyAdapter.getData() != null) {
+ // Save the Configurations file with the policy name with extention based on selection.
+ String jsonBody = policyAdapter.getJsonBody();
+ saveConfigurations(policyName, jsonBody);
+
+ // Make sure the filename ends with an extension
+ if (policyName.endsWith(".xml") == false) {
+ policyName = policyName + ".xml";
+ }
+
+ PolicyType faultPolicy = (PolicyType) policyAdapter.getData();
+
+ faultPolicy.setDescription(policyAdapter.getPolicyDescription());
+
+ faultPolicy.setRuleCombiningAlgId(policyAdapter.getRuleCombiningAlgId());
+
+ 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());
+ }
+ allOfOne.getMatch().add(createMatch("PolicyName", name));
+ AllOfType allOf = new AllOfType();
+ // Adding the matches to AllOfType element
+ // Match for Onap
+ allOf.getMatch().add(createMatch("ONAPName", policyAdapter.getOnapName()));
+ // Match for riskType
+ allOf.getMatch().add(
+ createDynamicMatch("RiskType", policyAdapter.getRiskType()));
+ // Match for riskLevel
+ allOf.getMatch().add(
+ createDynamicMatch("RiskLevel", String.valueOf(policyAdapter.getRiskLevel())));
+ // Match for riskguard
+ allOf.getMatch().add(
+ createDynamicMatch("guard", policyAdapter.getGuard()));
+ // Match for ttlDate
+ allOf.getMatch().add(
+ createDynamicMatch("TTLDate", policyAdapter.getTtlDate()));
+
+ AnyOfType anyOf = new AnyOfType();
+ anyOf.getAllOf().add(allOfOne);
+ anyOf.getAllOf().add(allOf);
+
+ TargetType target = new TargetType();
+ ((TargetType) target).getAnyOf().add(anyOf);
+ // Adding the target to the policy element
+ faultPolicy.setTarget((TargetType) target);
+
+ RuleType rule = new RuleType();
+ rule.setRuleId(policyAdapter.getRuleID());
+ rule.setEffect(EffectType.PERMIT);
+
+ // Create Target in Rule
+ AllOfType allOfInRule = new AllOfType();
+
+ // Creating match for ACCESS in rule target
+ MatchType accessMatch = new MatchType();
+ AttributeValueType accessAttributeValue = new AttributeValueType();
+ accessAttributeValue.setDataType(STRING_DATATYPE);
+ accessAttributeValue.getContent().add("ACCESS");
+ accessMatch.setAttributeValue(accessAttributeValue);
+ AttributeDesignatorType accessAttributeDesignator = new AttributeDesignatorType();
+ URI accessURI = null;
+ try {
+ accessURI = new URI(ACTION_ID);
+ } catch (URISyntaxException e) {
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, "CreateClosedLoopPolicy", "Exception creating ACCESS URI");
+ }
+ accessAttributeDesignator.setCategory(CATEGORY_ACTION);
+ accessAttributeDesignator.setDataType(STRING_DATATYPE);
+ accessAttributeDesignator.setAttributeId(new IdentifierImpl(accessURI).stringValue());
+ accessMatch.setAttributeDesignator(accessAttributeDesignator);
+ accessMatch.setMatchId(FUNCTION_STRING_EQUAL_IGNORE);
+
+ // Creating Config Match in rule Target
+ MatchType closedMatch = new MatchType();
+ AttributeValueType closedAttributeValue = new AttributeValueType();
+ closedAttributeValue.setDataType(STRING_DATATYPE);
+ closedAttributeValue.getContent().add("Config");
+ closedMatch.setAttributeValue(closedAttributeValue);
+ AttributeDesignatorType closedAttributeDesignator = new AttributeDesignatorType();
+ URI closedURI = null;
+ try {
+ closedURI = new URI(RESOURCE_ID);
+ } catch (URISyntaxException e) {
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, "CreateClosedLoopPolicy", "Exception creating closed URI");
+ }
+ closedAttributeDesignator.setCategory(CATEGORY_RESOURCE);
+ closedAttributeDesignator.setDataType(STRING_DATATYPE);
+ closedAttributeDesignator.setAttributeId(new IdentifierImpl(closedURI).stringValue());
+ closedMatch.setAttributeDesignator(closedAttributeDesignator);
+ closedMatch.setMatchId(FUNCTION_STRING_EQUAL_IGNORE);
+
+ allOfInRule.getMatch().add(accessMatch);
+ allOfInRule.getMatch().add(closedMatch);
+
+ AnyOfType anyOfInRule = new AnyOfType();
+ anyOfInRule.getAllOf().add(allOfInRule);
+
+ TargetType targetInRule = new TargetType();
+ targetInRule.getAnyOf().add(anyOfInRule);
+
+ rule.setTarget(targetInRule);
+ rule.setAdviceExpressions(getAdviceExpressions(version, policyName));
+
+ faultPolicy.getCombinerParametersOrRuleCombinerParametersOrVariableDefinition().add(rule);
+ policyAdapter.setPolicyData(faultPolicy);
+
+ } else {
+ PolicyLogger.error("Unsupported data object." + policyAdapter.getData().getClass().getCanonicalName());
+ }
+
+ setPreparedToSave(true);
+ return true;
+ }
+
+ // Data required for Advice part is setting here.
+ private AdviceExpressionsType getAdviceExpressions(int version, String fileName) {
+ AdviceExpressionsType advices = new AdviceExpressionsType();
+ AdviceExpressionType advice = new AdviceExpressionType();
+ advice.setAdviceId("faultID");
+ advice.setAppliesTo(EffectType.PERMIT);
+ // For Configuration
+ AttributeAssignmentExpressionType assignment1 = new AttributeAssignmentExpressionType();
+ assignment1.setAttributeId("type");
+ assignment1.setCategory(CATEGORY_RESOURCE);
+ assignment1.setIssuer("");
+
+ AttributeValueType configNameAttributeValue = new AttributeValueType();
+ configNameAttributeValue.setDataType(STRING_DATATYPE);
+ configNameAttributeValue.getContent().add("Configuration");
+ assignment1.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue));
+
+ advice.getAttributeAssignmentExpression().add(assignment1);
+ // For Config file Url if configurations are provided.
+ AttributeAssignmentExpressionType assignment2 = new AttributeAssignmentExpressionType();
+ assignment2.setAttributeId("URLID");
+ assignment2.setCategory(CATEGORY_RESOURCE);
+ assignment2.setIssuer("");
+
+ AttributeValueType AttributeValue = new AttributeValueType();
+ AttributeValue.setDataType(URI_DATATYPE);
+ String content = CONFIG_URL +"/Config/" + getConfigFile(policyName);
+ System.out.println("URL value :" + content);
+ AttributeValue.getContent().add(content);
+ assignment2.setExpression(new ObjectFactory().createAttributeValue(AttributeValue));
+
+ advice.getAttributeAssignmentExpression().add(assignment2);
+ AttributeAssignmentExpressionType assignment3 = new AttributeAssignmentExpressionType();
+ assignment3.setAttributeId("PolicyName");
+ assignment3.setCategory(CATEGORY_RESOURCE);
+ assignment3.setIssuer("");
+
+ AttributeValueType attributeValue3 = new AttributeValueType();
+ attributeValue3.setDataType(STRING_DATATYPE);
+ fileName = FilenameUtils.removeExtension(fileName);
+ fileName = fileName + ".xml";
+ String name = fileName.substring(fileName.lastIndexOf("\\") + 1, fileName.length());
+ if ((name == null) || (name.equals(""))) {
+ name = fileName.substring(fileName.lastIndexOf("/") + 1, fileName.length());
+ }
+ attributeValue3.getContent().add(name);
+ assignment3.setExpression(new ObjectFactory().createAttributeValue(attributeValue3));
+ advice.getAttributeAssignmentExpression().add(assignment3);
+
+ AttributeAssignmentExpressionType assignment4 = new AttributeAssignmentExpressionType();
+ assignment4.setAttributeId("VersionNumber");
+ assignment4.setCategory(CATEGORY_RESOURCE);
+ assignment4.setIssuer("");
+
+ AttributeValueType configNameAttributeValue4 = new AttributeValueType();
+ configNameAttributeValue4.setDataType(STRING_DATATYPE);
+ configNameAttributeValue4.getContent().add(Integer.toString(version));
+ assignment4.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue4));
+
+ advice.getAttributeAssignmentExpression().add(assignment4);
+
+ AttributeAssignmentExpressionType assignment5 = new AttributeAssignmentExpressionType();
+ assignment5.setAttributeId("matching:" + ONAPID);
+ assignment5.setCategory(CATEGORY_RESOURCE);
+ assignment5.setIssuer("");
+
+ AttributeValueType configNameAttributeValue5 = new AttributeValueType();
+ configNameAttributeValue5.setDataType(STRING_DATATYPE);
+ configNameAttributeValue5.getContent().add(policyAdapter.getOnapName());
+ assignment5.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue5));
+
+ advice.getAttributeAssignmentExpression().add(assignment5);
+
+ //Risk Attributes
+ AttributeAssignmentExpressionType assignment6 = new AttributeAssignmentExpressionType();
+ assignment6.setAttributeId("RiskType");
+ assignment6.setCategory(CATEGORY_RESOURCE);
+ assignment6.setIssuer("");
+
+ AttributeValueType configNameAttributeValue6 = new AttributeValueType();
+ configNameAttributeValue6.setDataType(STRING_DATATYPE);
+ configNameAttributeValue6.getContent().add(policyAdapter.getRiskType());
+ assignment6.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue6));
+
+ advice.getAttributeAssignmentExpression().add(assignment6);
+
+ AttributeAssignmentExpressionType assignment7 = new AttributeAssignmentExpressionType();
+ assignment7.setAttributeId("RiskLevel");
+ assignment7.setCategory(CATEGORY_RESOURCE);
+ assignment7.setIssuer("");
+
+ AttributeValueType configNameAttributeValue7 = new AttributeValueType();
+ configNameAttributeValue7.setDataType(STRING_DATATYPE);
+ configNameAttributeValue7.getContent().add(policyAdapter.getRiskLevel());
+ assignment7.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue7));
+
+ advice.getAttributeAssignmentExpression().add(assignment7);
+
+ AttributeAssignmentExpressionType assignment8 = new AttributeAssignmentExpressionType();
+ assignment8.setAttributeId("guard");
+ assignment8.setCategory(CATEGORY_RESOURCE);
+ assignment8.setIssuer("");
+
+ AttributeValueType configNameAttributeValue8 = new AttributeValueType();
+ configNameAttributeValue8.setDataType(STRING_DATATYPE);
+ configNameAttributeValue8.getContent().add(policyAdapter.getGuard());
+ assignment8.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue8));
+
+ advice.getAttributeAssignmentExpression().add(assignment8);
+
+ AttributeAssignmentExpressionType assignment9 = new AttributeAssignmentExpressionType();
+ assignment9.setAttributeId("TTLDate");
+ assignment9.setCategory(CATEGORY_RESOURCE);
+ assignment9.setIssuer("");
+
+ AttributeValueType configNameAttributeValue9 = new AttributeValueType();
+ configNameAttributeValue9.setDataType(STRING_DATATYPE);
+ configNameAttributeValue9.getContent().add(policyAdapter.getTtlDate());
+ assignment9.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue9));
+
+ advice.getAttributeAssignmentExpression().add(assignment9);
+
+
+
+ advices.getAdviceExpression().add(advice);
+ return advices;
+ }
+
+ @Override
+ public Object getCorrectPolicyDataObject() {
+ return policyAdapter.getPolicyData();
+ }
}
diff --git a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/CreateBRMSRuleTemplate.java b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/CreateBRMSRuleTemplate.java
index 45080cee9..9809ad498 100644
--- a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/CreateBRMSRuleTemplate.java
+++ b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/CreateBRMSRuleTemplate.java
@@ -34,50 +34,50 @@ import org.springframework.stereotype.Service;
@Service
public class CreateBRMSRuleTemplate {
- private static final Logger LOGGER = FlexLogger.getLogger(CreateBRMSRuleTemplate.class);
- private static CommonClassDao commonClassDao;
-
- @Autowired
- public CreateBRMSRuleTemplate(CommonClassDao commonClassDao){
- CreateBRMSRuleTemplate.commonClassDao = commonClassDao;
- }
-
- public CreateBRMSRuleTemplate() {}
+ private static final Logger LOGGER = FlexLogger.getLogger(CreateBRMSRuleTemplate.class);
+ private static CommonClassDao commonClassDao;
- public Map<String, String> addRule(String rule, String ruleName, String description, String userID) {
- Map<String,String> responseMap = new HashMap<>();
- if(rule!=null && !PolicyUtils.brmsRawValidate(rule).contains("[ERR")){
- List<Object> duplicateData = commonClassDao.checkDuplicateEntry(ruleName, "ruleName", BRMSParamTemplate.class);
- if(duplicateData!=null && !duplicateData.isEmpty()){
- LOGGER.error("Import new service failed. Service already exists");
- responseMap.put("DBError", "EXISTS");
- return responseMap;
- }else{
- BRMSParamTemplate brmsParamTemplate = new BRMSParamTemplate();
- brmsParamTemplate.setDescription(description);
- brmsParamTemplate.setRuleName(ruleName);
- brmsParamTemplate.setRule(rule);
- UserInfo userCreatedBy = (UserInfo) commonClassDao.getEntityItem(UserInfo.class, "userLoginId", userID);
- brmsParamTemplate.setUserCreatedBy(userCreatedBy);
- commonClassDao.save(brmsParamTemplate);
- LOGGER.info("Template created with " + ruleName + " by " + userID);
- }
- responseMap.put("success", "success");
- }else{
- LOGGER.debug("Error during validating the rule for creating record for BRMS Param Template");
- responseMap.put("error", "VALIDATION");
- }
- return responseMap;
- }
-
- public static boolean validateRuleParams(String rule) {
- CreateBrmsParamPolicy policy = new CreateBrmsParamPolicy();
- Map<String, String> paramValues = policy.findType(rule);
- for(String key : paramValues.keySet()) {
- if(!PolicyUtils.SUCCESS.equals(PolicyUtils.policySpecialCharValidator(key))){
- return false;
- }
- }
- return true;
- }
+ @Autowired
+ public CreateBRMSRuleTemplate(CommonClassDao commonClassDao){
+ CreateBRMSRuleTemplate.commonClassDao = commonClassDao;
+ }
+
+ public CreateBRMSRuleTemplate() {}
+
+ public Map<String, String> addRule(String rule, String ruleName, String description, String userID) {
+ Map<String,String> responseMap = new HashMap<>();
+ if(rule!=null && !PolicyUtils.brmsRawValidate(rule).contains("[ERR")){
+ List<Object> duplicateData = commonClassDao.checkDuplicateEntry(ruleName, "ruleName", BRMSParamTemplate.class);
+ if(duplicateData!=null && !duplicateData.isEmpty()){
+ LOGGER.error("Import new service failed. Service already exists");
+ responseMap.put("DBError", "EXISTS");
+ return responseMap;
+ }else{
+ BRMSParamTemplate brmsParamTemplate = new BRMSParamTemplate();
+ brmsParamTemplate.setDescription(description);
+ brmsParamTemplate.setRuleName(ruleName);
+ brmsParamTemplate.setRule(rule);
+ UserInfo userCreatedBy = (UserInfo) commonClassDao.getEntityItem(UserInfo.class, "userLoginId", userID);
+ brmsParamTemplate.setUserCreatedBy(userCreatedBy);
+ commonClassDao.save(brmsParamTemplate);
+ LOGGER.info("Template created with " + ruleName + " by " + userID);
+ }
+ responseMap.put("success", "success");
+ }else{
+ LOGGER.debug("Error during validating the rule for creating record for BRMS Param Template");
+ responseMap.put("error", "VALIDATION");
+ }
+ return responseMap;
+ }
+
+ public static boolean validateRuleParams(String rule) {
+ CreateBrmsParamPolicy policy = new CreateBrmsParamPolicy();
+ Map<String, String> paramValues = policy.findType(rule);
+ for(String key : paramValues.keySet()) {
+ if(!PolicyUtils.SUCCESS.equals(PolicyUtils.policySpecialCharValidator(key))){
+ return false;
+ }
+ }
+ return true;
+ }
}
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 2a13fb000..3d9a779e3 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
@@ -69,496 +69,496 @@ import oasis.names.tc.xacml._3_0.core.schema.wd_17.RuleType;
import oasis.names.tc.xacml._3_0.core.schema.wd_17.TargetType;
public class CreateBrmsParamPolicy extends Policy {
-
- private static final Logger LOGGER = FlexLogger.getLogger(CreateBrmsParamPolicy.class);
-
- public CreateBrmsParamPolicy() {
- super();
- }
-
- public CreateBrmsParamPolicy(PolicyRestAdapter policyAdapter) {
- this.policyAdapter = policyAdapter;
- this.policyAdapter.setConfigType(policyAdapter.getConfigType());
-
- }
-
- public String expandConfigBody(String ruleContents, Map<String, String> brmsParamBody) {
-
- 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]", ""));
-
- //Finding all the keys in the Map data-structure.
- Iterator<String> iterator = copyMap.keySet().iterator();
- Pattern p;
- Matcher m;
- 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)) +
- (input.length() > 1 ? input.substring(1) : "");
- //Searching for a pattern in the String using the key.
- 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("$")){
- finalInput = finalInput.replace("$", "\\$");
- }
- ruleContents=m.replaceAll(finalInput);
- }
- return ruleContents;
- }
-
+
+ private static final Logger LOGGER = FlexLogger.getLogger(CreateBrmsParamPolicy.class);
+
+ public CreateBrmsParamPolicy() {
+ super();
+ }
+
+ public CreateBrmsParamPolicy(PolicyRestAdapter policyAdapter) {
+ this.policyAdapter = policyAdapter;
+ this.policyAdapter.setConfigType(policyAdapter.getConfigType());
+
+ }
+
+ public String expandConfigBody(String ruleContents, Map<String, String> brmsParamBody) {
+
+ 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]", ""));
+
+ //Finding all the keys in the Map data-structure.
+ Iterator<String> iterator = copyMap.keySet().iterator();
+ Pattern p;
+ Matcher m;
+ 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)) +
+ (input.length() > 1 ? input.substring(1) : "");
+ //Searching for a pattern in the String using the key.
+ 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("$")){
+ finalInput = finalInput.replace("$", "\\$");
+ }
+ 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));
- return new String(encoded, encoding);
- }
-
- // Saving the Configurations file at server location for config policy.
- protected void saveConfigurations(String policyName, String ruleBody) {
- if (policyName.endsWith(".xml")) {
+ // 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));
+ return new String(encoded, encoding);
+ }
+
+ // Saving the Configurations file at server location for config policy.
+ protected void saveConfigurations(String policyName, String ruleBody) {
+ if (policyName.endsWith(".xml")) {
policyName = policyName.substring(0, policyName.lastIndexOf(".xml"));
}
- try (PrintWriter out = new PrintWriter(CONFIG_HOME + File.separator + policyName + ".txt")) {
- 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");
- }
- }
-
-
- // Here we are adding the extension for the configurations file based on the
- // config type selection for saving.
- private String getConfigFile(String filename) {
- filename = FilenameUtils.removeExtension(filename);
- if (filename.endsWith(".txt")) {
- filename = filename.substring(0, filename.length() - 3);
- }
-
- filename = filename + ".txt";
- return filename;
- }
-
- // Validations for Config form
- public boolean validateConfigForm() {
-
- // Validating mandatory Fields.
- isValidForm = true;
- return isValidForm;
-
- }
-
- @Override
- public Map<String, String> savePolicies() throws PAPException {
-
- Map<String, String> successMap = new HashMap<>();
- if(isPolicyExists()){
- successMap.put("EXISTS", "This Policy already exist on the PAP");
- return successMap;
- }
-
- if (!isPreparedToSave()) {
- prepareToSave();
- }
- // 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());
- if(successMap == null){
- successMap = new HashMap<>();
- PolicyLogger.error("Failed to Update the Database Dictionary Tables.");
- successMap.put("error", "DB UPDATE");
- }
- return successMap;
- }
-
- private String getValueFromDictionary(String templateName){
- String ruleTemplate = null;
- CommonClassDaoImpl dbConnection = new CommonClassDaoImpl();
- 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()){
- BRMSParamTemplate template = (BRMSParamTemplate) result.get(0);
- ruleTemplate = template.getRule();
- }
- return ruleTemplate;
- }
-
- protected Map<String, String> findType(String rule) {
- 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){
- if (line.isEmpty() || line.startsWith("//")) {
- continue;
- }
- if (line.startsWith("/*")) {
- comment = true;
- continue;
- }
- if (line.contains("//") && !(line.contains("http://") || line.contains("https://"))){
- line = line.split("\\/\\/")[0];
- }
- if (line.contains("/*")) {
- comment = true;
- if (line.contains("*/")) {
- try {
- comment = false;
- line = line.split("\\/\\*")[0]
- + line.split("\\*\\/")[1].replace("*/", "");
- } catch (Exception e) {
- LOGGER.debug(e);
- line = line.split("\\/\\*")[0];
- }
- } else {
- line = line.split("\\/\\*")[0];
- }
- }
- if (line.contains("*/")) {
- comment = false;
- try {
- line = line.split("\\*\\/")[1].replace("*/", "");
- } catch (Exception e) {
- LOGGER.debug(e);
- line = "";
- }
- }
- if (comment) {
- continue;
- }
- if (flag) {
- params.append(line);
- }
- if (line.contains("declare Params")) {
- params.append(line);
- flag = true;
- }
- if (line.contains("end") && flag) {
- break;
- }
- }
- String param = params.toString().replace("declare Params", "").replace("end", "")
- .replaceAll("\\s+", "");
- String[] components = param.split(":");
- String caption = "";
- for (int i = 0; i < components.length; i++) {
- String type = "";
- if (i == 0) {
- caption = components[i];
- }
- if(caption.equals("")){
- break;
- }
- String nextComponent = "";
- try {
- nextComponent = components[i + 1];
- } catch (Exception e) {
- LOGGER.debug(e);
- nextComponent = components[i];
- }
- //If the type is of type String then we add the UI Item and type to the map.
- if (nextComponent.startsWith("String")) {
- type = "String";
- mapFieldType.put(caption, type);
- caption = nextComponent.replace("String", "");
- } else if (nextComponent.startsWith("int")) {
- type = "int";
- mapFieldType.put(caption, type);
- caption = nextComponent.replace("int", "");
- }
- }
- } catch (Exception e) {
- PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "CreateBrmsParamPolicy", "Exception parsing file in findType");
- }
- }
- return mapFieldType;
- }
-
- // 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 {
-
- 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("Config")) {
- PolicyType policyConfig = new PolicyType();
-
- policyConfig.setVersion(Integer.toString(version));
- policyConfig.setPolicyId(policyID);
- policyConfig.setTarget(new TargetType());
- policyAdapter.setData(policyConfig);
- }
-
- policyName = policyAdapter.getNewFileName();
-
- if (policyAdapter.getData() != null) {
- 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("<%$Values=");
- for (Map.Entry<String, String> entry : ruleAndUIValue.entrySet()) {
- String uiKey = entry.getKey();
- 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");
- }
-
- saveConfigurations(policyName,body.toString());
-
- // Make sure the filename ends with an extension
- if (!policyName.endsWith(".xml")) {
- policyName = policyName + ".xml";
- }
-
- PolicyType configPolicy = (PolicyType) policyAdapter.getData();
-
- configPolicy.setDescription(policyAdapter.getPolicyDescription());
-
- configPolicy.setRuleCombiningAlgId(policyAdapter.getRuleCombiningAlgId());
-
- 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());
- }
- allOfOne.getMatch().add(createMatch("PolicyName", name));
-
-
- AllOfType allOf = new AllOfType();
-
- // Match for ONAPName
- allOf.getMatch().add(createMatch("ONAPName", policyAdapter.getOnapName()));
- allOf.getMatch().add(createMatch("ConfigName", policyAdapter.getConfigName()));
- // Match for riskType
- allOf.getMatch().add(createDynamicMatch("RiskType", policyAdapter.getRiskType()));
- // Match for riskLevel
- allOf.getMatch().add(createDynamicMatch("RiskLevel", String.valueOf(policyAdapter.getRiskLevel())));
- // Match for riskguard
- allOf.getMatch().add(createDynamicMatch("guard", policyAdapter.getGuard()));
- // Match for ttlDate
- allOf.getMatch().add(createDynamicMatch("TTLDate", policyAdapter.getTtlDate()));
- AnyOfType anyOf = new AnyOfType();
- anyOf.getAllOf().add(allOfOne);
- anyOf.getAllOf().add(allOf);
-
- TargetType target = new TargetType();
- target.getAnyOf().add(anyOf);
-
- // Adding the target to the policy element
- configPolicy.setTarget((TargetType) target);
-
- RuleType rule = new RuleType();
- rule.setRuleId(policyAdapter.getRuleID());
-
- rule.setEffect(EffectType.PERMIT);
-
- // Create Target in Rule
- AllOfType allOfInRule = new AllOfType();
-
- // Creating match for ACCESS in rule target
- MatchType accessMatch = new MatchType();
- AttributeValueType accessAttributeValue = new AttributeValueType();
- accessAttributeValue.setDataType(STRING_DATATYPE);
- accessAttributeValue.getContent().add("ACCESS");
- accessMatch.setAttributeValue(accessAttributeValue);
- AttributeDesignatorType accessAttributeDesignator = new AttributeDesignatorType();
- URI accessURI = null;
- try {
- accessURI = new URI(ACTION_ID);
- } catch (URISyntaxException e) {
- PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, e, "CreateBrmsParamPolicy", "Exception creating ACCESS URI");
- }
- accessAttributeDesignator.setCategory(CATEGORY_ACTION);
- accessAttributeDesignator.setDataType(STRING_DATATYPE);
- accessAttributeDesignator.setAttributeId(new IdentifierImpl(
- accessURI).stringValue());
- accessMatch.setAttributeDesignator(accessAttributeDesignator);
- accessMatch.setMatchId(FUNCTION_STRING_EQUAL_IGNORE);
-
- // Creating Config Match in rule Target
- MatchType configMatch = new MatchType();
- AttributeValueType configAttributeValue = new AttributeValueType();
- configAttributeValue.setDataType(STRING_DATATYPE);
-
- configAttributeValue.getContent().add("Config");
-
- configMatch.setAttributeValue(configAttributeValue);
- AttributeDesignatorType configAttributeDesignator = new AttributeDesignatorType();
- URI configURI = null;
- try {
- configURI = new URI(RESOURCE_ID);
- } catch (URISyntaxException e) {
- PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, e, "CreateBrmsParamPolicy", "Exception creating Config URI");
- }
-
- configAttributeDesignator.setCategory(CATEGORY_RESOURCE);
- configAttributeDesignator.setDataType(STRING_DATATYPE);
- configAttributeDesignator.setAttributeId(new IdentifierImpl(configURI).stringValue());
- configMatch.setAttributeDesignator(configAttributeDesignator);
- configMatch.setMatchId(FUNCTION_STRING_EQUAL_IGNORE);
-
- allOfInRule.getMatch().add(accessMatch);
- allOfInRule.getMatch().add(configMatch);
-
- AnyOfType anyOfInRule = new AnyOfType();
- anyOfInRule.getAllOf().add(allOfInRule);
-
- TargetType targetInRule = new TargetType();
- targetInRule.getAnyOf().add(anyOfInRule);
-
- rule.setTarget(targetInRule);
- rule.setAdviceExpressions(getAdviceExpressions(version, policyName));
-
- configPolicy
- .getCombinerParametersOrRuleCombinerParametersOrVariableDefinition()
- .add(rule);
- policyAdapter.setPolicyData(configPolicy);
-
- } else {
- PolicyLogger.error("Unsupported data object."
- + policyAdapter.getData().getClass().getCanonicalName());
- }
- setPreparedToSave(true);
- return true;
- }
-
- // Data required for Advice part is setting here.
- private AdviceExpressionsType getAdviceExpressions(int version,
- String fileName) {
-
- //Policy Config ID Assignment
- AdviceExpressionsType advices = new AdviceExpressionsType();
- AdviceExpressionType advice = new AdviceExpressionType();
- advice.setAdviceId("BRMSPARAMID");
- advice.setAppliesTo(EffectType.PERMIT);
- // For Configuration
- AttributeAssignmentExpressionType assignment1 = new AttributeAssignmentExpressionType();
- assignment1.setAttributeId("type");
- assignment1.setCategory(CATEGORY_RESOURCE);
- assignment1.setIssuer("");
- AttributeValueType configNameAttributeValue = new AttributeValueType();
- configNameAttributeValue.setDataType(STRING_DATATYPE);
- configNameAttributeValue.getContent().add("Configuration");
- assignment1.setExpression(new ObjectFactory()
- .createAttributeValue(configNameAttributeValue));
- advice.getAttributeAssignmentExpression().add(assignment1);
-
- // For Config file Url if configurations are provided.
- // URL ID Assignment
- AttributeAssignmentExpressionType assignment2 = new AttributeAssignmentExpressionType();
- assignment2.setAttributeId("URLID");
- assignment2.setCategory(CATEGORY_RESOURCE);
- assignment2.setIssuer("");
- AttributeValueType attributeValue = new AttributeValueType();
- attributeValue.setDataType(URI_DATATYPE);
-
- String content = CONFIG_URL + "/Config/"+ getConfigFile(policyName);
-
- attributeValue.getContent().add(content);
- assignment2.setExpression(new ObjectFactory()
- .createAttributeValue(attributeValue));
- advice.getAttributeAssignmentExpression().add(assignment2);
-
- // Policy Name Assignment
- AttributeAssignmentExpressionType assignment3 = new AttributeAssignmentExpressionType();
- assignment3.setAttributeId("PolicyName");
- assignment3.setCategory(CATEGORY_RESOURCE);
- assignment3.setIssuer("");
- AttributeValueType attributeValue3 = new AttributeValueType();
- attributeValue3.setDataType(STRING_DATATYPE);
- fileName = FilenameUtils.removeExtension(fileName);
- fileName = fileName + ".xml";
- String name = fileName.substring(fileName.lastIndexOf("\\") + 1,
- fileName.length());
- if ((name == null) || (name.equals(""))) {
- name = fileName.substring(fileName.lastIndexOf("/") + 1,
- fileName.length());
- }
- attributeValue3.getContent().add(name);
- assignment3.setExpression(new ObjectFactory()
- .createAttributeValue(attributeValue3));
- advice.getAttributeAssignmentExpression().add(assignment3);
-
- // Version Number Assignment
- AttributeAssignmentExpressionType assignment4 = new AttributeAssignmentExpressionType();
- assignment4.setAttributeId("VersionNumber");
- assignment4.setCategory(CATEGORY_RESOURCE);
- assignment4.setIssuer("");
- AttributeValueType configNameAttributeValue4 = new AttributeValueType();
- configNameAttributeValue4.setDataType(STRING_DATATYPE);
- configNameAttributeValue4.getContent().add(Integer.toString(version));
- assignment4.setExpression(new ObjectFactory()
- .createAttributeValue(configNameAttributeValue4));
- advice.getAttributeAssignmentExpression().add(assignment4);
-
- // Onap Name Assignment
- AttributeAssignmentExpressionType assignment5 = new AttributeAssignmentExpressionType();
- assignment5.setAttributeId("matching:" + ONAPID);
- assignment5.setCategory(CATEGORY_RESOURCE);
- assignment5.setIssuer("");
- AttributeValueType configNameAttributeValue5 = new AttributeValueType();
- configNameAttributeValue5.setDataType(STRING_DATATYPE);
- configNameAttributeValue5.getContent().add(policyAdapter.getOnapName());
- assignment5.setExpression(new ObjectFactory()
- .createAttributeValue(configNameAttributeValue5));
- advice.getAttributeAssignmentExpression().add(assignment5);
-
-
- //Config Name Assignment
- AttributeAssignmentExpressionType assignment6 = new AttributeAssignmentExpressionType();
- assignment6.setAttributeId("matching:" +CONFIGID);
- assignment6.setCategory(CATEGORY_RESOURCE);
- assignment6.setIssuer("");
- AttributeValueType configNameAttributeValue6 = new AttributeValueType();
- configNameAttributeValue6.setDataType(STRING_DATATYPE);
- configNameAttributeValue6.getContent().add(policyAdapter.getConfigName());
- assignment6.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue6));
- advice.getAttributeAssignmentExpression().add(assignment6);
+ try (PrintWriter out = new PrintWriter(CONFIG_HOME + File.separator + policyName + ".txt")) {
+ 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");
+ }
+ }
+
+
+ // Here we are adding the extension for the configurations file based on the
+ // config type selection for saving.
+ private String getConfigFile(String filename) {
+ filename = FilenameUtils.removeExtension(filename);
+ if (filename.endsWith(".txt")) {
+ filename = filename.substring(0, filename.length() - 3);
+ }
+
+ filename = filename + ".txt";
+ return filename;
+ }
+
+ // Validations for Config form
+ public boolean validateConfigForm() {
+
+ // Validating mandatory Fields.
+ isValidForm = true;
+ return isValidForm;
+
+ }
+
+ @Override
+ public Map<String, String> savePolicies() throws PAPException {
+
+ Map<String, String> successMap = new HashMap<>();
+ if(isPolicyExists()){
+ successMap.put("EXISTS", "This Policy already exist on the PAP");
+ return successMap;
+ }
+
+ if (!isPreparedToSave()) {
+ prepareToSave();
+ }
+ // 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());
+ if(successMap == null){
+ successMap = new HashMap<>();
+ PolicyLogger.error("Failed to Update the Database Dictionary Tables.");
+ successMap.put("error", "DB UPDATE");
+ }
+ return successMap;
+ }
+
+ private String getValueFromDictionary(String templateName){
+ String ruleTemplate = null;
+ CommonClassDaoImpl dbConnection = new CommonClassDaoImpl();
+ 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()){
+ BRMSParamTemplate template = (BRMSParamTemplate) result.get(0);
+ ruleTemplate = template.getRule();
+ }
+ return ruleTemplate;
+ }
+
+ protected Map<String, String> findType(String rule) {
+ 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){
+ if (line.isEmpty() || line.startsWith("//")) {
+ continue;
+ }
+ if (line.startsWith("/*")) {
+ comment = true;
+ continue;
+ }
+ if (line.contains("//") && !(line.contains("http://") || line.contains("https://"))){
+ line = line.split("\\/\\/")[0];
+ }
+ if (line.contains("/*")) {
+ comment = true;
+ if (line.contains("*/")) {
+ try {
+ comment = false;
+ line = line.split("\\/\\*")[0]
+ + line.split("\\*\\/")[1].replace("*/", "");
+ } catch (Exception e) {
+ LOGGER.debug(e);
+ line = line.split("\\/\\*")[0];
+ }
+ } else {
+ line = line.split("\\/\\*")[0];
+ }
+ }
+ if (line.contains("*/")) {
+ comment = false;
+ try {
+ line = line.split("\\*\\/")[1].replace("*/", "");
+ } catch (Exception e) {
+ LOGGER.debug(e);
+ line = "";
+ }
+ }
+ if (comment) {
+ continue;
+ }
+ if (flag) {
+ params.append(line);
+ }
+ if (line.contains("declare Params")) {
+ params.append(line);
+ flag = true;
+ }
+ if (line.contains("end") && flag) {
+ break;
+ }
+ }
+ String param = params.toString().replace("declare Params", "").replace("end", "")
+ .replaceAll("\\s+", "");
+ String[] components = param.split(":");
+ String caption = "";
+ for (int i = 0; i < components.length; i++) {
+ String type = "";
+ if (i == 0) {
+ caption = components[i];
+ }
+ if(caption.equals("")){
+ break;
+ }
+ String nextComponent = "";
+ try {
+ nextComponent = components[i + 1];
+ } catch (Exception e) {
+ LOGGER.debug(e);
+ nextComponent = components[i];
+ }
+ //If the type is of type String then we add the UI Item and type to the map.
+ if (nextComponent.startsWith("String")) {
+ type = "String";
+ mapFieldType.put(caption, type);
+ caption = nextComponent.replace("String", "");
+ } else if (nextComponent.startsWith("int")) {
+ type = "int";
+ mapFieldType.put(caption, type);
+ caption = nextComponent.replace("int", "");
+ }
+ }
+ } catch (Exception e) {
+ PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "CreateBrmsParamPolicy", "Exception parsing file in findType");
+ }
+ }
+ return mapFieldType;
+ }
+
+ // 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 {
+
+ 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("Config")) {
+ PolicyType policyConfig = new PolicyType();
+
+ policyConfig.setVersion(Integer.toString(version));
+ policyConfig.setPolicyId(policyID);
+ policyConfig.setTarget(new TargetType());
+ policyAdapter.setData(policyConfig);
+ }
+
+ policyName = policyAdapter.getNewFileName();
+
+ if (policyAdapter.getData() != null) {
+ 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("<%$Values=");
+ for (Map.Entry<String, String> entry : ruleAndUIValue.entrySet()) {
+ String uiKey = entry.getKey();
+ 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");
+ }
+
+ saveConfigurations(policyName,body.toString());
+
+ // Make sure the filename ends with an extension
+ if (!policyName.endsWith(".xml")) {
+ policyName = policyName + ".xml";
+ }
+
+ PolicyType configPolicy = (PolicyType) policyAdapter.getData();
+
+ configPolicy.setDescription(policyAdapter.getPolicyDescription());
+
+ configPolicy.setRuleCombiningAlgId(policyAdapter.getRuleCombiningAlgId());
+
+ 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());
+ }
+ allOfOne.getMatch().add(createMatch("PolicyName", name));
+
+
+ AllOfType allOf = new AllOfType();
+
+ // Match for ONAPName
+ allOf.getMatch().add(createMatch("ONAPName", policyAdapter.getOnapName()));
+ allOf.getMatch().add(createMatch("ConfigName", policyAdapter.getConfigName()));
+ // Match for riskType
+ allOf.getMatch().add(createDynamicMatch("RiskType", policyAdapter.getRiskType()));
+ // Match for riskLevel
+ allOf.getMatch().add(createDynamicMatch("RiskLevel", String.valueOf(policyAdapter.getRiskLevel())));
+ // Match for riskguard
+ allOf.getMatch().add(createDynamicMatch("guard", policyAdapter.getGuard()));
+ // Match for ttlDate
+ allOf.getMatch().add(createDynamicMatch("TTLDate", policyAdapter.getTtlDate()));
+ AnyOfType anyOf = new AnyOfType();
+ anyOf.getAllOf().add(allOfOne);
+ anyOf.getAllOf().add(allOf);
+
+ TargetType target = new TargetType();
+ target.getAnyOf().add(anyOf);
+
+ // Adding the target to the policy element
+ configPolicy.setTarget((TargetType) target);
+
+ RuleType rule = new RuleType();
+ rule.setRuleId(policyAdapter.getRuleID());
+
+ rule.setEffect(EffectType.PERMIT);
+
+ // Create Target in Rule
+ AllOfType allOfInRule = new AllOfType();
+
+ // Creating match for ACCESS in rule target
+ MatchType accessMatch = new MatchType();
+ AttributeValueType accessAttributeValue = new AttributeValueType();
+ accessAttributeValue.setDataType(STRING_DATATYPE);
+ accessAttributeValue.getContent().add("ACCESS");
+ accessMatch.setAttributeValue(accessAttributeValue);
+ AttributeDesignatorType accessAttributeDesignator = new AttributeDesignatorType();
+ URI accessURI = null;
+ try {
+ accessURI = new URI(ACTION_ID);
+ } catch (URISyntaxException e) {
+ PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, e, "CreateBrmsParamPolicy", "Exception creating ACCESS URI");
+ }
+ accessAttributeDesignator.setCategory(CATEGORY_ACTION);
+ accessAttributeDesignator.setDataType(STRING_DATATYPE);
+ accessAttributeDesignator.setAttributeId(new IdentifierImpl(
+ accessURI).stringValue());
+ accessMatch.setAttributeDesignator(accessAttributeDesignator);
+ accessMatch.setMatchId(FUNCTION_STRING_EQUAL_IGNORE);
+
+ // Creating Config Match in rule Target
+ MatchType configMatch = new MatchType();
+ AttributeValueType configAttributeValue = new AttributeValueType();
+ configAttributeValue.setDataType(STRING_DATATYPE);
+
+ configAttributeValue.getContent().add("Config");
+
+ configMatch.setAttributeValue(configAttributeValue);
+ AttributeDesignatorType configAttributeDesignator = new AttributeDesignatorType();
+ URI configURI = null;
+ try {
+ configURI = new URI(RESOURCE_ID);
+ } catch (URISyntaxException e) {
+ PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, e, "CreateBrmsParamPolicy", "Exception creating Config URI");
+ }
+
+ configAttributeDesignator.setCategory(CATEGORY_RESOURCE);
+ configAttributeDesignator.setDataType(STRING_DATATYPE);
+ configAttributeDesignator.setAttributeId(new IdentifierImpl(configURI).stringValue());
+ configMatch.setAttributeDesignator(configAttributeDesignator);
+ configMatch.setMatchId(FUNCTION_STRING_EQUAL_IGNORE);
+
+ allOfInRule.getMatch().add(accessMatch);
+ allOfInRule.getMatch().add(configMatch);
+
+ AnyOfType anyOfInRule = new AnyOfType();
+ anyOfInRule.getAllOf().add(allOfInRule);
+
+ TargetType targetInRule = new TargetType();
+ targetInRule.getAnyOf().add(anyOfInRule);
+
+ rule.setTarget(targetInRule);
+ rule.setAdviceExpressions(getAdviceExpressions(version, policyName));
+
+ configPolicy
+ .getCombinerParametersOrRuleCombinerParametersOrVariableDefinition()
+ .add(rule);
+ policyAdapter.setPolicyData(configPolicy);
+
+ } else {
+ PolicyLogger.error("Unsupported data object."
+ + policyAdapter.getData().getClass().getCanonicalName());
+ }
+ setPreparedToSave(true);
+ return true;
+ }
+
+ // Data required for Advice part is setting here.
+ private AdviceExpressionsType getAdviceExpressions(int version,
+ String fileName) {
+
+ //Policy Config ID Assignment
+ AdviceExpressionsType advices = new AdviceExpressionsType();
+ AdviceExpressionType advice = new AdviceExpressionType();
+ advice.setAdviceId("BRMSPARAMID");
+ advice.setAppliesTo(EffectType.PERMIT);
+ // For Configuration
+ AttributeAssignmentExpressionType assignment1 = new AttributeAssignmentExpressionType();
+ assignment1.setAttributeId("type");
+ assignment1.setCategory(CATEGORY_RESOURCE);
+ assignment1.setIssuer("");
+ AttributeValueType configNameAttributeValue = new AttributeValueType();
+ configNameAttributeValue.setDataType(STRING_DATATYPE);
+ configNameAttributeValue.getContent().add("Configuration");
+ assignment1.setExpression(new ObjectFactory()
+ .createAttributeValue(configNameAttributeValue));
+ advice.getAttributeAssignmentExpression().add(assignment1);
+
+ // For Config file Url if configurations are provided.
+ // URL ID Assignment
+ AttributeAssignmentExpressionType assignment2 = new AttributeAssignmentExpressionType();
+ assignment2.setAttributeId("URLID");
+ assignment2.setCategory(CATEGORY_RESOURCE);
+ assignment2.setIssuer("");
+ AttributeValueType attributeValue = new AttributeValueType();
+ attributeValue.setDataType(URI_DATATYPE);
+
+ String content = CONFIG_URL + "/Config/"+ getConfigFile(policyName);
+
+ attributeValue.getContent().add(content);
+ assignment2.setExpression(new ObjectFactory()
+ .createAttributeValue(attributeValue));
+ advice.getAttributeAssignmentExpression().add(assignment2);
+
+ // Policy Name Assignment
+ AttributeAssignmentExpressionType assignment3 = new AttributeAssignmentExpressionType();
+ assignment3.setAttributeId("PolicyName");
+ assignment3.setCategory(CATEGORY_RESOURCE);
+ assignment3.setIssuer("");
+ AttributeValueType attributeValue3 = new AttributeValueType();
+ attributeValue3.setDataType(STRING_DATATYPE);
+ fileName = FilenameUtils.removeExtension(fileName);
+ fileName = fileName + ".xml";
+ String name = fileName.substring(fileName.lastIndexOf("\\") + 1,
+ fileName.length());
+ if ((name == null) || (name.equals(""))) {
+ name = fileName.substring(fileName.lastIndexOf("/") + 1,
+ fileName.length());
+ }
+ attributeValue3.getContent().add(name);
+ assignment3.setExpression(new ObjectFactory()
+ .createAttributeValue(attributeValue3));
+ advice.getAttributeAssignmentExpression().add(assignment3);
+
+ // Version Number Assignment
+ AttributeAssignmentExpressionType assignment4 = new AttributeAssignmentExpressionType();
+ assignment4.setAttributeId("VersionNumber");
+ assignment4.setCategory(CATEGORY_RESOURCE);
+ assignment4.setIssuer("");
+ AttributeValueType configNameAttributeValue4 = new AttributeValueType();
+ configNameAttributeValue4.setDataType(STRING_DATATYPE);
+ configNameAttributeValue4.getContent().add(Integer.toString(version));
+ assignment4.setExpression(new ObjectFactory()
+ .createAttributeValue(configNameAttributeValue4));
+ advice.getAttributeAssignmentExpression().add(assignment4);
+
+ // Onap Name Assignment
+ AttributeAssignmentExpressionType assignment5 = new AttributeAssignmentExpressionType();
+ assignment5.setAttributeId("matching:" + ONAPID);
+ assignment5.setCategory(CATEGORY_RESOURCE);
+ assignment5.setIssuer("");
+ AttributeValueType configNameAttributeValue5 = new AttributeValueType();
+ configNameAttributeValue5.setDataType(STRING_DATATYPE);
+ configNameAttributeValue5.getContent().add(policyAdapter.getOnapName());
+ assignment5.setExpression(new ObjectFactory()
+ .createAttributeValue(configNameAttributeValue5));
+ advice.getAttributeAssignmentExpression().add(assignment5);
+
+
+ //Config Name Assignment
+ AttributeAssignmentExpressionType assignment6 = new AttributeAssignmentExpressionType();
+ assignment6.setAttributeId("matching:" +CONFIGID);
+ assignment6.setCategory(CATEGORY_RESOURCE);
+ assignment6.setIssuer("");
+ AttributeValueType configNameAttributeValue6 = new AttributeValueType();
+ configNameAttributeValue6.setDataType(STRING_DATATYPE);
+ configNameAttributeValue6.getContent().add(policyAdapter.getConfigName());
+ assignment6.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue6));
+ advice.getAttributeAssignmentExpression().add(assignment6);
// Adding Controller Information.
if(policyAdapter.getBrmsController()!=null){
BRMSDictionaryController brmsDicitonaryController = new BRMSDictionaryController();
@@ -581,69 +581,69 @@ public class CreateBrmsParamPolicy extends Policy {
}
// 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()));
- }
-
- //Risk Attributes
- AttributeAssignmentExpressionType assignment8 = new AttributeAssignmentExpressionType();
- assignment8.setAttributeId("RiskType");
- assignment8.setCategory(CATEGORY_RESOURCE);
- assignment8.setIssuer("");
-
- AttributeValueType configNameAttributeValue8 = new AttributeValueType();
- configNameAttributeValue8.setDataType(STRING_DATATYPE);
- configNameAttributeValue8.getContent().add(policyAdapter.getRiskType());
- assignment8.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue8));
-
- advice.getAttributeAssignmentExpression().add(assignment8);
-
- AttributeAssignmentExpressionType assignment9 = new AttributeAssignmentExpressionType();
- assignment9.setAttributeId("RiskLevel");
- assignment9.setCategory(CATEGORY_RESOURCE);
- assignment9.setIssuer("");
-
- AttributeValueType configNameAttributeValue9 = new AttributeValueType();
- configNameAttributeValue9.setDataType(STRING_DATATYPE);
- configNameAttributeValue9.getContent().add(policyAdapter.getRiskLevel());
- assignment9.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue9));
-
- advice.getAttributeAssignmentExpression().add(assignment9);
-
- AttributeAssignmentExpressionType assignment10 = new AttributeAssignmentExpressionType();
- assignment10.setAttributeId("guard");
- assignment10.setCategory(CATEGORY_RESOURCE);
- assignment10.setIssuer("");
-
- AttributeValueType configNameAttributeValue10 = new AttributeValueType();
- configNameAttributeValue10.setDataType(STRING_DATATYPE);
- configNameAttributeValue10.getContent().add(policyAdapter.getGuard());
- assignment10.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue10));
-
- advice.getAttributeAssignmentExpression().add(assignment10);
-
- AttributeAssignmentExpressionType assignment11 = new AttributeAssignmentExpressionType();
- assignment11.setAttributeId("TTLDate");
- assignment11.setCategory(CATEGORY_RESOURCE);
- assignment11.setIssuer("");
-
- AttributeValueType configNameAttributeValue11 = new AttributeValueType();
- configNameAttributeValue11.setDataType(STRING_DATATYPE);
- configNameAttributeValue11.getContent().add(policyAdapter.getTtlDate());
- assignment11.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue11));
-
- advice.getAttributeAssignmentExpression().add(assignment11);
-
- advices.getAdviceExpression().add(advice);
- return advices;
- }
-
- @Override
- public Object getCorrectPolicyDataObject() {
- return policyAdapter.getData();
- }
-
+ Map<String, String> dynamicFieldConfigAttributes = policyAdapter.getDynamicFieldConfigAttributes();
+ for (Entry<String, String> map : dynamicFieldConfigAttributes.entrySet()) {
+ advice.getAttributeAssignmentExpression().add(createResponseAttributes("key:"+map.getKey(), map.getValue()));
+ }
+
+ //Risk Attributes
+ AttributeAssignmentExpressionType assignment8 = new AttributeAssignmentExpressionType();
+ assignment8.setAttributeId("RiskType");
+ assignment8.setCategory(CATEGORY_RESOURCE);
+ assignment8.setIssuer("");
+
+ AttributeValueType configNameAttributeValue8 = new AttributeValueType();
+ configNameAttributeValue8.setDataType(STRING_DATATYPE);
+ configNameAttributeValue8.getContent().add(policyAdapter.getRiskType());
+ assignment8.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue8));
+
+ advice.getAttributeAssignmentExpression().add(assignment8);
+
+ AttributeAssignmentExpressionType assignment9 = new AttributeAssignmentExpressionType();
+ assignment9.setAttributeId("RiskLevel");
+ assignment9.setCategory(CATEGORY_RESOURCE);
+ assignment9.setIssuer("");
+
+ AttributeValueType configNameAttributeValue9 = new AttributeValueType();
+ configNameAttributeValue9.setDataType(STRING_DATATYPE);
+ configNameAttributeValue9.getContent().add(policyAdapter.getRiskLevel());
+ assignment9.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue9));
+
+ advice.getAttributeAssignmentExpression().add(assignment9);
+
+ AttributeAssignmentExpressionType assignment10 = new AttributeAssignmentExpressionType();
+ assignment10.setAttributeId("guard");
+ assignment10.setCategory(CATEGORY_RESOURCE);
+ assignment10.setIssuer("");
+
+ AttributeValueType configNameAttributeValue10 = new AttributeValueType();
+ configNameAttributeValue10.setDataType(STRING_DATATYPE);
+ configNameAttributeValue10.getContent().add(policyAdapter.getGuard());
+ assignment10.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue10));
+
+ advice.getAttributeAssignmentExpression().add(assignment10);
+
+ AttributeAssignmentExpressionType assignment11 = new AttributeAssignmentExpressionType();
+ assignment11.setAttributeId("TTLDate");
+ assignment11.setCategory(CATEGORY_RESOURCE);
+ assignment11.setIssuer("");
+
+ AttributeValueType configNameAttributeValue11 = new AttributeValueType();
+ configNameAttributeValue11.setDataType(STRING_DATATYPE);
+ configNameAttributeValue11.getContent().add(policyAdapter.getTtlDate());
+ assignment11.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue11));
+
+ advice.getAttributeAssignmentExpression().add(assignment11);
+
+ advices.getAdviceExpression().add(advice);
+ return advices;
+ }
+
+ @Override
+ public Object getCorrectPolicyDataObject() {
+ return policyAdapter.getData();
+ }
+
private AttributeAssignmentExpressionType createResponseAttributes(String key, String value){
AttributeAssignmentExpressionType assignment7 = new AttributeAssignmentExpressionType();
assignment7.setAttributeId(key);
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 0bac0e066..7290f4cd8 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
@@ -59,336 +59,336 @@ import oasis.names.tc.xacml._3_0.core.schema.wd_17.TargetType;
public class CreateBrmsRawPolicy extends Policy {
-
- public CreateBrmsRawPolicy() {
- super();
- }
-
- public CreateBrmsRawPolicy(PolicyRestAdapter policyAdapter) {
- this.policyAdapter = policyAdapter;
- this.policyAdapter.setConfigType(policyAdapter.getConfigType());
-
- }
-
- // 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")){
- out.println(jsonBody);
- } catch (Exception e) {
- PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "CreateBrmsRawPolicy", "Exception saving configurations file");
- }
- }
-
- // 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));
- return new String(encoded, encoding);
-
- }
-
- // Here we are adding the extension for the configurations file based on the
- // config type selection for saving.
- private String getConfigFile(String filename) {
- filename = FilenameUtils.removeExtension(filename);
- if (filename.endsWith(".txt")) {
- filename = filename.substring(0, filename.length() - 3);
- }
-
- filename = filename + ".txt";
- return filename;
- }
-
- // Validations for Config form
- public boolean validateConfigForm() {
-
- // Validating mandatory Fields.
- isValidForm = true;
- return isValidForm;
-
- }
-
- @Override
- public Map<String, String> savePolicies() throws PAPException {
-
- Map<String, String> successMap = new HashMap<>();
- if(isPolicyExists()){
- successMap.put("EXISTS", "This Policy already exist on the PAP");
- return successMap;
- }
-
- if (!isPreparedToSave()) {
- prepareToSave();
- }
- // 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());
- if (successMap == null) {
- successMap = new HashMap<>();
- PolicyLogger.error("Failed to Update the Database Dictionary Tables.");
- successMap.put("error", "DB UPDATE");
- }
-
- 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 {
-
- 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("Config")) {
- PolicyType policyConfig = new PolicyType();
-
- policyConfig.setVersion(Integer.toString(version));
- policyConfig.setPolicyId(policyID);
- policyConfig.setTarget(new TargetType());
- policyAdapter.setData(policyConfig);
- }
-
- policyName = policyAdapter.getNewFileName();
-
- if (policyAdapter.getData() != null) {
- //String jsonBody = policyAdapter.getJsonBody();
- String configBody=policyAdapter.getConfigBodyData();
- saveConfigurations(policyName, configBody);
-
- // Make sure the filename ends with an extension
- if (policyName.endsWith(".xml") == false) {
- policyName = policyName + ".xml";
- }
-
- PolicyType configPolicy = (PolicyType) policyAdapter.getData();
-
- configPolicy.setDescription(policyAdapter.getPolicyDescription());
-
- configPolicy.setRuleCombiningAlgId(policyAdapter.getRuleCombiningAlgId());
-
- 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());
- }
- allOfOne.getMatch().add(createMatch("PolicyName", name));
-
-
- AllOfType allOf = new AllOfType();
-
- // Match for ONAPName
- allOf.getMatch().add(createMatch("ONAPName", policyAdapter.getOnapName()));
- allOf.getMatch().add(createMatch("ConfigName", policyAdapter.getConfigName()));
- // Match for riskType
- allOf.getMatch().add(createDynamicMatch("RiskType", policyAdapter.getRiskType()));
- // Match for riskLevel
- allOf.getMatch().add(createDynamicMatch("RiskLevel", String.valueOf(policyAdapter.getRiskLevel())));
- // Match for riskguard
- allOf.getMatch().add(createDynamicMatch("guard", policyAdapter.getGuard()));
- // Match for ttlDate
- allOf.getMatch().add(createDynamicMatch("TTLDate", policyAdapter.getTtlDate()));
- AnyOfType anyOf = new AnyOfType();
- anyOf.getAllOf().add(allOfOne);
- anyOf.getAllOf().add(allOf);
-
- TargetType target = new TargetType();
- ((TargetType) target).getAnyOf().add(anyOf);
-
- // Adding the target to the policy element
- configPolicy.setTarget((TargetType) target);
-
- RuleType rule = new RuleType();
- rule.setRuleId(policyAdapter.getRuleID());
-
- rule.setEffect(EffectType.PERMIT);
-
- // Create Target in Rule
- AllOfType allOfInRule = new AllOfType();
-
- // Creating match for ACCESS in rule target
- MatchType accessMatch = new MatchType();
- AttributeValueType accessAttributeValue = new AttributeValueType();
- accessAttributeValue.setDataType(STRING_DATATYPE);
- accessAttributeValue.getContent().add("ACCESS");
- accessMatch.setAttributeValue(accessAttributeValue);
- AttributeDesignatorType accessAttributeDesignator = new AttributeDesignatorType();
- URI accessURI = null;
- try {
- accessURI = new URI(ACTION_ID);
- } catch (URISyntaxException e) {
- PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, e, "CreateBrmsRawPolicy", "Exception creating ACCESS URI");
- }
- accessAttributeDesignator.setCategory(CATEGORY_ACTION);
- accessAttributeDesignator.setDataType(STRING_DATATYPE);
- accessAttributeDesignator.setAttributeId(new IdentifierImpl(
- accessURI).stringValue());
- accessMatch.setAttributeDesignator(accessAttributeDesignator);
- accessMatch.setMatchId(FUNCTION_STRING_EQUAL_IGNORE);
-
- // Creating Config Match in rule Target
- MatchType configMatch = new MatchType();
- AttributeValueType configAttributeValue = new AttributeValueType();
- configAttributeValue.setDataType(STRING_DATATYPE);
-
- configAttributeValue.getContent().add("Config");
-
- configMatch.setAttributeValue(configAttributeValue);
- AttributeDesignatorType configAttributeDesignator = new AttributeDesignatorType();
- URI configURI = null;
- try {
- configURI = new URI(RESOURCE_ID);
- } catch (URISyntaxException e) {
- PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, e, "CreateBrmsRawPolicy", "Exception creating Config URI");
- }
-
- configAttributeDesignator.setCategory(CATEGORY_RESOURCE);
- configAttributeDesignator.setDataType(STRING_DATATYPE);
- configAttributeDesignator.setAttributeId(new IdentifierImpl(
- configURI).stringValue());
- configMatch.setAttributeDesignator(configAttributeDesignator);
- configMatch.setMatchId(FUNCTION_STRING_EQUAL_IGNORE);
-
- allOfInRule.getMatch().add(accessMatch);
- allOfInRule.getMatch().add(configMatch);
-
- AnyOfType anyOfInRule = new AnyOfType();
- anyOfInRule.getAllOf().add(allOfInRule);
-
- TargetType targetInRule = new TargetType();
- targetInRule.getAnyOf().add(anyOfInRule);
-
- rule.setTarget(targetInRule);
- rule.setAdviceExpressions(getAdviceExpressions(version, policyName));
-
- configPolicy
- .getCombinerParametersOrRuleCombinerParametersOrVariableDefinition()
- .add(rule);
- policyAdapter.setPolicyData(configPolicy);
-
- } else {
- PolicyLogger.error("Unsupported data object."
- + policyAdapter.getData().getClass().getCanonicalName());
- }
- setPreparedToSave(true);
- return true;
- }
-
- // Data required for Advice part is setting here.
- private AdviceExpressionsType getAdviceExpressions(int version,
- String fileName) {
-
- // Policy Config ID Assignment
- AdviceExpressionsType advices = new AdviceExpressionsType();
- AdviceExpressionType advice = new AdviceExpressionType();
- advice.setAdviceId("BRMSRAWID");
- advice.setAppliesTo(EffectType.PERMIT);
- // For Configuration
- AttributeAssignmentExpressionType assignment1 = new AttributeAssignmentExpressionType();
- assignment1.setAttributeId("type");
- assignment1.setCategory(CATEGORY_RESOURCE);
- assignment1.setIssuer("");
- AttributeValueType configNameAttributeValue = new AttributeValueType();
- configNameAttributeValue.setDataType(STRING_DATATYPE);
- configNameAttributeValue.getContent().add("Configuration");
- assignment1.setExpression(new ObjectFactory()
- .createAttributeValue(configNameAttributeValue));
- advice.getAttributeAssignmentExpression().add(assignment1);
-
- // For Config file Url if configurations are provided.
- // URL ID Assignment
- AttributeAssignmentExpressionType assignment2 = new AttributeAssignmentExpressionType();
- assignment2.setAttributeId("URLID");
- assignment2.setCategory(CATEGORY_RESOURCE);
- assignment2.setIssuer("");
- AttributeValueType AttributeValue = new AttributeValueType();
- AttributeValue.setDataType(URI_DATATYPE);
-
- String content = CONFIG_URL + "/Config/" + getConfigFile(policyName);
-
- AttributeValue.getContent().add(content);
- assignment2.setExpression(new ObjectFactory()
- .createAttributeValue(AttributeValue));
- advice.getAttributeAssignmentExpression().add(assignment2);
-
- // Policy Name Assignment
- AttributeAssignmentExpressionType assignment3 = new AttributeAssignmentExpressionType();
- assignment3.setAttributeId("PolicyName");
- assignment3.setCategory(CATEGORY_RESOURCE);
- assignment3.setIssuer("");
- 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());
- }
- System.out.println(name);
- attributeValue3.getContent().add(name);
- assignment3.setExpression(new ObjectFactory()
- .createAttributeValue(attributeValue3));
- advice.getAttributeAssignmentExpression().add(assignment3);
-
- // Version Number Assignment
- AttributeAssignmentExpressionType assignment4 = new AttributeAssignmentExpressionType();
- assignment4.setAttributeId("VersionNumber");
- assignment4.setCategory(CATEGORY_RESOURCE);
- assignment4.setIssuer("");
- AttributeValueType configNameAttributeValue4 = new AttributeValueType();
- configNameAttributeValue4.setDataType(STRING_DATATYPE);
- configNameAttributeValue4.getContent().add(Integer.toString(version));
- assignment4.setExpression(new ObjectFactory()
- .createAttributeValue(configNameAttributeValue4));
- advice.getAttributeAssignmentExpression().add(assignment4);
-
- // Onap Name Assignment
- AttributeAssignmentExpressionType assignment5 = new AttributeAssignmentExpressionType();
- assignment5.setAttributeId("matching:" + ONAPID);
- assignment5.setCategory(CATEGORY_RESOURCE);
- assignment5.setIssuer("");
- AttributeValueType configNameAttributeValue5 = new AttributeValueType();
- configNameAttributeValue5.setDataType(STRING_DATATYPE);
- configNameAttributeValue5.getContent().add(policyAdapter.getOnapName());
- assignment5.setExpression(new ObjectFactory()
- .createAttributeValue(configNameAttributeValue5));
- advice.getAttributeAssignmentExpression().add(assignment5);
-
-
- //Config Name Assignment
- AttributeAssignmentExpressionType assignment6 = new AttributeAssignmentExpressionType();
- assignment6.setAttributeId("matching:" + CONFIGID);
- assignment6.setCategory(CATEGORY_RESOURCE);
- assignment6.setIssuer("");
- AttributeValueType configNameAttributeValue6 = new AttributeValueType();
- configNameAttributeValue6.setDataType(STRING_DATATYPE);
- configNameAttributeValue6.getContent().add(policyAdapter.getConfigName());
- assignment6.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue6));
- advice.getAttributeAssignmentExpression().add(assignment6);
-
+
+ public CreateBrmsRawPolicy() {
+ super();
+ }
+
+ public CreateBrmsRawPolicy(PolicyRestAdapter policyAdapter) {
+ this.policyAdapter = policyAdapter;
+ this.policyAdapter.setConfigType(policyAdapter.getConfigType());
+
+ }
+
+ // 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")){
+ out.println(jsonBody);
+ } catch (Exception e) {
+ PolicyLogger.error(MessageCodes.ERROR_PROCESS_FLOW, e, "CreateBrmsRawPolicy", "Exception saving configurations file");
+ }
+ }
+
+ // 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));
+ return new String(encoded, encoding);
+
+ }
+
+ // Here we are adding the extension for the configurations file based on the
+ // config type selection for saving.
+ private String getConfigFile(String filename) {
+ filename = FilenameUtils.removeExtension(filename);
+ if (filename.endsWith(".txt")) {
+ filename = filename.substring(0, filename.length() - 3);
+ }
+
+ filename = filename + ".txt";
+ return filename;
+ }
+
+ // Validations for Config form
+ public boolean validateConfigForm() {
+
+ // Validating mandatory Fields.
+ isValidForm = true;
+ return isValidForm;
+
+ }
+
+ @Override
+ public Map<String, String> savePolicies() throws PAPException {
+
+ Map<String, String> successMap = new HashMap<>();
+ if(isPolicyExists()){
+ successMap.put("EXISTS", "This Policy already exist on the PAP");
+ return successMap;
+ }
+
+ if (!isPreparedToSave()) {
+ prepareToSave();
+ }
+ // 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());
+ if (successMap == null) {
+ successMap = new HashMap<>();
+ PolicyLogger.error("Failed to Update the Database Dictionary Tables.");
+ successMap.put("error", "DB UPDATE");
+ }
+
+ 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 {
+
+ 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("Config")) {
+ PolicyType policyConfig = new PolicyType();
+
+ policyConfig.setVersion(Integer.toString(version));
+ policyConfig.setPolicyId(policyID);
+ policyConfig.setTarget(new TargetType());
+ policyAdapter.setData(policyConfig);
+ }
+
+ policyName = policyAdapter.getNewFileName();
+
+ if (policyAdapter.getData() != null) {
+ //String jsonBody = policyAdapter.getJsonBody();
+ String configBody=policyAdapter.getConfigBodyData();
+ saveConfigurations(policyName, configBody);
+
+ // Make sure the filename ends with an extension
+ if (policyName.endsWith(".xml") == false) {
+ policyName = policyName + ".xml";
+ }
+
+ PolicyType configPolicy = (PolicyType) policyAdapter.getData();
+
+ configPolicy.setDescription(policyAdapter.getPolicyDescription());
+
+ configPolicy.setRuleCombiningAlgId(policyAdapter.getRuleCombiningAlgId());
+
+ 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());
+ }
+ allOfOne.getMatch().add(createMatch("PolicyName", name));
+
+
+ AllOfType allOf = new AllOfType();
+
+ // Match for ONAPName
+ allOf.getMatch().add(createMatch("ONAPName", policyAdapter.getOnapName()));
+ allOf.getMatch().add(createMatch("ConfigName", policyAdapter.getConfigName()));
+ // Match for riskType
+ allOf.getMatch().add(createDynamicMatch("RiskType", policyAdapter.getRiskType()));
+ // Match for riskLevel
+ allOf.getMatch().add(createDynamicMatch("RiskLevel", String.valueOf(policyAdapter.getRiskLevel())));
+ // Match for riskguard
+ allOf.getMatch().add(createDynamicMatch("guard", policyAdapter.getGuard()));
+ // Match for ttlDate
+ allOf.getMatch().add(createDynamicMatch("TTLDate", policyAdapter.getTtlDate()));
+ AnyOfType anyOf = new AnyOfType();
+ anyOf.getAllOf().add(allOfOne);
+ anyOf.getAllOf().add(allOf);
+
+ TargetType target = new TargetType();
+ ((TargetType) target).getAnyOf().add(anyOf);
+
+ // Adding the target to the policy element
+ configPolicy.setTarget((TargetType) target);
+
+ RuleType rule = new RuleType();
+ rule.setRuleId(policyAdapter.getRuleID());
+
+ rule.setEffect(EffectType.PERMIT);
+
+ // Create Target in Rule
+ AllOfType allOfInRule = new AllOfType();
+
+ // Creating match for ACCESS in rule target
+ MatchType accessMatch = new MatchType();
+ AttributeValueType accessAttributeValue = new AttributeValueType();
+ accessAttributeValue.setDataType(STRING_DATATYPE);
+ accessAttributeValue.getContent().add("ACCESS");
+ accessMatch.setAttributeValue(accessAttributeValue);
+ AttributeDesignatorType accessAttributeDesignator = new AttributeDesignatorType();
+ URI accessURI = null;
+ try {
+ accessURI = new URI(ACTION_ID);
+ } catch (URISyntaxException e) {
+ PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, e, "CreateBrmsRawPolicy", "Exception creating ACCESS URI");
+ }
+ accessAttributeDesignator.setCategory(CATEGORY_ACTION);
+ accessAttributeDesignator.setDataType(STRING_DATATYPE);
+ accessAttributeDesignator.setAttributeId(new IdentifierImpl(
+ accessURI).stringValue());
+ accessMatch.setAttributeDesignator(accessAttributeDesignator);
+ accessMatch.setMatchId(FUNCTION_STRING_EQUAL_IGNORE);
+
+ // Creating Config Match in rule Target
+ MatchType configMatch = new MatchType();
+ AttributeValueType configAttributeValue = new AttributeValueType();
+ configAttributeValue.setDataType(STRING_DATATYPE);
+
+ configAttributeValue.getContent().add("Config");
+
+ configMatch.setAttributeValue(configAttributeValue);
+ AttributeDesignatorType configAttributeDesignator = new AttributeDesignatorType();
+ URI configURI = null;
+ try {
+ configURI = new URI(RESOURCE_ID);
+ } catch (URISyntaxException e) {
+ PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, e, "CreateBrmsRawPolicy", "Exception creating Config URI");
+ }
+
+ configAttributeDesignator.setCategory(CATEGORY_RESOURCE);
+ configAttributeDesignator.setDataType(STRING_DATATYPE);
+ configAttributeDesignator.setAttributeId(new IdentifierImpl(
+ configURI).stringValue());
+ configMatch.setAttributeDesignator(configAttributeDesignator);
+ configMatch.setMatchId(FUNCTION_STRING_EQUAL_IGNORE);
+
+ allOfInRule.getMatch().add(accessMatch);
+ allOfInRule.getMatch().add(configMatch);
+
+ AnyOfType anyOfInRule = new AnyOfType();
+ anyOfInRule.getAllOf().add(allOfInRule);
+
+ TargetType targetInRule = new TargetType();
+ targetInRule.getAnyOf().add(anyOfInRule);
+
+ rule.setTarget(targetInRule);
+ rule.setAdviceExpressions(getAdviceExpressions(version, policyName));
+
+ configPolicy
+ .getCombinerParametersOrRuleCombinerParametersOrVariableDefinition()
+ .add(rule);
+ policyAdapter.setPolicyData(configPolicy);
+
+ } else {
+ PolicyLogger.error("Unsupported data object."
+ + policyAdapter.getData().getClass().getCanonicalName());
+ }
+ setPreparedToSave(true);
+ return true;
+ }
+
+ // Data required for Advice part is setting here.
+ private AdviceExpressionsType getAdviceExpressions(int version,
+ String fileName) {
+
+ // Policy Config ID Assignment
+ AdviceExpressionsType advices = new AdviceExpressionsType();
+ AdviceExpressionType advice = new AdviceExpressionType();
+ advice.setAdviceId("BRMSRAWID");
+ advice.setAppliesTo(EffectType.PERMIT);
+ // For Configuration
+ AttributeAssignmentExpressionType assignment1 = new AttributeAssignmentExpressionType();
+ assignment1.setAttributeId("type");
+ assignment1.setCategory(CATEGORY_RESOURCE);
+ assignment1.setIssuer("");
+ AttributeValueType configNameAttributeValue = new AttributeValueType();
+ configNameAttributeValue.setDataType(STRING_DATATYPE);
+ configNameAttributeValue.getContent().add("Configuration");
+ assignment1.setExpression(new ObjectFactory()
+ .createAttributeValue(configNameAttributeValue));
+ advice.getAttributeAssignmentExpression().add(assignment1);
+
+ // For Config file Url if configurations are provided.
+ // URL ID Assignment
+ AttributeAssignmentExpressionType assignment2 = new AttributeAssignmentExpressionType();
+ assignment2.setAttributeId("URLID");
+ assignment2.setCategory(CATEGORY_RESOURCE);
+ assignment2.setIssuer("");
+ AttributeValueType AttributeValue = new AttributeValueType();
+ AttributeValue.setDataType(URI_DATATYPE);
+
+ String content = CONFIG_URL + "/Config/" + getConfigFile(policyName);
+
+ AttributeValue.getContent().add(content);
+ assignment2.setExpression(new ObjectFactory()
+ .createAttributeValue(AttributeValue));
+ advice.getAttributeAssignmentExpression().add(assignment2);
+
+ // Policy Name Assignment
+ AttributeAssignmentExpressionType assignment3 = new AttributeAssignmentExpressionType();
+ assignment3.setAttributeId("PolicyName");
+ assignment3.setCategory(CATEGORY_RESOURCE);
+ assignment3.setIssuer("");
+ 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());
+ }
+ System.out.println(name);
+ attributeValue3.getContent().add(name);
+ assignment3.setExpression(new ObjectFactory()
+ .createAttributeValue(attributeValue3));
+ advice.getAttributeAssignmentExpression().add(assignment3);
+
+ // Version Number Assignment
+ AttributeAssignmentExpressionType assignment4 = new AttributeAssignmentExpressionType();
+ assignment4.setAttributeId("VersionNumber");
+ assignment4.setCategory(CATEGORY_RESOURCE);
+ assignment4.setIssuer("");
+ AttributeValueType configNameAttributeValue4 = new AttributeValueType();
+ configNameAttributeValue4.setDataType(STRING_DATATYPE);
+ configNameAttributeValue4.getContent().add(Integer.toString(version));
+ assignment4.setExpression(new ObjectFactory()
+ .createAttributeValue(configNameAttributeValue4));
+ advice.getAttributeAssignmentExpression().add(assignment4);
+
+ // Onap Name Assignment
+ AttributeAssignmentExpressionType assignment5 = new AttributeAssignmentExpressionType();
+ assignment5.setAttributeId("matching:" + ONAPID);
+ assignment5.setCategory(CATEGORY_RESOURCE);
+ assignment5.setIssuer("");
+ AttributeValueType configNameAttributeValue5 = new AttributeValueType();
+ configNameAttributeValue5.setDataType(STRING_DATATYPE);
+ configNameAttributeValue5.getContent().add(policyAdapter.getOnapName());
+ assignment5.setExpression(new ObjectFactory()
+ .createAttributeValue(configNameAttributeValue5));
+ advice.getAttributeAssignmentExpression().add(assignment5);
+
+
+ //Config Name Assignment
+ AttributeAssignmentExpressionType assignment6 = new AttributeAssignmentExpressionType();
+ assignment6.setAttributeId("matching:" + CONFIGID);
+ assignment6.setCategory(CATEGORY_RESOURCE);
+ assignment6.setIssuer("");
+ AttributeValueType configNameAttributeValue6 = new AttributeValueType();
+ configNameAttributeValue6.setDataType(STRING_DATATYPE);
+ configNameAttributeValue6.getContent().add(policyAdapter.getConfigName());
+ assignment6.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue6));
+ advice.getAttributeAssignmentExpression().add(assignment6);
+
// Adding Controller Information.
if(policyAdapter.getBrmsController()!=null){
BRMSDictionaryController brmsDicitonaryController = new BRMSDictionaryController();
@@ -411,69 +411,69 @@ public class CreateBrmsRawPolicy extends Policy {
}
// Dynamic Field Config Attributes.
- Map<String, String> dynamicFieldConfigAttributes = policyAdapter.getDynamicFieldConfigAttributes();
- for (String keyField : dynamicFieldConfigAttributes.keySet()) {
- advice.getAttributeAssignmentExpression().add(createResponseAttributes("key:"+keyField, dynamicFieldConfigAttributes.get(keyField)));
- }
-
- //Risk Attributes
- AttributeAssignmentExpressionType assignment8 = new AttributeAssignmentExpressionType();
- assignment8.setAttributeId("RiskType");
- assignment8.setCategory(CATEGORY_RESOURCE);
- assignment8.setIssuer("");
-
- AttributeValueType configNameAttributeValue8 = new AttributeValueType();
- configNameAttributeValue8.setDataType(STRING_DATATYPE);
- configNameAttributeValue8.getContent().add(policyAdapter.getRiskType());
- assignment8.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue8));
-
- advice.getAttributeAssignmentExpression().add(assignment8);
-
- AttributeAssignmentExpressionType assignment9 = new AttributeAssignmentExpressionType();
- assignment9.setAttributeId("RiskLevel");
- assignment9.setCategory(CATEGORY_RESOURCE);
- assignment9.setIssuer("");
-
- AttributeValueType configNameAttributeValue9 = new AttributeValueType();
- configNameAttributeValue9.setDataType(STRING_DATATYPE);
- configNameAttributeValue9.getContent().add(policyAdapter.getRiskLevel());
- assignment9.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue9));
-
- advice.getAttributeAssignmentExpression().add(assignment9);
-
- AttributeAssignmentExpressionType assignment10 = new AttributeAssignmentExpressionType();
- assignment10.setAttributeId("guard");
- assignment10.setCategory(CATEGORY_RESOURCE);
- assignment10.setIssuer("");
-
- AttributeValueType configNameAttributeValue10 = new AttributeValueType();
- configNameAttributeValue10.setDataType(STRING_DATATYPE);
- configNameAttributeValue10.getContent().add(policyAdapter.getGuard());
- assignment10.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue10));
-
- advice.getAttributeAssignmentExpression().add(assignment10);
-
- AttributeAssignmentExpressionType assignment11 = new AttributeAssignmentExpressionType();
- assignment11.setAttributeId("TTLDate");
- assignment11.setCategory(CATEGORY_RESOURCE);
- assignment11.setIssuer("");
-
- AttributeValueType configNameAttributeValue11 = new AttributeValueType();
- configNameAttributeValue11.setDataType(STRING_DATATYPE);
- configNameAttributeValue11.getContent().add(policyAdapter.getTtlDate());
- assignment11.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue11));
-
- advice.getAttributeAssignmentExpression().add(assignment11);
-
- advices.getAdviceExpression().add(advice);
- return advices;
- }
-
- @Override
- public Object getCorrectPolicyDataObject() {
- return policyAdapter.getData();
- }
-
+ Map<String, String> dynamicFieldConfigAttributes = policyAdapter.getDynamicFieldConfigAttributes();
+ for (String keyField : dynamicFieldConfigAttributes.keySet()) {
+ advice.getAttributeAssignmentExpression().add(createResponseAttributes("key:"+keyField, dynamicFieldConfigAttributes.get(keyField)));
+ }
+
+ //Risk Attributes
+ AttributeAssignmentExpressionType assignment8 = new AttributeAssignmentExpressionType();
+ assignment8.setAttributeId("RiskType");
+ assignment8.setCategory(CATEGORY_RESOURCE);
+ assignment8.setIssuer("");
+
+ AttributeValueType configNameAttributeValue8 = new AttributeValueType();
+ configNameAttributeValue8.setDataType(STRING_DATATYPE);
+ configNameAttributeValue8.getContent().add(policyAdapter.getRiskType());
+ assignment8.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue8));
+
+ advice.getAttributeAssignmentExpression().add(assignment8);
+
+ AttributeAssignmentExpressionType assignment9 = new AttributeAssignmentExpressionType();
+ assignment9.setAttributeId("RiskLevel");
+ assignment9.setCategory(CATEGORY_RESOURCE);
+ assignment9.setIssuer("");
+
+ AttributeValueType configNameAttributeValue9 = new AttributeValueType();
+ configNameAttributeValue9.setDataType(STRING_DATATYPE);
+ configNameAttributeValue9.getContent().add(policyAdapter.getRiskLevel());
+ assignment9.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue9));
+
+ advice.getAttributeAssignmentExpression().add(assignment9);
+
+ AttributeAssignmentExpressionType assignment10 = new AttributeAssignmentExpressionType();
+ assignment10.setAttributeId("guard");
+ assignment10.setCategory(CATEGORY_RESOURCE);
+ assignment10.setIssuer("");
+
+ AttributeValueType configNameAttributeValue10 = new AttributeValueType();
+ configNameAttributeValue10.setDataType(STRING_DATATYPE);
+ configNameAttributeValue10.getContent().add(policyAdapter.getGuard());
+ assignment10.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue10));
+
+ advice.getAttributeAssignmentExpression().add(assignment10);
+
+ AttributeAssignmentExpressionType assignment11 = new AttributeAssignmentExpressionType();
+ assignment11.setAttributeId("TTLDate");
+ assignment11.setCategory(CATEGORY_RESOURCE);
+ assignment11.setIssuer("");
+
+ AttributeValueType configNameAttributeValue11 = new AttributeValueType();
+ configNameAttributeValue11.setDataType(STRING_DATATYPE);
+ configNameAttributeValue11.getContent().add(policyAdapter.getTtlDate());
+ assignment11.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue11));
+
+ advice.getAttributeAssignmentExpression().add(assignment11);
+
+ advices.getAdviceExpression().add(advice);
+ return advices;
+ }
+
+ @Override
+ public Object getCorrectPolicyDataObject() {
+ return policyAdapter.getData();
+ }
+
private AttributeAssignmentExpressionType createResponseAttributes(String key, String value){
AttributeAssignmentExpressionType assignment7 = new AttributeAssignmentExpressionType();
assignment7.setAttributeId(key);
diff --git a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/CreateClosedLoopPerformanceMetrics.java b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/CreateClosedLoopPerformanceMetrics.java
index 456924ac9..e74cc3359 100644
--- a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/CreateClosedLoopPerformanceMetrics.java
+++ b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/CreateClosedLoopPerformanceMetrics.java
@@ -55,351 +55,351 @@ import oasis.names.tc.xacml._3_0.core.schema.wd_17.RuleType;
import oasis.names.tc.xacml._3_0.core.schema.wd_17.TargetType;
public class CreateClosedLoopPerformanceMetrics extends Policy {
-
- private static final Logger LOGGER = FlexLogger.getLogger(CreateClosedLoopPerformanceMetrics.class);
-
- public CreateClosedLoopPerformanceMetrics() {
- super();
- }
-
- public CreateClosedLoopPerformanceMetrics(PolicyRestAdapter policyAdapter){
- this.policyAdapter = policyAdapter;
- }
-
- //save configuration of the policy based on the policyname
- private void saveConfigurations(String policyName, final String jsonBody) {
-
- if(policyName.endsWith(".xml")){
- policyName = policyName.substring(0, policyName.lastIndexOf(".xml"));
- }
- try (PrintWriter out = new PrintWriter(CONFIG_HOME + File.separator + "."+ policyName +".json")){
- out.println(jsonBody);
- policyAdapter.setJsonBody(jsonBody);
- policyAdapter.setConfigBodyData(jsonBody);
- } catch (Exception e) {
- LOGGER.error("Exception Occured"+e);
- }
- }
-
- //getting the policy name and setting to configuration on adding .json
- private String getConfigFile(String filename) {
- filename = FilenameUtils.removeExtension(filename);
- if (filename.endsWith(".xml")) {
- filename = filename.substring(0, filename.length() - 4);
- }
- filename = filename +".json";
- return filename;
- }
-
- @Override
- public Map<String, String> savePolicies() throws PAPException {
-
- Map<String, String> successMap = new HashMap<>();
- if(isPolicyExists()){
- successMap.put("EXISTS", "This Policy already exist on the PAP");
- return successMap;
- }
-
- if(!isPreparedToSave()){
- //Prep and configure the policy for saving
- prepareToSave();
- }
-
- // 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;
- }
-
- //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{
-
- 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("Config")) {
- PolicyType policyConfig = new PolicyType();
-
- policyConfig.setVersion(Integer.toString(version));
- policyConfig.setPolicyId(policyID);
- policyConfig.setTarget(new TargetType());
- policyAdapter.setData(policyConfig);
- }
- policyName = policyAdapter.getNewFileName();
- if (policyAdapter.getData() != null) {
- // Save the Configurations file with the policy name with extention based on selection.
- String jsonBody = policyAdapter.getJsonBody();
- saveConfigurations(policyName, jsonBody);
-
- // Make sure the filename ends with an extension
- if (policyName.endsWith(".xml") == false) {
- policyName = policyName + ".xml";
- }
-
-
- PolicyType configPolicy = (PolicyType) policyAdapter.getData();
-
- configPolicy.setDescription(policyAdapter.getPolicyDescription());
-
- configPolicy.setRuleCombiningAlgId(policyAdapter.getRuleCombiningAlgId());
-
- 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());
- }
- allOfOne.getMatch().add(createMatch("PolicyName", name));
- AllOfType allOf = new AllOfType();
-
- // Adding the matches to AllOfType element Match for Onap
- allOf.getMatch().add(createMatch("ONAPName", policyAdapter.getOnapName()));
- // Match for riskType
- allOf.getMatch().add(
- createDynamicMatch("RiskType", policyAdapter.getRiskType()));
- // Match for riskLevel
- allOf.getMatch().add(
- createDynamicMatch("RiskLevel", String.valueOf(policyAdapter.getRiskLevel())));
- // Match for riskguard
- allOf.getMatch().add(
- createDynamicMatch("guard", policyAdapter.getGuard()));
- // Match for ttlDate
- allOf.getMatch().add(
- createDynamicMatch("TTLDate", policyAdapter.getTtlDate()));
- // Match for ServiceType
- allOf.getMatch().add(createMatch("ServiceType", policyAdapter.getServiceType()));
-
- AnyOfType anyOf = new AnyOfType();
- anyOf.getAllOf().add(allOfOne);
- anyOf.getAllOf().add(allOf);
-
- TargetType target = new TargetType();
- ((TargetType) target).getAnyOf().add(anyOf);
-
- // Adding the target to the policy element
- configPolicy.setTarget((TargetType) target);
-
- RuleType rule = new RuleType();
- rule.setRuleId(policyAdapter.getRuleID());
-
- rule.setEffect(EffectType.PERMIT);
-
- // Create Target in Rule
- AllOfType allOfInRule = new AllOfType();
-
- // Creating match for ACCESS in rule target
- MatchType accessMatch = new MatchType();
- AttributeValueType accessAttributeValue = new AttributeValueType();
- accessAttributeValue.setDataType(STRING_DATATYPE);
- accessAttributeValue.getContent().add("ACCESS");
- accessMatch.setAttributeValue(accessAttributeValue);
- AttributeDesignatorType accessAttributeDesignator = new AttributeDesignatorType();
- URI accessURI = null;
- try {
- accessURI = new URI(ACTION_ID);
- } catch (URISyntaxException e) {
- PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, e, "CreateClosedLoopPerformanceMetrics", "Exception creating ACCESS URI");
- }
- accessAttributeDesignator.setCategory(CATEGORY_ACTION);
- accessAttributeDesignator.setDataType(STRING_DATATYPE);
- accessAttributeDesignator.setAttributeId(new IdentifierImpl(accessURI).stringValue());
- accessMatch.setAttributeDesignator(accessAttributeDesignator);
- accessMatch.setMatchId(FUNCTION_STRING_EQUAL_IGNORE);
-
- // Creating Config Match in rule Target
- MatchType configMatch = new MatchType();
- AttributeValueType configAttributeValue = new AttributeValueType();
- configAttributeValue.setDataType(STRING_DATATYPE);
- configAttributeValue.getContent().add("Config");
- configMatch.setAttributeValue(configAttributeValue);
- AttributeDesignatorType configAttributeDesignator = new AttributeDesignatorType();
- URI configURI = null;
- try {
- configURI = new URI(RESOURCE_ID);
- } catch (URISyntaxException e) {
- PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, e, "CreateClosedLoopPerformanceMetrics", "Exception creating Config URI");
- }
- configAttributeDesignator.setCategory(CATEGORY_RESOURCE);
- configAttributeDesignator.setDataType(STRING_DATATYPE);
- configAttributeDesignator.setAttributeId(new IdentifierImpl(configURI).stringValue());
- configMatch.setAttributeDesignator(configAttributeDesignator);
- configMatch.setMatchId(FUNCTION_STRING_EQUAL_IGNORE);
-
- allOfInRule.getMatch().add(accessMatch);
- allOfInRule.getMatch().add(configMatch);
-
- AnyOfType anyOfInRule = new AnyOfType();
- anyOfInRule.getAllOf().add(allOfInRule);
-
- TargetType targetInRule = new TargetType();
- targetInRule.getAnyOf().add(anyOfInRule);
-
- rule.setTarget(targetInRule);
- rule.setAdviceExpressions(getAdviceExpressions(version, policyName));
-
- configPolicy.getCombinerParametersOrRuleCombinerParametersOrVariableDefinition().add(rule);
- policyAdapter.setPolicyData(configPolicy);
-
- } else {
- PolicyLogger.error("Unsupported data object." + policyAdapter.getData().getClass().getCanonicalName());
- }
- setPreparedToSave(true);
- return true;
- }
-
- // Data required for Advice part is setting here.
- @SuppressWarnings("static-access")
- private AdviceExpressionsType getAdviceExpressions(int version, String fileName) {
- AdviceExpressionsType advices = new AdviceExpressionsType();
- AdviceExpressionType advice = new AdviceExpressionType();
- advice.setAdviceId("PMID");
- advice.setAppliesTo(EffectType.PERMIT);
- // For Configuration
- AttributeAssignmentExpressionType assignment1 = new AttributeAssignmentExpressionType();
- assignment1.setAttributeId("type");
- assignment1.setCategory(CATEGORY_RESOURCE);
- assignment1.setIssuer("");
-
- AttributeValueType configNameAttributeValue = new AttributeValueType();
- configNameAttributeValue.setDataType(STRING_DATATYPE);
- configNameAttributeValue.getContent().add("Configuration");
- assignment1.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue));
-
- advice.getAttributeAssignmentExpression().add(assignment1);
- // For Config file Url if configurations are provided.
- AttributeAssignmentExpressionType assignment2 = new AttributeAssignmentExpressionType();
- assignment2.setAttributeId("URLID");
- assignment2.setCategory(CATEGORY_RESOURCE);
- assignment2.setIssuer("");
-
- AttributeValueType AttributeValue = new AttributeValueType();
- AttributeValue.setDataType(URI_DATATYPE);
- String content = CONFIG_URL +"/Config/"+ getConfigFile(policyName);
- AttributeValue.getContent().add(content);
- assignment2.setExpression(new ObjectFactory().createAttributeValue(AttributeValue));
-
- advice.getAttributeAssignmentExpression().add(assignment2);
- AttributeAssignmentExpressionType assignment3 = new AttributeAssignmentExpressionType();
- assignment3.setAttributeId("PolicyName");
- assignment3.setCategory(CATEGORY_RESOURCE);
- assignment3.setIssuer("");
-
- AttributeValueType attributeValue3 = new AttributeValueType();
- attributeValue3.setDataType(STRING_DATATYPE);
- fileName = FilenameUtils.removeExtension(fileName);
- fileName = fileName + ".xml";
- String name = fileName.substring(fileName.lastIndexOf("\\") + 1, fileName.length());
- if ((name == null) || (name.equals(""))) {
- name = fileName.substring(fileName.lastIndexOf("/") + 1, fileName.length());
- }
- attributeValue3.getContent().add(name);
- assignment3.setExpression(new ObjectFactory().createAttributeValue(attributeValue3));
- advice.getAttributeAssignmentExpression().add(assignment3);
-
- AttributeAssignmentExpressionType assignment4 = new AttributeAssignmentExpressionType();
- assignment4.setAttributeId("VersionNumber");
- assignment4.setCategory(CATEGORY_RESOURCE);
- assignment4.setIssuer("");
-
- AttributeValueType configNameAttributeValue4 = new AttributeValueType();
- configNameAttributeValue4.setDataType(STRING_DATATYPE);
- configNameAttributeValue4.getContent().add(Integer.toString(version));
- assignment4.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue4));
-
- advice.getAttributeAssignmentExpression().add(assignment4);
-
- AttributeAssignmentExpressionType assignment5 = new AttributeAssignmentExpressionType();
- assignment5.setAttributeId("matching:" + this.ONAPID);
- assignment5.setCategory(CATEGORY_RESOURCE);
- assignment5.setIssuer("");
-
- AttributeValueType configNameAttributeValue5 = new AttributeValueType();
- configNameAttributeValue5.setDataType(STRING_DATATYPE);
- configNameAttributeValue5.getContent().add(policyAdapter.getOnapName());
- assignment5.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue5));
-
- advice.getAttributeAssignmentExpression().add(assignment5);
-
- AttributeAssignmentExpressionType assignment6 = new AttributeAssignmentExpressionType();
- assignment6.setAttributeId("matching:" + this.CLOSEDLOOPID);
- assignment6.setCategory(CATEGORY_RESOURCE);
- assignment6.setIssuer("");
-
- AttributeValueType configNameAttributeValue6 = new AttributeValueType();
- configNameAttributeValue6.setDataType(STRING_DATATYPE);
- configNameAttributeValue6.getContent().add(policyAdapter.getServiceType());
- assignment6.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue6));
-
- advice.getAttributeAssignmentExpression().add(assignment6);
-
- //Risk Attributes
- AttributeAssignmentExpressionType assignment7 = new AttributeAssignmentExpressionType();
- assignment7.setAttributeId("RiskType");
- assignment7.setCategory(CATEGORY_RESOURCE);
- assignment7.setIssuer("");
-
- AttributeValueType configNameAttributeValue7 = new AttributeValueType();
- configNameAttributeValue7.setDataType(STRING_DATATYPE);
- configNameAttributeValue7.getContent().add(policyAdapter.getRiskType());
- assignment7.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue7));
-
- advice.getAttributeAssignmentExpression().add(assignment7);
-
- AttributeAssignmentExpressionType assignment8 = new AttributeAssignmentExpressionType();
- assignment8.setAttributeId("RiskLevel");
- assignment8.setCategory(CATEGORY_RESOURCE);
- assignment8.setIssuer("");
-
- AttributeValueType configNameAttributeValue8 = new AttributeValueType();
- configNameAttributeValue8.setDataType(STRING_DATATYPE);
- configNameAttributeValue8.getContent().add(policyAdapter.getRiskLevel());
- assignment8.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue8));
-
- advice.getAttributeAssignmentExpression().add(assignment8);
-
- AttributeAssignmentExpressionType assignment9 = new AttributeAssignmentExpressionType();
- assignment9.setAttributeId("guard");
- assignment9.setCategory(CATEGORY_RESOURCE);
- assignment9.setIssuer("");
-
- AttributeValueType configNameAttributeValue9 = new AttributeValueType();
- configNameAttributeValue9.setDataType(STRING_DATATYPE);
- configNameAttributeValue9.getContent().add(policyAdapter.getGuard());
- assignment9.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue9));
-
- advice.getAttributeAssignmentExpression().add(assignment9);
-
- AttributeAssignmentExpressionType assignment10 = new AttributeAssignmentExpressionType();
- assignment10.setAttributeId("TTLDate");
- assignment10.setCategory(CATEGORY_RESOURCE);
- assignment10.setIssuer("");
-
- AttributeValueType configNameAttributeValue10 = new AttributeValueType();
- configNameAttributeValue10.setDataType(STRING_DATATYPE);
- configNameAttributeValue10.getContent().add(policyAdapter.getTtlDate());
- assignment10.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue10));
-
- advice.getAttributeAssignmentExpression().add(assignment10);
-
- advices.getAdviceExpression().add(advice);
- return advices;
- }
-
- @Override
- public Object getCorrectPolicyDataObject() {
- return policyAdapter.getPolicyData();
- }
+
+ private static final Logger LOGGER = FlexLogger.getLogger(CreateClosedLoopPerformanceMetrics.class);
+
+ public CreateClosedLoopPerformanceMetrics() {
+ super();
+ }
+
+ public CreateClosedLoopPerformanceMetrics(PolicyRestAdapter policyAdapter){
+ this.policyAdapter = policyAdapter;
+ }
+
+ //save configuration of the policy based on the policyname
+ private void saveConfigurations(String policyName, final String jsonBody) {
+
+ if(policyName.endsWith(".xml")){
+ policyName = policyName.substring(0, policyName.lastIndexOf(".xml"));
+ }
+ try (PrintWriter out = new PrintWriter(CONFIG_HOME + File.separator + "."+ policyName +".json")){
+ out.println(jsonBody);
+ policyAdapter.setJsonBody(jsonBody);
+ policyAdapter.setConfigBodyData(jsonBody);
+ } catch (Exception e) {
+ LOGGER.error("Exception Occured"+e);
+ }
+ }
+
+ //getting the policy name and setting to configuration on adding .json
+ private String getConfigFile(String filename) {
+ filename = FilenameUtils.removeExtension(filename);
+ if (filename.endsWith(".xml")) {
+ filename = filename.substring(0, filename.length() - 4);
+ }
+ filename = filename +".json";
+ return filename;
+ }
+
+ @Override
+ public Map<String, String> savePolicies() throws PAPException {
+
+ Map<String, String> successMap = new HashMap<>();
+ if(isPolicyExists()){
+ successMap.put("EXISTS", "This Policy already exist on the PAP");
+ return successMap;
+ }
+
+ if(!isPreparedToSave()){
+ //Prep and configure the policy for saving
+ prepareToSave();
+ }
+
+ // 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;
+ }
+
+ //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{
+
+ 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("Config")) {
+ PolicyType policyConfig = new PolicyType();
+
+ policyConfig.setVersion(Integer.toString(version));
+ policyConfig.setPolicyId(policyID);
+ policyConfig.setTarget(new TargetType());
+ policyAdapter.setData(policyConfig);
+ }
+ policyName = policyAdapter.getNewFileName();
+ if (policyAdapter.getData() != null) {
+ // Save the Configurations file with the policy name with extention based on selection.
+ String jsonBody = policyAdapter.getJsonBody();
+ saveConfigurations(policyName, jsonBody);
+
+ // Make sure the filename ends with an extension
+ if (policyName.endsWith(".xml") == false) {
+ policyName = policyName + ".xml";
+ }
+
+
+ PolicyType configPolicy = (PolicyType) policyAdapter.getData();
+
+ configPolicy.setDescription(policyAdapter.getPolicyDescription());
+
+ configPolicy.setRuleCombiningAlgId(policyAdapter.getRuleCombiningAlgId());
+
+ 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());
+ }
+ allOfOne.getMatch().add(createMatch("PolicyName", name));
+ AllOfType allOf = new AllOfType();
+
+ // Adding the matches to AllOfType element Match for Onap
+ allOf.getMatch().add(createMatch("ONAPName", policyAdapter.getOnapName()));
+ // Match for riskType
+ allOf.getMatch().add(
+ createDynamicMatch("RiskType", policyAdapter.getRiskType()));
+ // Match for riskLevel
+ allOf.getMatch().add(
+ createDynamicMatch("RiskLevel", String.valueOf(policyAdapter.getRiskLevel())));
+ // Match for riskguard
+ allOf.getMatch().add(
+ createDynamicMatch("guard", policyAdapter.getGuard()));
+ // Match for ttlDate
+ allOf.getMatch().add(
+ createDynamicMatch("TTLDate", policyAdapter.getTtlDate()));
+ // Match for ServiceType
+ allOf.getMatch().add(createMatch("ServiceType", policyAdapter.getServiceType()));
+
+ AnyOfType anyOf = new AnyOfType();
+ anyOf.getAllOf().add(allOfOne);
+ anyOf.getAllOf().add(allOf);
+
+ TargetType target = new TargetType();
+ ((TargetType) target).getAnyOf().add(anyOf);
+
+ // Adding the target to the policy element
+ configPolicy.setTarget((TargetType) target);
+
+ RuleType rule = new RuleType();
+ rule.setRuleId(policyAdapter.getRuleID());
+
+ rule.setEffect(EffectType.PERMIT);
+
+ // Create Target in Rule
+ AllOfType allOfInRule = new AllOfType();
+
+ // Creating match for ACCESS in rule target
+ MatchType accessMatch = new MatchType();
+ AttributeValueType accessAttributeValue = new AttributeValueType();
+ accessAttributeValue.setDataType(STRING_DATATYPE);
+ accessAttributeValue.getContent().add("ACCESS");
+ accessMatch.setAttributeValue(accessAttributeValue);
+ AttributeDesignatorType accessAttributeDesignator = new AttributeDesignatorType();
+ URI accessURI = null;
+ try {
+ accessURI = new URI(ACTION_ID);
+ } catch (URISyntaxException e) {
+ PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, e, "CreateClosedLoopPerformanceMetrics", "Exception creating ACCESS URI");
+ }
+ accessAttributeDesignator.setCategory(CATEGORY_ACTION);
+ accessAttributeDesignator.setDataType(STRING_DATATYPE);
+ accessAttributeDesignator.setAttributeId(new IdentifierImpl(accessURI).stringValue());
+ accessMatch.setAttributeDesignator(accessAttributeDesignator);
+ accessMatch.setMatchId(FUNCTION_STRING_EQUAL_IGNORE);
+
+ // Creating Config Match in rule Target
+ MatchType configMatch = new MatchType();
+ AttributeValueType configAttributeValue = new AttributeValueType();
+ configAttributeValue.setDataType(STRING_DATATYPE);
+ configAttributeValue.getContent().add("Config");
+ configMatch.setAttributeValue(configAttributeValue);
+ AttributeDesignatorType configAttributeDesignator = new AttributeDesignatorType();
+ URI configURI = null;
+ try {
+ configURI = new URI(RESOURCE_ID);
+ } catch (URISyntaxException e) {
+ PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, e, "CreateClosedLoopPerformanceMetrics", "Exception creating Config URI");
+ }
+ configAttributeDesignator.setCategory(CATEGORY_RESOURCE);
+ configAttributeDesignator.setDataType(STRING_DATATYPE);
+ configAttributeDesignator.setAttributeId(new IdentifierImpl(configURI).stringValue());
+ configMatch.setAttributeDesignator(configAttributeDesignator);
+ configMatch.setMatchId(FUNCTION_STRING_EQUAL_IGNORE);
+
+ allOfInRule.getMatch().add(accessMatch);
+ allOfInRule.getMatch().add(configMatch);
+
+ AnyOfType anyOfInRule = new AnyOfType();
+ anyOfInRule.getAllOf().add(allOfInRule);
+
+ TargetType targetInRule = new TargetType();
+ targetInRule.getAnyOf().add(anyOfInRule);
+
+ rule.setTarget(targetInRule);
+ rule.setAdviceExpressions(getAdviceExpressions(version, policyName));
+
+ configPolicy.getCombinerParametersOrRuleCombinerParametersOrVariableDefinition().add(rule);
+ policyAdapter.setPolicyData(configPolicy);
+
+ } else {
+ PolicyLogger.error("Unsupported data object." + policyAdapter.getData().getClass().getCanonicalName());
+ }
+ setPreparedToSave(true);
+ return true;
+ }
+
+ // Data required for Advice part is setting here.
+ @SuppressWarnings("static-access")
+ private AdviceExpressionsType getAdviceExpressions(int version, String fileName) {
+ AdviceExpressionsType advices = new AdviceExpressionsType();
+ AdviceExpressionType advice = new AdviceExpressionType();
+ advice.setAdviceId("PMID");
+ advice.setAppliesTo(EffectType.PERMIT);
+ // For Configuration
+ AttributeAssignmentExpressionType assignment1 = new AttributeAssignmentExpressionType();
+ assignment1.setAttributeId("type");
+ assignment1.setCategory(CATEGORY_RESOURCE);
+ assignment1.setIssuer("");
+
+ AttributeValueType configNameAttributeValue = new AttributeValueType();
+ configNameAttributeValue.setDataType(STRING_DATATYPE);
+ configNameAttributeValue.getContent().add("Configuration");
+ assignment1.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue));
+
+ advice.getAttributeAssignmentExpression().add(assignment1);
+ // For Config file Url if configurations are provided.
+ AttributeAssignmentExpressionType assignment2 = new AttributeAssignmentExpressionType();
+ assignment2.setAttributeId("URLID");
+ assignment2.setCategory(CATEGORY_RESOURCE);
+ assignment2.setIssuer("");
+
+ AttributeValueType AttributeValue = new AttributeValueType();
+ AttributeValue.setDataType(URI_DATATYPE);
+ String content = CONFIG_URL +"/Config/"+ getConfigFile(policyName);
+ AttributeValue.getContent().add(content);
+ assignment2.setExpression(new ObjectFactory().createAttributeValue(AttributeValue));
+
+ advice.getAttributeAssignmentExpression().add(assignment2);
+ AttributeAssignmentExpressionType assignment3 = new AttributeAssignmentExpressionType();
+ assignment3.setAttributeId("PolicyName");
+ assignment3.setCategory(CATEGORY_RESOURCE);
+ assignment3.setIssuer("");
+
+ AttributeValueType attributeValue3 = new AttributeValueType();
+ attributeValue3.setDataType(STRING_DATATYPE);
+ fileName = FilenameUtils.removeExtension(fileName);
+ fileName = fileName + ".xml";
+ String name = fileName.substring(fileName.lastIndexOf("\\") + 1, fileName.length());
+ if ((name == null) || (name.equals(""))) {
+ name = fileName.substring(fileName.lastIndexOf("/") + 1, fileName.length());
+ }
+ attributeValue3.getContent().add(name);
+ assignment3.setExpression(new ObjectFactory().createAttributeValue(attributeValue3));
+ advice.getAttributeAssignmentExpression().add(assignment3);
+
+ AttributeAssignmentExpressionType assignment4 = new AttributeAssignmentExpressionType();
+ assignment4.setAttributeId("VersionNumber");
+ assignment4.setCategory(CATEGORY_RESOURCE);
+ assignment4.setIssuer("");
+
+ AttributeValueType configNameAttributeValue4 = new AttributeValueType();
+ configNameAttributeValue4.setDataType(STRING_DATATYPE);
+ configNameAttributeValue4.getContent().add(Integer.toString(version));
+ assignment4.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue4));
+
+ advice.getAttributeAssignmentExpression().add(assignment4);
+
+ AttributeAssignmentExpressionType assignment5 = new AttributeAssignmentExpressionType();
+ assignment5.setAttributeId("matching:" + this.ONAPID);
+ assignment5.setCategory(CATEGORY_RESOURCE);
+ assignment5.setIssuer("");
+
+ AttributeValueType configNameAttributeValue5 = new AttributeValueType();
+ configNameAttributeValue5.setDataType(STRING_DATATYPE);
+ configNameAttributeValue5.getContent().add(policyAdapter.getOnapName());
+ assignment5.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue5));
+
+ advice.getAttributeAssignmentExpression().add(assignment5);
+
+ AttributeAssignmentExpressionType assignment6 = new AttributeAssignmentExpressionType();
+ assignment6.setAttributeId("matching:" + this.CLOSEDLOOPID);
+ assignment6.setCategory(CATEGORY_RESOURCE);
+ assignment6.setIssuer("");
+
+ AttributeValueType configNameAttributeValue6 = new AttributeValueType();
+ configNameAttributeValue6.setDataType(STRING_DATATYPE);
+ configNameAttributeValue6.getContent().add(policyAdapter.getServiceType());
+ assignment6.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue6));
+
+ advice.getAttributeAssignmentExpression().add(assignment6);
+
+ //Risk Attributes
+ AttributeAssignmentExpressionType assignment7 = new AttributeAssignmentExpressionType();
+ assignment7.setAttributeId("RiskType");
+ assignment7.setCategory(CATEGORY_RESOURCE);
+ assignment7.setIssuer("");
+
+ AttributeValueType configNameAttributeValue7 = new AttributeValueType();
+ configNameAttributeValue7.setDataType(STRING_DATATYPE);
+ configNameAttributeValue7.getContent().add(policyAdapter.getRiskType());
+ assignment7.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue7));
+
+ advice.getAttributeAssignmentExpression().add(assignment7);
+
+ AttributeAssignmentExpressionType assignment8 = new AttributeAssignmentExpressionType();
+ assignment8.setAttributeId("RiskLevel");
+ assignment8.setCategory(CATEGORY_RESOURCE);
+ assignment8.setIssuer("");
+
+ AttributeValueType configNameAttributeValue8 = new AttributeValueType();
+ configNameAttributeValue8.setDataType(STRING_DATATYPE);
+ configNameAttributeValue8.getContent().add(policyAdapter.getRiskLevel());
+ assignment8.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue8));
+
+ advice.getAttributeAssignmentExpression().add(assignment8);
+
+ AttributeAssignmentExpressionType assignment9 = new AttributeAssignmentExpressionType();
+ assignment9.setAttributeId("guard");
+ assignment9.setCategory(CATEGORY_RESOURCE);
+ assignment9.setIssuer("");
+
+ AttributeValueType configNameAttributeValue9 = new AttributeValueType();
+ configNameAttributeValue9.setDataType(STRING_DATATYPE);
+ configNameAttributeValue9.getContent().add(policyAdapter.getGuard());
+ assignment9.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue9));
+
+ advice.getAttributeAssignmentExpression().add(assignment9);
+
+ AttributeAssignmentExpressionType assignment10 = new AttributeAssignmentExpressionType();
+ assignment10.setAttributeId("TTLDate");
+ assignment10.setCategory(CATEGORY_RESOURCE);
+ assignment10.setIssuer("");
+
+ AttributeValueType configNameAttributeValue10 = new AttributeValueType();
+ configNameAttributeValue10.setDataType(STRING_DATATYPE);
+ configNameAttributeValue10.getContent().add(policyAdapter.getTtlDate());
+ assignment10.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue10));
+
+ advice.getAttributeAssignmentExpression().add(assignment10);
+
+ advices.getAdviceExpression().add(advice);
+ return advices;
+ }
+
+ @Override
+ public Object getCorrectPolicyDataObject() {
+ return policyAdapter.getPolicyData();
+ }
}
diff --git a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/CreateNewOptimizationModel.java b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/CreateNewOptimizationModel.java
index c4de9a059..87c9f9108 100644
--- a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/CreateNewOptimizationModel.java
+++ b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/CreateNewOptimizationModel.java
@@ -50,243 +50,243 @@ import org.onap.policy.rest.util.MSModelUtils.MODEL_TYPE;
import com.google.gson.Gson;
public class CreateNewOptimizationModel {
- private static final Logger logger = FlexLogger.getLogger(CreateNewOptimizationModel.class);
- private OptimizationModels newModel = null;
- private HashMap<String,MSAttributeObject > classMap = new HashMap<>();
-
- private static final String EXTRACTDIR = "ExtractDir";
- private static final String SUCCESS = "success";
-
-
- MSModelUtils utils = new MSModelUtils(XACMLPapServlet.getMsOnapName(), XACMLPapServlet.getMsPolicyName());
-
- public CreateNewOptimizationModel() {
- super();
- }
-
- public CreateNewOptimizationModel(String importFile, String modelName, String description, String version, String randomID) {
-
- this.newModel = new OptimizationModels();
- this.newModel.setVersion(version);
- this.newModel.setModelName(modelName);
- this.newModel.setDescription(description);
- UserInfo userInfo = new UserInfo();
- userInfo.setUserLoginId("API");
- this.newModel.setUserCreatedBy(userInfo);
- String cleanUpFile = null;
-
- Map<String, MSAttributeObject> tempMap = new HashMap<>();
- //Need to delete the file
- if (importFile.contains(".zip")){
- extractFolder(randomID + ".zip");
- File directory = new File(EXTRACTDIR + File.separator + randomID);
- List<File> fileList = listModelFiles(directory.toString());
- //get all the files from a director
- for (File file : fileList){
- if (file.isFile()){
- processYmlModel(file.toString(), modelName);
- }
- }
- cleanUpFile = EXTRACTDIR + File.separator + randomID + ".zip";
- try {
- FileUtils.deleteDirectory(new File(EXTRACTDIR + File.separator + randomID));
- FileUtils.deleteDirectory(new File(randomID));
- File deleteFile = new File(cleanUpFile);
- FileUtils.forceDelete(deleteFile);
- } catch (IOException e) {
- logger.error("Failed to unzip model file " + randomID, e);
- }
- }else {
- if(importFile.contains(".yml")){
-
- processYmlModel(EXTRACTDIR + File.separator + randomID+".yml", modelName);
- cleanUpFile = EXTRACTDIR + File.separator + randomID+".yml";
-
- }else{
- tempMap = utils.processEpackage(EXTRACTDIR + File.separator + randomID+".xmi", MODEL_TYPE.XMI);
- classMap.putAll(tempMap);
- cleanUpFile = EXTRACTDIR + File.separator + randomID+".xmi";
- }
- File deleteFile = new File(cleanUpFile);
- deleteFile.delete();
- }
- }
-
- private void processYmlModel(String fileName, String modelName){
-
- try {
-
- utils.parseTosca(fileName);
-
- MSAttributeObject msAttributes= new MSAttributeObject();
- msAttributes.setClassName(modelName);
-
- LinkedHashMap<String, String> returnAttributeList =new LinkedHashMap<>();
- returnAttributeList.put(modelName, utils.getAttributeString());
- msAttributes.setAttribute(returnAttributeList);
-
- msAttributes.setSubClass(utils.getRetmap());
-
- msAttributes.setMatchingSet(utils.getMatchableValues());
-
- LinkedHashMap<String, String> returnReferenceList =new LinkedHashMap<>();
-
- returnReferenceList.put(modelName, utils.getReferenceAttributes());
- msAttributes.setRefAttribute(returnReferenceList);
-
- if(!"".equals(utils.getListConstraints())){
- LinkedHashMap<String, String> enumList =new LinkedHashMap<>();
- String[] listArray=utils.getListConstraints().split("#");
+ private static final Logger logger = FlexLogger.getLogger(CreateNewOptimizationModel.class);
+ private OptimizationModels newModel = null;
+ private HashMap<String,MSAttributeObject > classMap = new HashMap<>();
+
+ private static final String EXTRACTDIR = "ExtractDir";
+ private static final String SUCCESS = "success";
+
+
+ MSModelUtils utils = new MSModelUtils(XACMLPapServlet.getMsOnapName(), XACMLPapServlet.getMsPolicyName());
+
+ public CreateNewOptimizationModel() {
+ super();
+ }
+
+ public CreateNewOptimizationModel(String importFile, String modelName, String description, String version, String randomID) {
+
+ this.newModel = new OptimizationModels();
+ this.newModel.setVersion(version);
+ this.newModel.setModelName(modelName);
+ this.newModel.setDescription(description);
+ UserInfo userInfo = new UserInfo();
+ userInfo.setUserLoginId("API");
+ this.newModel.setUserCreatedBy(userInfo);
+ String cleanUpFile = null;
+
+ Map<String, MSAttributeObject> tempMap = new HashMap<>();
+ //Need to delete the file
+ if (importFile.contains(".zip")){
+ extractFolder(randomID + ".zip");
+ File directory = new File(EXTRACTDIR + File.separator + randomID);
+ List<File> fileList = listModelFiles(directory.toString());
+ //get all the files from a director
+ for (File file : fileList){
+ if (file.isFile()){
+ processYmlModel(file.toString(), modelName);
+ }
+ }
+ cleanUpFile = EXTRACTDIR + File.separator + randomID + ".zip";
+ try {
+ FileUtils.deleteDirectory(new File(EXTRACTDIR + File.separator + randomID));
+ FileUtils.deleteDirectory(new File(randomID));
+ File deleteFile = new File(cleanUpFile);
+ FileUtils.forceDelete(deleteFile);
+ } catch (IOException e) {
+ logger.error("Failed to unzip model file " + randomID, e);
+ }
+ }else {
+ if(importFile.contains(".yml")){
+
+ processYmlModel(EXTRACTDIR + File.separator + randomID+".yml", modelName);
+ cleanUpFile = EXTRACTDIR + File.separator + randomID+".yml";
+
+ }else{
+ tempMap = utils.processEpackage(EXTRACTDIR + File.separator + randomID+".xmi", MODEL_TYPE.XMI);
+ classMap.putAll(tempMap);
+ cleanUpFile = EXTRACTDIR + File.separator + randomID+".xmi";
+ }
+ File deleteFile = new File(cleanUpFile);
+ deleteFile.delete();
+ }
+ }
+
+ private void processYmlModel(String fileName, String modelName){
+
+ try {
+
+ utils.parseTosca(fileName);
+
+ MSAttributeObject msAttributes= new MSAttributeObject();
+ msAttributes.setClassName(modelName);
+
+ LinkedHashMap<String, String> returnAttributeList =new LinkedHashMap<>();
+ returnAttributeList.put(modelName, utils.getAttributeString());
+ msAttributes.setAttribute(returnAttributeList);
+
+ msAttributes.setSubClass(utils.getRetmap());
+
+ msAttributes.setMatchingSet(utils.getMatchableValues());
+
+ LinkedHashMap<String, String> returnReferenceList =new LinkedHashMap<>();
+
+ returnReferenceList.put(modelName, utils.getReferenceAttributes());
+ msAttributes.setRefAttribute(returnReferenceList);
+
+ if(!"".equals(utils.getListConstraints())){
+ LinkedHashMap<String, String> enumList =new LinkedHashMap<>();
+ String[] listArray=utils.getListConstraints().split("#");
for(String str:listArray){
String[] strArr= str.split("=");
if(strArr.length>1){
enumList.put(strArr[0], strArr[1]);
}
}
- msAttributes.setEnumType(enumList);
- }
-
- classMap=new LinkedHashMap<>();
- classMap.put(modelName, msAttributes);
-
- } catch (Exception e) {
- logger.error("Failed to process yml model" + e);
- }
-
- }
-
- private List<File> listModelFiles(String directoryName) {
- File directory = new File(directoryName);
- List<File> resultList = new ArrayList<>();
- File[] fList = directory.listFiles();
- for (File file : fList) {
- if (file.isFile()) {
- resultList.add(file);
- } else if (file.isDirectory()) {
- resultList.addAll(listModelFiles(file.getAbsolutePath()));
- }
- }
- return resultList;
- }
-
- @SuppressWarnings("rawtypes")
- private void extractFolder(String zipFile) {
- int buffer = 2048;
- File file = new File(zipFile);
-
- try(ZipFile zip = new ZipFile(EXTRACTDIR + File.separator +file);){
- String newPath = zipFile.substring(0, zipFile.length() - 4);
- new File(newPath).mkdir();
- Enumeration zipFileEntries = zip.entries();
-
- // Process each entry
- while (zipFileEntries.hasMoreElements()){
- // grab a zip file entry
- ZipEntry entry = (ZipEntry) zipFileEntries.nextElement();
- String currentEntry = entry.getName();
- File destFile = new File(EXTRACTDIR + File.separator + newPath + File.separator + currentEntry);
- File destinationParent = destFile.getParentFile();
-
- destinationParent.mkdirs();
-
- if (!entry.isDirectory()){
- int currentByte;
-
- byte[] data = new byte[buffer];
- try(FileOutputStream fos = new FileOutputStream(destFile);
- BufferedInputStream is = new BufferedInputStream(zip.getInputStream(entry));
- BufferedOutputStream dest = new BufferedOutputStream(fos, buffer)) {
-
- while ((currentByte = is.read(data, 0, buffer)) != -1) {
- dest.write(data, 0, currentByte);
- }
- dest.flush();
- }
- }
-
- if (currentEntry.endsWith(".zip")){
- extractFolder(destFile.getAbsolutePath());
- }
- }
- } catch (IOException e) {
- logger.error("Failed to unzip model file " + zipFile + e);
- }
- }
-
- public Map<String, String> addValuesToNewModel() {
-
- Map<String, String> successMap = new HashMap<>();
- MSAttributeObject mainClass;
-
- if (!classMap.containsKey(this.newModel.getModelName())){
- logger.error("Model Provided does not contain the service name provided in request. Unable to import new model");
- PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, "AddValuesToNewModel", "Unable to pull out required values, file missing service name provided in request");
- successMap.put("error", "MISSING");
- return successMap;
- }
- mainClass = classMap.get(this.newModel.getModelName());
- newModel.setDependency("[]");
- if(mainClass.getSubClass() != null){
- String value = new Gson().toJson(mainClass.getSubClass());
- newModel.setSubattributes(value);
- }
-
- if(mainClass.getAttribute() != null){
- String attributes= mainClass.getAttribute().toString().replace("{", "").replace("}", "");
- int equalsIndexForAttributes= attributes.indexOf('=');
- String atttributesAfterFirstEquals= attributes.substring(equalsIndexForAttributes+1);
- this.newModel.setAttributes(atttributesAfterFirstEquals);
- }
-
- if(mainClass.getRefAttribute() != null){
- String refAttributes= mainClass.getRefAttribute().toString().replace("{", "").replace("}", "");
- int equalsIndex= refAttributes.indexOf('=');
- String refAttributesAfterFirstEquals= refAttributes.substring(equalsIndex+1);
- this.newModel.setRefattributes(refAttributesAfterFirstEquals);
- }
-
- if(mainClass.getEnumType() != null){
- this.newModel.setEnumValues(mainClass.getEnumType().toString().replace("{", "").replace("}", ""));
- }
-
- if(mainClass.getMatchingSet() != null){
- this.newModel.setAnnotation(mainClass.getMatchingSet().toString().replace("{", "").replace("}", ""));
- }
-
- successMap.put(SUCCESS, SUCCESS);
- return successMap;
-
- }
-
- public Map<String, String> saveImportService(){
- String modelName = this.newModel.getModelName();
- String importedBy = "API";
- String version = this.newModel.getVersion();
- Map<String, String> successMap = new HashMap<>();
- CommonClassDaoImpl dbConnection = new CommonClassDaoImpl();
- List<Object> result = dbConnection.getDataById(OptimizationModels.class, "modelName:version", modelName+":"+version);
- if(result.isEmpty()){
- OptimizationModels model = new OptimizationModels();
- model.setModelName(modelName);
- model.setVersion(version);
- model.setAttributes(this.newModel.getAttributes());
- model.setAnnotation(this.newModel.getAnnotation());
- model.setDependency(this.newModel.getDependency());
- model.setDescription(this.newModel.getDescription());
- model.setEnumValues(this.newModel.getEnumValues());
- model.setRefattributes(this.newModel.getRefattributes());
- model.setSubattributes(this.newModel.getSubattributes());
- model.setDataOrderInfo(this.newModel.getDataOrderInfo());
- UserInfo userInfo = new UserInfo();
- userInfo.setUserLoginId(importedBy);
- userInfo.setUserName(importedBy);
- model.setUserCreatedBy(userInfo);
- dbConnection.save(model);
- successMap.put(SUCCESS, SUCCESS);
- }else{
- successMap.put("DBError", "EXISTS");
- logger.error("Import new service failed. Service already exists");
- }
- return successMap;
- }
+ msAttributes.setEnumType(enumList);
+ }
+
+ classMap=new LinkedHashMap<>();
+ classMap.put(modelName, msAttributes);
+
+ } catch (Exception e) {
+ logger.error("Failed to process yml model" + e);
+ }
+
+ }
+
+ private List<File> listModelFiles(String directoryName) {
+ File directory = new File(directoryName);
+ List<File> resultList = new ArrayList<>();
+ File[] fList = directory.listFiles();
+ for (File file : fList) {
+ if (file.isFile()) {
+ resultList.add(file);
+ } else if (file.isDirectory()) {
+ resultList.addAll(listModelFiles(file.getAbsolutePath()));
+ }
+ }
+ return resultList;
+ }
+
+ @SuppressWarnings("rawtypes")
+ private void extractFolder(String zipFile) {
+ int buffer = 2048;
+ File file = new File(zipFile);
+
+ try(ZipFile zip = new ZipFile(EXTRACTDIR + File.separator +file);){
+ String newPath = zipFile.substring(0, zipFile.length() - 4);
+ new File(newPath).mkdir();
+ Enumeration zipFileEntries = zip.entries();
+
+ // Process each entry
+ while (zipFileEntries.hasMoreElements()){
+ // grab a zip file entry
+ ZipEntry entry = (ZipEntry) zipFileEntries.nextElement();
+ String currentEntry = entry.getName();
+ File destFile = new File(EXTRACTDIR + File.separator + newPath + File.separator + currentEntry);
+ File destinationParent = destFile.getParentFile();
+
+ destinationParent.mkdirs();
+
+ if (!entry.isDirectory()){
+ int currentByte;
+
+ byte[] data = new byte[buffer];
+ try(FileOutputStream fos = new FileOutputStream(destFile);
+ BufferedInputStream is = new BufferedInputStream(zip.getInputStream(entry));
+ BufferedOutputStream dest = new BufferedOutputStream(fos, buffer)) {
+
+ while ((currentByte = is.read(data, 0, buffer)) != -1) {
+ dest.write(data, 0, currentByte);
+ }
+ dest.flush();
+ }
+ }
+
+ if (currentEntry.endsWith(".zip")){
+ extractFolder(destFile.getAbsolutePath());
+ }
+ }
+ } catch (IOException e) {
+ logger.error("Failed to unzip model file " + zipFile + e);
+ }
+ }
+
+ public Map<String, String> addValuesToNewModel() {
+
+ Map<String, String> successMap = new HashMap<>();
+ MSAttributeObject mainClass;
+
+ if (!classMap.containsKey(this.newModel.getModelName())){
+ logger.error("Model Provided does not contain the service name provided in request. Unable to import new model");
+ PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, "AddValuesToNewModel", "Unable to pull out required values, file missing service name provided in request");
+ successMap.put("error", "MISSING");
+ return successMap;
+ }
+ mainClass = classMap.get(this.newModel.getModelName());
+ newModel.setDependency("[]");
+ if(mainClass.getSubClass() != null){
+ String value = new Gson().toJson(mainClass.getSubClass());
+ newModel.setSubattributes(value);
+ }
+
+ if(mainClass.getAttribute() != null){
+ String attributes= mainClass.getAttribute().toString().replace("{", "").replace("}", "");
+ int equalsIndexForAttributes= attributes.indexOf('=');
+ String atttributesAfterFirstEquals= attributes.substring(equalsIndexForAttributes+1);
+ this.newModel.setAttributes(atttributesAfterFirstEquals);
+ }
+
+ if(mainClass.getRefAttribute() != null){
+ String refAttributes= mainClass.getRefAttribute().toString().replace("{", "").replace("}", "");
+ int equalsIndex= refAttributes.indexOf('=');
+ String refAttributesAfterFirstEquals= refAttributes.substring(equalsIndex+1);
+ this.newModel.setRefattributes(refAttributesAfterFirstEquals);
+ }
+
+ if(mainClass.getEnumType() != null){
+ this.newModel.setEnumValues(mainClass.getEnumType().toString().replace("{", "").replace("}", ""));
+ }
+
+ if(mainClass.getMatchingSet() != null){
+ this.newModel.setAnnotation(mainClass.getMatchingSet().toString().replace("{", "").replace("}", ""));
+ }
+
+ successMap.put(SUCCESS, SUCCESS);
+ return successMap;
+
+ }
+
+ public Map<String, String> saveImportService(){
+ String modelName = this.newModel.getModelName();
+ String importedBy = "API";
+ String version = this.newModel.getVersion();
+ Map<String, String> successMap = new HashMap<>();
+ CommonClassDaoImpl dbConnection = new CommonClassDaoImpl();
+ List<Object> result = dbConnection.getDataById(OptimizationModels.class, "modelName:version", modelName+":"+version);
+ if(result.isEmpty()){
+ OptimizationModels model = new OptimizationModels();
+ model.setModelName(modelName);
+ model.setVersion(version);
+ model.setAttributes(this.newModel.getAttributes());
+ model.setAnnotation(this.newModel.getAnnotation());
+ model.setDependency(this.newModel.getDependency());
+ model.setDescription(this.newModel.getDescription());
+ model.setEnumValues(this.newModel.getEnumValues());
+ model.setRefattributes(this.newModel.getRefattributes());
+ model.setSubattributes(this.newModel.getSubattributes());
+ model.setDataOrderInfo(this.newModel.getDataOrderInfo());
+ UserInfo userInfo = new UserInfo();
+ userInfo.setUserLoginId(importedBy);
+ userInfo.setUserName(importedBy);
+ model.setUserCreatedBy(userInfo);
+ dbConnection.save(model);
+ successMap.put(SUCCESS, SUCCESS);
+ }else{
+ successMap.put("DBError", "EXISTS");
+ logger.error("Import new service failed. Service already exists");
+ }
+ return successMap;
+ }
}
diff --git a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/DecisionPolicy.java b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/DecisionPolicy.java
index c8c540c34..eece6c017 100644
--- a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/DecisionPolicy.java
+++ b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/DecisionPolicy.java
@@ -85,101 +85,101 @@ import oasis.names.tc.xacml._3_0.core.schema.wd_17.VariableDefinitionType;
import oasis.names.tc.xacml._3_0.core.schema.wd_17.VariableReferenceType;
public class DecisionPolicy extends Policy {
-
- private static final Logger LOGGER = FlexLogger.getLogger(DecisionPolicy.class);
-
- public static final String FUNCTION_NOT = "urn:oasis:names:tc:xacml:1.0:function:not";
- private static final String AAFPROVIDER = "AAF";
- public static final String GUARD_YAML = "GUARD_YAML";
+
+ private static final Logger LOGGER = FlexLogger.getLogger(DecisionPolicy.class);
+
+ public static final String FUNCTION_NOT = "urn:oasis:names:tc:xacml:1.0:function:not";
+ private static final String AAFPROVIDER = "AAF";
+ public static final String GUARD_YAML = "GUARD_YAML";
public static final String GUARD_BL_YAML = "GUARD_BL_YAML";
public static final String RAINY_DAY = "Rainy_Day";
private static final String XACML_GUARD_TEMPLATE = "Decision_GuardPolicyTemplate.xml";
private static final String XACML_BLGUARD_TEMPLATE = "Decision_GuardBLPolicyTemplate.xml";
- private static final String ONAPNAME = "ONAPName";
- private static final String POLICY_NAME = "PolicyName";
- private static final String DESCRIPTION = "description";
-
-
- List<String> dynamicLabelRuleAlgorithms = new LinkedList<>();
- List<String> dynamicFieldComboRuleAlgorithms = new LinkedList<>();
- List<String> dynamicFieldOneRuleAlgorithms = new LinkedList<>();
- List<String> dynamicFieldTwoRuleAlgorithms = new LinkedList<>();
- List<String> dataTypeList = new LinkedList<>();
-
- private CommonClassDao commonClassDao;
-
- public DecisionPolicy() {
- super();
- }
-
- public DecisionPolicy(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()){
- successMap.put("EXISTS", "This Policy already exist on the PAP");
- return successMap;
- }
-
- if(!isPreparedToSave()){
- //Prep and configure the policy for saving
- prepareToSave();
- }
-
- // 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;
- }
-
- //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{
-
- 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 ("Decision".equals(policyAdapter.getPolicyType())) {
- PolicyType policyConfig = new PolicyType();
-
- policyConfig.setVersion(Integer.toString(version));
- policyConfig.setPolicyId(policyID);
- policyConfig.setTarget(new TargetType());
- policyAdapter.setData(policyConfig);
- }
- policyName = policyAdapter.getNewFileName();
-
- if(policyAdapter.getRuleProvider().equals(GUARD_YAML) || policyAdapter.getRuleProvider().equals(GUARD_BL_YAML)){
- Map<String, String> yamlParams = new HashMap<>();
- String blackListEntryType = policyAdapter.getBlackListEntryType() !=null ? policyAdapter.getBlackListEntryType(): "Use Manual Entry";
- String description = policyAdapter.getPolicyDescription() != null? policyAdapter.getPolicyDescription(): "YAML Guard Policy";
- yamlParams.put(DESCRIPTION, description + "@blEntry@" + blackListEntryType + "@blEntry@");
- String fileName = policyAdapter.getNewFileName();
- String name = fileName.substring(fileName.lastIndexOf('\\') + 1, fileName.length());
- if ((name == null) || ("".equals(name))) {
- name = fileName.substring(fileName.lastIndexOf('/') + 1, fileName.length());
- }
- yamlParams.put(POLICY_NAME, name);
- yamlParams.put(ONAPNAME, policyAdapter.getOnapName());
- Map<String, String> params = policyAdapter.getDynamicFieldConfigAttributes();
- yamlParams.putAll(params);
- // Call YAML to XACML
+ private static final String ONAPNAME = "ONAPName";
+ private static final String POLICY_NAME = "PolicyName";
+ private static final String DESCRIPTION = "description";
+
+
+ List<String> dynamicLabelRuleAlgorithms = new LinkedList<>();
+ List<String> dynamicFieldComboRuleAlgorithms = new LinkedList<>();
+ List<String> dynamicFieldOneRuleAlgorithms = new LinkedList<>();
+ List<String> dynamicFieldTwoRuleAlgorithms = new LinkedList<>();
+ List<String> dataTypeList = new LinkedList<>();
+
+ private CommonClassDao commonClassDao;
+
+ public DecisionPolicy() {
+ super();
+ }
+
+ public DecisionPolicy(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()){
+ successMap.put("EXISTS", "This Policy already exist on the PAP");
+ return successMap;
+ }
+
+ if(!isPreparedToSave()){
+ //Prep and configure the policy for saving
+ prepareToSave();
+ }
+
+ // 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;
+ }
+
+ //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{
+
+ 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 ("Decision".equals(policyAdapter.getPolicyType())) {
+ PolicyType policyConfig = new PolicyType();
+
+ policyConfig.setVersion(Integer.toString(version));
+ policyConfig.setPolicyId(policyID);
+ policyConfig.setTarget(new TargetType());
+ policyAdapter.setData(policyConfig);
+ }
+ policyName = policyAdapter.getNewFileName();
+
+ if(policyAdapter.getRuleProvider().equals(GUARD_YAML) || policyAdapter.getRuleProvider().equals(GUARD_BL_YAML)){
+ Map<String, String> yamlParams = new HashMap<>();
+ String blackListEntryType = policyAdapter.getBlackListEntryType() !=null ? policyAdapter.getBlackListEntryType(): "Use Manual Entry";
+ String description = policyAdapter.getPolicyDescription() != null? policyAdapter.getPolicyDescription(): "YAML Guard Policy";
+ yamlParams.put(DESCRIPTION, description + "@blEntry@" + blackListEntryType + "@blEntry@");
+ String fileName = policyAdapter.getNewFileName();
+ String name = fileName.substring(fileName.lastIndexOf('\\') + 1, fileName.length());
+ if ((name == null) || ("".equals(name))) {
+ name = fileName.substring(fileName.lastIndexOf('/') + 1, fileName.length());
+ }
+ yamlParams.put(POLICY_NAME, name);
+ yamlParams.put(ONAPNAME, policyAdapter.getOnapName());
+ Map<String, String> params = policyAdapter.getDynamicFieldConfigAttributes();
+ yamlParams.putAll(params);
+ // Call YAML to XACML
try {
PolicyType decisionPolicy = getGuardPolicy(yamlParams, policyAdapter.getRuleProvider());
decisionPolicy.setRuleCombiningAlgId(policyAdapter.getRuleCombiningAlgId());
@@ -190,614 +190,614 @@ public class DecisionPolicy extends Policy {
LOGGER.error(e);
throw new PAPException(e);
}
- }else if (policyAdapter.getData() != null) {
- PolicyType decisionPolicy = (PolicyType) policyAdapter.getData();
-
- decisionPolicy.setDescription(policyAdapter.getPolicyDescription());
-
- decisionPolicy.setRuleCombiningAlgId(policyAdapter.getRuleCombiningAlgId());
- AllOfType allOfOne = new AllOfType();
- String fileName = policyAdapter.getNewFileName();
- String name = fileName.substring(fileName.lastIndexOf('\\') + 1, fileName.length());
- if ((name == null) || ("".equals(name))) {
- name = fileName.substring(fileName.lastIndexOf('/') + 1, fileName.length());
- }
- allOfOne.getMatch().add(createMatch(POLICY_NAME, name));
-
- AllOfType allOf = new AllOfType();
-
- // Match for Onap
- allOf.getMatch().add(createMatch(ONAPNAME, (policyAdapter.getOnapName())));
-
- Map<String, String> dynamicFieldComponentAttributes = policyAdapter.getDynamicFieldConfigAttributes();
- if(policyAdapter.getRuleProvider()!=null && policyAdapter.getRuleProvider().equals(AAFPROVIDER)){
- dynamicFieldComponentAttributes = new HashMap<>();
- }
-
- // If there is any dynamic field attributes create the matches here
- for (String keyField : dynamicFieldComponentAttributes.keySet()) {
- String key = keyField;
- String value = dynamicFieldComponentAttributes.get(key);
- MatchType dynamicMatch = createDynamicMatch(key, value);
- allOf.getMatch().add(dynamicMatch);
- }
-
- AnyOfType anyOf = new AnyOfType();
- anyOf.getAllOf().add(allOfOne);
- anyOf.getAllOf().add(allOf);
-
- TargetType target = new TargetType();
- target.getAnyOf().add(anyOf);
- decisionPolicy.setTarget(target);
-
- Map<String, String> dynamicFieldDecisionSettings = policyAdapter.getDynamicSettingsMap();
- if(policyAdapter.getRuleProvider()!=null && (policyAdapter.getRuleProvider().equals(AAFPROVIDER)||
- policyAdapter.getRuleProvider().equals(RAINY_DAY))){
- dynamicFieldDecisionSettings = new HashMap<>();
- }
-
- // settings are dynamic so check how many rows are added and add all
- for (String keyField : dynamicFieldDecisionSettings.keySet()) {
- String key = keyField;
- String value = dynamicFieldDecisionSettings.get(key);
- String dataType = getDataType(key);
- VariableDefinitionType dynamicVariable = createDynamicVariable(key, value, dataType);
- decisionPolicy.getCombinerParametersOrRuleCombinerParametersOrVariableDefinition().add(dynamicVariable);
- }
-
- Map<String, String> dynamicFieldTreatmentAttributes = policyAdapter.getRainydayMap();
- if(policyAdapter.getRuleProvider().equals(RAINY_DAY)){
- for(String keyField : dynamicFieldTreatmentAttributes.keySet()) {
- String errorcode = keyField;
- String treatment = dynamicFieldTreatmentAttributes.get(errorcode);
- createRainydayRule(decisionPolicy, errorcode, treatment, true);
- }
- } else {
- createRule(decisionPolicy, true);
- createRule(decisionPolicy, false);
- }
-
- }
- setPreparedToSave(true);
- return true;
- }
-
- public PolicyType getGuardPolicy(Map<String, String> yamlParams, String ruleProvider) throws BuilderException{
- try {
- ControlLoopGuardBuilder builder = ControlLoopGuardBuilder.Factory.buildControlLoopGuard(new Guard());
- MatchParameters matchParameters = new MatchParameters(yamlParams.get("actor"), yamlParams.get("recipe"));
- matchParameters.setControlLoopName(yamlParams.get("clname"));
- if(yamlParams.containsKey("targets")){
- String targetString = yamlParams.get("targets");
- List<String> targets = null;
- if(targetString!=null && !targetString.isEmpty()){
- if (targetString.contains(",")){
- targets = Arrays.asList(targetString.split(","));
- }
- else{
- targets = new ArrayList<>();
- targets.add(targetString);
- }
- }
- matchParameters.setTargets(targets);
- }
- GuardPolicy policy1 = new GuardPolicy((policyAdapter.getUuid()!=null? policyAdapter.getUuid(): UUID.randomUUID().toString()) ,yamlParams.get(POLICY_NAME), yamlParams.get(DESCRIPTION), matchParameters);
- builder = builder.addGuardPolicy(policy1);
+ }else if (policyAdapter.getData() != null) {
+ PolicyType decisionPolicy = (PolicyType) policyAdapter.getData();
+
+ decisionPolicy.setDescription(policyAdapter.getPolicyDescription());
+
+ decisionPolicy.setRuleCombiningAlgId(policyAdapter.getRuleCombiningAlgId());
+ AllOfType allOfOne = new AllOfType();
+ String fileName = policyAdapter.getNewFileName();
+ String name = fileName.substring(fileName.lastIndexOf('\\') + 1, fileName.length());
+ if ((name == null) || ("".equals(name))) {
+ name = fileName.substring(fileName.lastIndexOf('/') + 1, fileName.length());
+ }
+ allOfOne.getMatch().add(createMatch(POLICY_NAME, name));
+
+ AllOfType allOf = new AllOfType();
+
+ // Match for Onap
+ allOf.getMatch().add(createMatch(ONAPNAME, (policyAdapter.getOnapName())));
+
+ Map<String, String> dynamicFieldComponentAttributes = policyAdapter.getDynamicFieldConfigAttributes();
+ if(policyAdapter.getRuleProvider()!=null && policyAdapter.getRuleProvider().equals(AAFPROVIDER)){
+ dynamicFieldComponentAttributes = new HashMap<>();
+ }
+
+ // If there is any dynamic field attributes create the matches here
+ for (String keyField : dynamicFieldComponentAttributes.keySet()) {
+ String key = keyField;
+ String value = dynamicFieldComponentAttributes.get(key);
+ MatchType dynamicMatch = createDynamicMatch(key, value);
+ allOf.getMatch().add(dynamicMatch);
+ }
+
+ AnyOfType anyOf = new AnyOfType();
+ anyOf.getAllOf().add(allOfOne);
+ anyOf.getAllOf().add(allOf);
+
+ TargetType target = new TargetType();
+ target.getAnyOf().add(anyOf);
+ decisionPolicy.setTarget(target);
+
+ Map<String, String> dynamicFieldDecisionSettings = policyAdapter.getDynamicSettingsMap();
+ if(policyAdapter.getRuleProvider()!=null && (policyAdapter.getRuleProvider().equals(AAFPROVIDER)||
+ policyAdapter.getRuleProvider().equals(RAINY_DAY))){
+ dynamicFieldDecisionSettings = new HashMap<>();
+ }
+
+ // settings are dynamic so check how many rows are added and add all
+ for (String keyField : dynamicFieldDecisionSettings.keySet()) {
+ String key = keyField;
+ String value = dynamicFieldDecisionSettings.get(key);
+ String dataType = getDataType(key);
+ VariableDefinitionType dynamicVariable = createDynamicVariable(key, value, dataType);
+ decisionPolicy.getCombinerParametersOrRuleCombinerParametersOrVariableDefinition().add(dynamicVariable);
+ }
+
+ Map<String, String> dynamicFieldTreatmentAttributes = policyAdapter.getRainydayMap();
+ if(policyAdapter.getRuleProvider().equals(RAINY_DAY)){
+ for(String keyField : dynamicFieldTreatmentAttributes.keySet()) {
+ String errorcode = keyField;
+ String treatment = dynamicFieldTreatmentAttributes.get(errorcode);
+ createRainydayRule(decisionPolicy, errorcode, treatment, true);
+ }
+ } else {
+ createRule(decisionPolicy, true);
+ createRule(decisionPolicy, false);
+ }
+
+ }
+ setPreparedToSave(true);
+ return true;
+ }
+
+ public PolicyType getGuardPolicy(Map<String, String> yamlParams, String ruleProvider) throws BuilderException{
+ try {
+ ControlLoopGuardBuilder builder = ControlLoopGuardBuilder.Factory.buildControlLoopGuard(new Guard());
+ MatchParameters matchParameters = new MatchParameters(yamlParams.get("actor"), yamlParams.get("recipe"));
+ matchParameters.setControlLoopName(yamlParams.get("clname"));
+ if(yamlParams.containsKey("targets")){
+ String targetString = yamlParams.get("targets");
+ List<String> targets = null;
+ if(targetString!=null && !targetString.isEmpty()){
+ if (targetString.contains(",")){
+ targets = Arrays.asList(targetString.split(","));
+ }
+ else{
+ targets = new ArrayList<>();
+ targets.add(targetString);
+ }
+ }
+ matchParameters.setTargets(targets);
+ }
+ GuardPolicy policy1 = new GuardPolicy((policyAdapter.getUuid()!=null? policyAdapter.getUuid(): UUID.randomUUID().toString()) ,yamlParams.get(POLICY_NAME), yamlParams.get(DESCRIPTION), matchParameters);
+ builder = builder.addGuardPolicy(policy1);
Map<String, String> activeTimeRange = new HashMap<>();
activeTimeRange.put("start", yamlParams.get("guardActiveStart"));
activeTimeRange.put("end", yamlParams.get("guardActiveEnd"));
- String blackListString = yamlParams.get("blackList");
- List<String> blackList = null;
+ String blackListString = yamlParams.get("blackList");
+ List<String> blackList = null;
if(blackListString!=null && !blackListString.trim().isEmpty()){
- if (blackListString.contains(",")){
- blackList = Arrays.asList(blackListString.split(","));
- }
- else{
- blackList = new ArrayList<>();
- blackList.add(blackListString);
- }
- }
+ if (blackListString.contains(",")){
+ blackList = Arrays.asList(blackListString.split(","));
+ }
+ else{
+ blackList = new ArrayList<>();
+ blackList.add(blackListString);
+ }
+ }
if(yamlParams.containsKey("appendBlackList")){
- String appendBlackListString = yamlParams.get("appendBlackList");
+ String appendBlackListString = yamlParams.get("appendBlackList");
List<String> appendBlackList = null;
if(appendBlackListString!=null && !appendBlackListString.trim().isEmpty()){
- appendBlackList = Arrays.asList(appendBlackListString.split(","));
- for(int i=0; i<appendBlackList.size();i++){
- blackList.remove(appendBlackList.get(i));
- }
+ appendBlackList = Arrays.asList(appendBlackListString.split(","));
+ for(int i=0; i<appendBlackList.size();i++){
+ blackList.remove(appendBlackList.get(i));
+ }
}
}
- File templateFile;
- Path xacmlTemplatePath;
- ClassLoader classLoader = getClass().getClassLoader();
- Constraint cons = new Constraint();
- switch (ruleProvider){
- case GUARD_BL_YAML:
- templateFile = new File(classLoader.getResource(XACML_BLGUARD_TEMPLATE).getFile());
- xacmlTemplatePath = templateFile.toPath();
+ File templateFile;
+ Path xacmlTemplatePath;
+ ClassLoader classLoader = getClass().getClassLoader();
+ Constraint cons = new Constraint();
+ switch (ruleProvider){
+ case GUARD_BL_YAML:
+ templateFile = new File(classLoader.getResource(XACML_BLGUARD_TEMPLATE).getFile());
+ xacmlTemplatePath = templateFile.toPath();
cons.setActive_time_range(activeTimeRange);
if(blackList==null || blackList.isEmpty()){
throw new BuilderException("blackList is required");
}
cons.setBlacklist(blackList);
- break;
- default:
- templateFile = new File(classLoader.getResource(XACML_GUARD_TEMPLATE).getFile());
- xacmlTemplatePath = templateFile.toPath();
- Map<String,String> timeWindow = new HashMap<>();
- if(!PolicyUtils.isInteger(yamlParams.get("timeWindow"))){
- throw new BuilderException("time window is not in Integer format.");
- }
- String timeUnits = yamlParams.get("timeUnits");
- if(timeUnits==null || !(timeUnits.equalsIgnoreCase("minute") || timeUnits.equalsIgnoreCase("hour") || timeUnits.equalsIgnoreCase("day")
- || timeUnits.equalsIgnoreCase("week") || timeUnits.equalsIgnoreCase("month")||timeUnits.equalsIgnoreCase("year"))){
- throw new BuilderException("time Units is not in proper format.");
- }
- timeWindow.put("value", yamlParams.get("timeWindow"));
- timeWindow.put("units", yamlParams.get("timeUnits"));
- cons = new Constraint(Integer.parseInt(yamlParams.get("limit")),timeWindow,activeTimeRange);
- break;
- }
- builder = builder.addLimitConstraint(policy1.getId(), cons);
- // Build the specification
- Results results = builder.buildSpecification();
- // YAML TO XACML
- ControlLoopGuard yamlGuardObject = SafePolicyBuilder.loadYamlGuard(results.getSpecification());
- String xacmlTemplateContent;
- try {
- xacmlTemplateContent = new String(Files.readAllBytes(xacmlTemplatePath));
- HashMap<String, String> yamlSpecs = new HashMap<>();
- yamlSpecs.put(POLICY_NAME, yamlParams.get(POLICY_NAME));
- yamlSpecs.put(DESCRIPTION, yamlParams.get(DESCRIPTION));
- yamlSpecs.put(ONAPNAME, yamlParams.get(ONAPNAME));
- yamlSpecs.put("actor", yamlGuardObject.getGuards().getFirst().getMatch_parameters().getActor());
- yamlSpecs.put("recipe", yamlGuardObject.getGuards().getFirst().getMatch_parameters().getRecipe());
- yamlSpecs.put("clname", yamlGuardObject.getGuards().getFirst().getMatch_parameters().getControlLoopName());
- if(yamlGuardObject.getGuards().getFirst().getLimit_constraints().getFirst().getFreq_limit_per_target()!=null){
- yamlSpecs.put("limit", yamlGuardObject.getGuards().getFirst().getLimit_constraints().getFirst().getFreq_limit_per_target().toString());
- }
- if(yamlGuardObject.getGuards().getFirst().getLimit_constraints().getFirst().getTime_window()!=null){
- yamlSpecs.put("twValue", yamlGuardObject.getGuards().getFirst().getLimit_constraints().getFirst().getTime_window().get("value"));
- yamlSpecs.put("twUnits", yamlGuardObject.getGuards().getFirst().getLimit_constraints().getFirst().getTime_window().get("units"));
- }
- yamlSpecs.put("guardActiveStart", yamlGuardObject.getGuards().getFirst().getLimit_constraints().getFirst().getActive_time_range().get("start"));
- yamlSpecs.put("guardActiveEnd", yamlGuardObject.getGuards().getFirst().getLimit_constraints().getFirst().getActive_time_range().get("end"));
- String xacmlPolicyContent = SafePolicyBuilder.generateXacmlGuard(xacmlTemplateContent,yamlSpecs, yamlGuardObject.getGuards().getFirst().getLimit_constraints().getFirst().getBlacklist(), yamlGuardObject.getGuards().getFirst().getMatch_parameters().getTargets());
- // Convert the Policy into Stream input to Policy Adapter.
- Object policy = XACMLPolicyScanner.readPolicy(new ByteArrayInputStream(xacmlPolicyContent.getBytes(StandardCharsets.UTF_8)));
- return (PolicyType) policy;
- } catch (IOException e) {
- LOGGER.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "Error while creating the policy " + e.getMessage() , e);
- }
- } catch (BuilderException e) {
- LOGGER.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "Error while creating the policy " + e.getMessage() ,e);
- throw e;
- }
- return null;
- }
-
- private DecisionSettings findDecisionSettingsBySettingId(String settingId) {
- DecisionSettings decisionSetting = null;
-
- EntityManager em = XACMLPapServlet.getEmf().createEntityManager();
- Query getDecisionSettings = em.createNamedQuery("DecisionSettings.findAll");
- List<?> decisionSettingsList = getDecisionSettings.getResultList();
-
- for (Object id : decisionSettingsList) {
- decisionSetting = (DecisionSettings) id;
- if (decisionSetting.getXacmlId().equals(settingId)) {
- break;
- }
- }
- return decisionSetting;
- }
-
- private void createRule(PolicyType decisionPolicy, boolean permitRule) {
- RuleType rule = new RuleType();
-
- rule.setRuleId(policyAdapter.getRuleID());
-
- if (permitRule) {
- rule.setEffect(EffectType.PERMIT);
- } else {
- rule.setEffect(EffectType.DENY);
- }
- rule.setTarget(new TargetType());
-
- // Create Target in Rule
- AllOfType allOfInRule = new AllOfType();
-
- // Creating match for ACCESS in rule target
- MatchType accessMatch = new MatchType();
- AttributeValueType accessAttributeValue = new AttributeValueType();
- accessAttributeValue.setDataType(STRING_DATATYPE);
- accessAttributeValue.getContent().add("DECIDE");
- accessMatch.setAttributeValue(accessAttributeValue);
- AttributeDesignatorType accessAttributeDesignator = new AttributeDesignatorType();
- URI accessURI = null;
- try {
- accessURI = new URI(ACTION_ID);
- } catch (URISyntaxException e) {
- PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, e, "DecisionPolicy", "Exception creating ACCESS URI");
- }
- accessAttributeDesignator.setCategory(CATEGORY_ACTION);
- accessAttributeDesignator.setDataType(STRING_DATATYPE);
- accessAttributeDesignator.setAttributeId(new IdentifierImpl(accessURI).stringValue());
- accessMatch.setAttributeDesignator(accessAttributeDesignator);
- accessMatch.setMatchId(FUNCTION_STRING_EQUAL_IGNORE);
-
- dynamicLabelRuleAlgorithms = policyAdapter.getDynamicRuleAlgorithmLabels();
- dynamicFieldComboRuleAlgorithms = policyAdapter.getDynamicRuleAlgorithmCombo();
- dynamicFieldOneRuleAlgorithms = policyAdapter.getDynamicRuleAlgorithmField1();
- dynamicFieldTwoRuleAlgorithms = policyAdapter.getDynamicRuleAlgorithmField2();
-
- if(policyAdapter.getRuleProvider()!=null && policyAdapter.getRuleProvider().equals(AAFPROVIDER)){
- // Values for AAF Provider are here for XML Creation.
- ConditionType condition = new ConditionType();
- ApplyType decisionApply = new ApplyType();
-
- AttributeValueType value1 = new AttributeValueType();
- value1.setDataType(BOOLEAN_DATATYPE);
- value1.getContent().add("true");
-
- AttributeDesignatorType value2 = new AttributeDesignatorType();
- value2.setAttributeId(AAFEngine.AAF_RESULT);
- value2.setCategory(CATEGORY_RESOURCE);
- value2.setDataType(BOOLEAN_DATATYPE);
- value2.setMustBePresent(false);
-
- ApplyType innerDecisionApply = new ApplyType();
- innerDecisionApply.setFunctionId(FUNCTION_BOOLEAN_ONE_AND_ONLY);
- innerDecisionApply.getExpression().add(new ObjectFactory().createAttributeDesignator(value2));
-
- decisionApply.setFunctionId(XACML3.ID_FUNCTION_BOOLEAN_EQUAL.stringValue());
- decisionApply.getExpression().add(new ObjectFactory().createAttributeValue(value1));
- decisionApply.getExpression().add(new ObjectFactory().createApply(innerDecisionApply));
- condition.setExpression(new ObjectFactory().createApply(decisionApply));
- if (!permitRule) {
- ApplyType notOuterApply = new ApplyType();
- notOuterApply.setFunctionId(FUNCTION_NOT);
- notOuterApply.getExpression().add(condition.getExpression());
- condition.setExpression(new ObjectFactory().createApply(notOuterApply));
- }
- rule.setCondition(condition);
- allOfInRule.getMatch().add(accessMatch);
-
- AnyOfType anyOfInRule = new AnyOfType();
- anyOfInRule.getAllOf().add(allOfInRule);
-
- TargetType targetInRule = new TargetType();
- targetInRule.getAnyOf().add(anyOfInRule);
-
- rule.setTarget(targetInRule);
- if(!permitRule){
- AdviceExpressionsType adviceExpressions = new AdviceExpressionsType();
- AdviceExpressionType adviceExpression = new AdviceExpressionType();
- adviceExpression.setAdviceId(AAFPROVIDER);
- adviceExpression.setAppliesTo(EffectType.DENY);
- AttributeAssignmentExpressionType assignment = new AttributeAssignmentExpressionType();
- assignment.setAttributeId("aaf.response");
- assignment.setCategory(CATEGORY_RESOURCE);
- AttributeDesignatorType value = new AttributeDesignatorType();
- value.setAttributeId(AAFEngine.AAF_RESPONSE);
- value.setCategory(CATEGORY_RESOURCE);
- value.setDataType(STRING_DATATYPE);
- value.setMustBePresent(false);
- assignment.setExpression(new ObjectFactory().createAttributeDesignator(value));
- adviceExpression.getAttributeAssignmentExpression().add(assignment);
- adviceExpressions.getAdviceExpression().add(adviceExpression);
- rule.setAdviceExpressions(adviceExpressions);
- }
- decisionPolicy.getCombinerParametersOrRuleCombinerParametersOrVariableDefinition().add(rule);
- policyAdapter.setPolicyData(decisionPolicy);
-
- }else if (dynamicLabelRuleAlgorithms != null && !dynamicLabelRuleAlgorithms.isEmpty()) {
- boolean isCompound = false;
- ConditionType condition = new ConditionType();
- int index = dynamicFieldOneRuleAlgorithms.size() - 1;
-
- for (String labelAttr : dynamicLabelRuleAlgorithms) {
- // if the rule algorithm as a label means it is a compound
- if (dynamicFieldOneRuleAlgorithms.get(index).equals(labelAttr)) {
- ApplyType decisionApply = new ApplyType();
-
- String selectedFunction = dynamicFieldComboRuleAlgorithms.get(index);
- String value1 = dynamicFieldOneRuleAlgorithms.get(index);
- String value2 = dynamicFieldTwoRuleAlgorithms.get(index);
- decisionApply.setFunctionId(getFunctionDefinitionId(selectedFunction));
- decisionApply.getExpression().add(new ObjectFactory().createApply(getInnerDecisionApply(value1)));
- decisionApply.getExpression().add(new ObjectFactory().createApply(getInnerDecisionApply(value2)));
- condition.setExpression(new ObjectFactory().createApply(decisionApply));
- isCompound = true;
- }
-
- // if rule algorithm not a compound
- if (!isCompound) {
- condition.setExpression(new ObjectFactory().createApply(getInnerDecisionApply(dynamicLabelRuleAlgorithms.get(index))));
- }
- }
- if (!permitRule) {
- ApplyType notOuterApply = new ApplyType();
- notOuterApply.setFunctionId(FUNCTION_NOT);
- notOuterApply.getExpression().add(condition.getExpression());
- condition.setExpression(new ObjectFactory().createApply(notOuterApply));
- }
- rule.setCondition(condition);
- allOfInRule.getMatch().add(accessMatch);
-
- AnyOfType anyOfInRule = new AnyOfType();
- anyOfInRule.getAllOf().add(allOfInRule);
-
- TargetType targetInRule = new TargetType();
- targetInRule.getAnyOf().add(anyOfInRule);
-
- rule.setTarget(targetInRule);
-
- decisionPolicy.getCombinerParametersOrRuleCombinerParametersOrVariableDefinition().add(rule);
- policyAdapter.setPolicyData(decisionPolicy);
-
- } else {
- PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + "Unsupported data object."+ policyAdapter.getData().getClass().getCanonicalName());
- }
-
- }
-
- private void createRainydayRule(PolicyType decisionPolicy, String errorcode, String treatment, boolean permitRule) {
- RuleType rule = new RuleType();
-
- rule.setRuleId(UUID.randomUUID().toString());
-
- if (permitRule) {
- rule.setEffect(EffectType.PERMIT);
- } else {
- rule.setEffect(EffectType.DENY);
- }
- rule.setTarget(new TargetType());
-
- // Create Target in Rule
- AllOfType allOfInRule = new AllOfType();
-
- // Creating match for DECIDE in rule target
- MatchType accessMatch = new MatchType();
- AttributeValueType accessAttributeValue = new AttributeValueType();
- accessAttributeValue.setDataType(STRING_DATATYPE);
- accessAttributeValue.getContent().add("DECIDE");
- accessMatch.setAttributeValue(accessAttributeValue);
- AttributeDesignatorType accessAttributeDesignator = new AttributeDesignatorType();
- URI accessURI = null;
- try {
- accessURI = new URI(ACTION_ID);
- } catch (URISyntaxException e) {
- PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, e, "DecisionPolicy", "Exception creating ACCESS URI");
- }
- accessAttributeDesignator.setCategory(CATEGORY_ACTION);
- accessAttributeDesignator.setDataType(STRING_DATATYPE);
- accessAttributeDesignator.setAttributeId(new IdentifierImpl(accessURI).stringValue());
- accessMatch.setAttributeDesignator(accessAttributeDesignator);
- accessMatch.setMatchId(FUNCTION_STRING_EQUAL_IGNORE);
-
- allOfInRule.getMatch().add(accessMatch);
-
- // Creating match for ErrorCode in rule target
- MatchType errorcodeMatch = new MatchType();
- AttributeValueType errorcodeAttributeValue = new AttributeValueType();
- errorcodeAttributeValue.setDataType(STRING_DATATYPE);
- errorcodeAttributeValue.getContent().add(errorcode);
- errorcodeMatch.setAttributeValue(errorcodeAttributeValue);
- AttributeDesignatorType errorcodeAttributeDesignator = new AttributeDesignatorType();
- errorcodeAttributeDesignator.setCategory(CATEGORY_RESOURCE);
- errorcodeAttributeDesignator.setDataType(STRING_DATATYPE);
- errorcodeAttributeDesignator.setAttributeId("ErrorCode");
- errorcodeMatch.setAttributeDesignator(errorcodeAttributeDesignator);
- errorcodeMatch.setMatchId(FUNCTION_STRING_REGEXP_MATCH);
-
- allOfInRule.getMatch().add(errorcodeMatch);
-
- AnyOfType anyOfInRule = new AnyOfType();
- anyOfInRule.getAllOf().add(allOfInRule);
-
- TargetType targetInRule = new TargetType();
- targetInRule.getAnyOf().add(anyOfInRule);
-
- rule.setTarget(targetInRule);
-
- AdviceExpressionsType adviceExpressions = new AdviceExpressionsType();
- AdviceExpressionType adviceExpression = new AdviceExpressionType();
- adviceExpression.setAdviceId(RAINY_DAY);
- adviceExpression.setAppliesTo(EffectType.PERMIT);
-
- AttributeAssignmentExpressionType assignment = new AttributeAssignmentExpressionType();
- assignment.setAttributeId("treatment");
- assignment.setCategory(CATEGORY_RESOURCE);
-
- AttributeValueType treatmentAttributeValue = new AttributeValueType();
- treatmentAttributeValue.setDataType(STRING_DATATYPE);
- treatmentAttributeValue.getContent().add(treatment);
- assignment.setExpression(new ObjectFactory().createAttributeValue(treatmentAttributeValue));
-
- adviceExpression.getAttributeAssignmentExpression().add(assignment);
- adviceExpressions.getAdviceExpression().add(adviceExpression);
- rule.setAdviceExpressions(adviceExpressions);
- decisionPolicy.getCombinerParametersOrRuleCombinerParametersOrVariableDefinition().add(rule);
- policyAdapter.setPolicyData(decisionPolicy);
-
- }
-
- // if compound setting the inner apply here
- protected ApplyType getInnerDecisionApply(String value1Label) {
- ApplyType decisionApply = new ApplyType();
- int index = 0;
- // check the index for the label.
- for (String labelAttr : dynamicLabelRuleAlgorithms) {
- if (labelAttr.equals(value1Label)) {
- String value1 = dynamicFieldOneRuleAlgorithms.get(index);
- populateDataTypeList(value1);
-
- // check if the row contains label again
- for (String labelValue : dynamicLabelRuleAlgorithms) {
- if (labelValue.equals(value1)) {
- return getCompoundDecisionApply(index);
- }
- }
-
- // Getting the values from the form.
- String functionKey = dynamicFieldComboRuleAlgorithms.get(index);
- String value2 = dynamicFieldTwoRuleAlgorithms.get(index);
- decisionApply.setFunctionId(getFunctionDefinitionId(functionKey));
- // if two text field are rule attributes.
- if ((value1.contains(RULE_VARIABLE)) && (value2.contains(RULE_VARIABLE))) {
- ApplyType innerDecisionApply1 = new ApplyType();
- ApplyType innerDecisionApply2 = new ApplyType();
- AttributeDesignatorType attributeDesignator1 = new AttributeDesignatorType();
- AttributeDesignatorType attributeDesignator2 = new AttributeDesignatorType();
- //If selected function is Integer function set integer functionID
- if(functionKey.toLowerCase().contains("integer")){
- innerDecisionApply1.setFunctionId(FUNTION_INTEGER_ONE_AND_ONLY );
- innerDecisionApply2.setFunctionId(FUNTION_INTEGER_ONE_AND_ONLY);
- attributeDesignator1.setDataType(INTEGER_DATATYPE);
- attributeDesignator2.setDataType(INTEGER_DATATYPE);
- } else{
- //If selected function is not a Integer function set String functionID
- innerDecisionApply1.setFunctionId(FUNCTION_STRING_ONE_AND_ONLY);
- innerDecisionApply2.setFunctionId(FUNCTION_STRING_ONE_AND_ONLY);
- attributeDesignator1.setDataType(STRING_DATATYPE);
- attributeDesignator2.setDataType(STRING_DATATYPE);
- }
- attributeDesignator1.setCategory(CATEGORY_RESOURCE);
- 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));
- innerDecisionApply1.getExpression().add(new ObjectFactory().createAttributeDesignator( attributeDesignator1));
- innerDecisionApply2.getExpression().add(new ObjectFactory().createAttributeDesignator( attributeDesignator2));
- decisionApply.getExpression().add(new ObjectFactory().createApply(innerDecisionApply1));
- decisionApply.getExpression().add(new ObjectFactory().createApply(innerDecisionApply2));
- } else {
- // if either of one text field is rule attribute.
- if (!value1.startsWith("S_")) {
- ApplyType innerDecisionApply = new ApplyType();
- AttributeDesignatorType attributeDesignator = new AttributeDesignatorType();
- AttributeValueType decisionConditionAttributeValue = new AttributeValueType();
-
- if (functionKey.toLowerCase().contains("integer")) {
- innerDecisionApply.setFunctionId(FUNTION_INTEGER_ONE_AND_ONLY);
- decisionConditionAttributeValue.setDataType(INTEGER_DATATYPE);
- attributeDesignator.setDataType(INTEGER_DATATYPE);
- } else {
- innerDecisionApply.setFunctionId(FUNCTION_STRING_ONE_AND_ONLY);
- decisionConditionAttributeValue.setDataType(STRING_DATATYPE);
- attributeDesignator.setDataType(STRING_DATATYPE);
- }
-
- String attributeId = null;
- String attributeValue = null;
-
- // Find which textField has rule attribute and set it as
- // attributeId and the other as attributeValue.
- attributeId = value1;
- attributeValue = value2;
-
- if (attributeId != null) {
- attributeDesignator.setCategory(CATEGORY_RESOURCE);
- attributeDesignator.setAttributeId(attributeId);
- }
- decisionConditionAttributeValue.getContent().add(attributeValue);
- innerDecisionApply.getExpression().add(new ObjectFactory().createAttributeDesignator(attributeDesignator));
- decisionApply.getExpression().add(new ObjectFactory().createAttributeValue(decisionConditionAttributeValue));
- decisionApply.getExpression().add(new ObjectFactory().createApply(innerDecisionApply));
- } else {
- value1 = value1.substring(2, value1.length());
- VariableReferenceType variableReferenceType = new VariableReferenceType();
- variableReferenceType.setVariableId(value1);
-
- String dataType = dataTypeList.get(index);
-
- AttributeValueType decisionConditionAttributeValue = new AttributeValueType();
- decisionConditionAttributeValue.setDataType(dataType);
- decisionConditionAttributeValue.getContent().add(value2);
- decisionApply.getExpression().add(new ObjectFactory().createVariableReference(variableReferenceType));
- decisionApply.getExpression().add(new ObjectFactory().createAttributeValue(decisionConditionAttributeValue));
- }
- }
- }
- index++;
- }
- return decisionApply;
- }
-
- // if the rule algorithm is multiple compound one setting the apply
- protected ApplyType getCompoundDecisionApply(int index) {
- ApplyType decisionApply = new ApplyType();
- String selectedFunction = dynamicFieldComboRuleAlgorithms.get(index);
- String value1 = dynamicFieldOneRuleAlgorithms.get(index);
- String value2 = dynamicFieldTwoRuleAlgorithms.get(index);
- decisionApply.setFunctionId(getFunctionDefinitionId(selectedFunction));
- decisionApply.getExpression().add(new ObjectFactory().createApply(getInnerDecisionApply(value1)));
- decisionApply.getExpression().add(new ObjectFactory().createApply(getInnerDecisionApply(value2)));
- return decisionApply;
- }
-
- private VariableDefinitionType createDynamicVariable(String key, String value, String dataType) {
- VariableDefinitionType dynamicVariable = new VariableDefinitionType();
- AttributeValueType dynamicAttributeValue = new AttributeValueType();
-
- dynamicAttributeValue.setDataType(dataType);
- dynamicAttributeValue.getContent().add(value);
-
- dynamicVariable.setVariableId(key);
- dynamicVariable.setExpression(new ObjectFactory().createAttributeValue(dynamicAttributeValue));
-
- return dynamicVariable;
-
- }
-
- private void populateDataTypeList(String value1) {
- String dataType = null;
- if(value1.contains("S_")) {
- value1 = value1.substring(2, value1.length());
- DecisionSettings decisionSettings = findDecisionSettingsBySettingId(value1.substring(2, value1.length()));
- if (decisionSettings != null && "string".equals(decisionSettings.getDatatypeBean().getShortName())) {
- dataType = STRING_DATATYPE;
- } else if (decisionSettings != null && "boolean".equals(decisionSettings.getDatatypeBean().getShortName())) {
- dataType = BOOLEAN_DATATYPE;
- } else {
- dataType = INTEGER_DATATYPE;
- }
- } else {
- dataType = "OTHER";
- }
-
- dataTypeList.add(dataType);
- }
-
-
- private String getDataType(String key) {
-
- DecisionSettings decisionSettings = findDecisionSettingsBySettingId(key);
- String dataType = null;
-
- if (decisionSettings != null && "string".equals(decisionSettings.getDatatypeBean().getShortName())) {
- dataType = STRING_DATATYPE;
- } else if (decisionSettings != null && "boolean".equals(decisionSettings.getDatatypeBean().getShortName())) {
- dataType = BOOLEAN_DATATYPE;
- } else {
- dataType = INTEGER_DATATYPE;
- }
-
- return dataType;
- }
-
- @Override
- public Object getCorrectPolicyDataObject() {
- return policyAdapter.getData();
- }
-
- public String getFunctionDefinitionId(String key){
- FunctionDefinition object = (FunctionDefinition) commonClassDao.getDataById(FunctionDefinition.class, "shortname", key);
- if(object != null){
- return object.getXacmlid();
- }
- return null;
+ break;
+ default:
+ templateFile = new File(classLoader.getResource(XACML_GUARD_TEMPLATE).getFile());
+ xacmlTemplatePath = templateFile.toPath();
+ Map<String,String> timeWindow = new HashMap<>();
+ if(!PolicyUtils.isInteger(yamlParams.get("timeWindow"))){
+ throw new BuilderException("time window is not in Integer format.");
+ }
+ String timeUnits = yamlParams.get("timeUnits");
+ if(timeUnits==null || !(timeUnits.equalsIgnoreCase("minute") || timeUnits.equalsIgnoreCase("hour") || timeUnits.equalsIgnoreCase("day")
+ || timeUnits.equalsIgnoreCase("week") || timeUnits.equalsIgnoreCase("month")||timeUnits.equalsIgnoreCase("year"))){
+ throw new BuilderException("time Units is not in proper format.");
+ }
+ timeWindow.put("value", yamlParams.get("timeWindow"));
+ timeWindow.put("units", yamlParams.get("timeUnits"));
+ cons = new Constraint(Integer.parseInt(yamlParams.get("limit")),timeWindow,activeTimeRange);
+ break;
+ }
+ builder = builder.addLimitConstraint(policy1.getId(), cons);
+ // Build the specification
+ Results results = builder.buildSpecification();
+ // YAML TO XACML
+ ControlLoopGuard yamlGuardObject = SafePolicyBuilder.loadYamlGuard(results.getSpecification());
+ String xacmlTemplateContent;
+ try {
+ xacmlTemplateContent = new String(Files.readAllBytes(xacmlTemplatePath));
+ HashMap<String, String> yamlSpecs = new HashMap<>();
+ yamlSpecs.put(POLICY_NAME, yamlParams.get(POLICY_NAME));
+ yamlSpecs.put(DESCRIPTION, yamlParams.get(DESCRIPTION));
+ yamlSpecs.put(ONAPNAME, yamlParams.get(ONAPNAME));
+ yamlSpecs.put("actor", yamlGuardObject.getGuards().getFirst().getMatch_parameters().getActor());
+ yamlSpecs.put("recipe", yamlGuardObject.getGuards().getFirst().getMatch_parameters().getRecipe());
+ yamlSpecs.put("clname", yamlGuardObject.getGuards().getFirst().getMatch_parameters().getControlLoopName());
+ if(yamlGuardObject.getGuards().getFirst().getLimit_constraints().getFirst().getFreq_limit_per_target()!=null){
+ yamlSpecs.put("limit", yamlGuardObject.getGuards().getFirst().getLimit_constraints().getFirst().getFreq_limit_per_target().toString());
+ }
+ if(yamlGuardObject.getGuards().getFirst().getLimit_constraints().getFirst().getTime_window()!=null){
+ yamlSpecs.put("twValue", yamlGuardObject.getGuards().getFirst().getLimit_constraints().getFirst().getTime_window().get("value"));
+ yamlSpecs.put("twUnits", yamlGuardObject.getGuards().getFirst().getLimit_constraints().getFirst().getTime_window().get("units"));
+ }
+ yamlSpecs.put("guardActiveStart", yamlGuardObject.getGuards().getFirst().getLimit_constraints().getFirst().getActive_time_range().get("start"));
+ yamlSpecs.put("guardActiveEnd", yamlGuardObject.getGuards().getFirst().getLimit_constraints().getFirst().getActive_time_range().get("end"));
+ String xacmlPolicyContent = SafePolicyBuilder.generateXacmlGuard(xacmlTemplateContent,yamlSpecs, yamlGuardObject.getGuards().getFirst().getLimit_constraints().getFirst().getBlacklist(), yamlGuardObject.getGuards().getFirst().getMatch_parameters().getTargets());
+ // Convert the Policy into Stream input to Policy Adapter.
+ Object policy = XACMLPolicyScanner.readPolicy(new ByteArrayInputStream(xacmlPolicyContent.getBytes(StandardCharsets.UTF_8)));
+ return (PolicyType) policy;
+ } catch (IOException e) {
+ LOGGER.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "Error while creating the policy " + e.getMessage() , e);
+ }
+ } catch (BuilderException e) {
+ LOGGER.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "Error while creating the policy " + e.getMessage() ,e);
+ throw e;
+ }
+ return null;
+ }
+
+ private DecisionSettings findDecisionSettingsBySettingId(String settingId) {
+ DecisionSettings decisionSetting = null;
+
+ EntityManager em = XACMLPapServlet.getEmf().createEntityManager();
+ Query getDecisionSettings = em.createNamedQuery("DecisionSettings.findAll");
+ List<?> decisionSettingsList = getDecisionSettings.getResultList();
+
+ for (Object id : decisionSettingsList) {
+ decisionSetting = (DecisionSettings) id;
+ if (decisionSetting.getXacmlId().equals(settingId)) {
+ break;
+ }
+ }
+ return decisionSetting;
+ }
+
+ private void createRule(PolicyType decisionPolicy, boolean permitRule) {
+ RuleType rule = new RuleType();
+
+ rule.setRuleId(policyAdapter.getRuleID());
+
+ if (permitRule) {
+ rule.setEffect(EffectType.PERMIT);
+ } else {
+ rule.setEffect(EffectType.DENY);
+ }
+ rule.setTarget(new TargetType());
+
+ // Create Target in Rule
+ AllOfType allOfInRule = new AllOfType();
+
+ // Creating match for ACCESS in rule target
+ MatchType accessMatch = new MatchType();
+ AttributeValueType accessAttributeValue = new AttributeValueType();
+ accessAttributeValue.setDataType(STRING_DATATYPE);
+ accessAttributeValue.getContent().add("DECIDE");
+ accessMatch.setAttributeValue(accessAttributeValue);
+ AttributeDesignatorType accessAttributeDesignator = new AttributeDesignatorType();
+ URI accessURI = null;
+ try {
+ accessURI = new URI(ACTION_ID);
+ } catch (URISyntaxException e) {
+ PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, e, "DecisionPolicy", "Exception creating ACCESS URI");
+ }
+ accessAttributeDesignator.setCategory(CATEGORY_ACTION);
+ accessAttributeDesignator.setDataType(STRING_DATATYPE);
+ accessAttributeDesignator.setAttributeId(new IdentifierImpl(accessURI).stringValue());
+ accessMatch.setAttributeDesignator(accessAttributeDesignator);
+ accessMatch.setMatchId(FUNCTION_STRING_EQUAL_IGNORE);
+
+ dynamicLabelRuleAlgorithms = policyAdapter.getDynamicRuleAlgorithmLabels();
+ dynamicFieldComboRuleAlgorithms = policyAdapter.getDynamicRuleAlgorithmCombo();
+ dynamicFieldOneRuleAlgorithms = policyAdapter.getDynamicRuleAlgorithmField1();
+ dynamicFieldTwoRuleAlgorithms = policyAdapter.getDynamicRuleAlgorithmField2();
+
+ if(policyAdapter.getRuleProvider()!=null && policyAdapter.getRuleProvider().equals(AAFPROVIDER)){
+ // Values for AAF Provider are here for XML Creation.
+ ConditionType condition = new ConditionType();
+ ApplyType decisionApply = new ApplyType();
+
+ AttributeValueType value1 = new AttributeValueType();
+ value1.setDataType(BOOLEAN_DATATYPE);
+ value1.getContent().add("true");
+
+ AttributeDesignatorType value2 = new AttributeDesignatorType();
+ value2.setAttributeId(AAFEngine.AAF_RESULT);
+ value2.setCategory(CATEGORY_RESOURCE);
+ value2.setDataType(BOOLEAN_DATATYPE);
+ value2.setMustBePresent(false);
+
+ ApplyType innerDecisionApply = new ApplyType();
+ innerDecisionApply.setFunctionId(FUNCTION_BOOLEAN_ONE_AND_ONLY);
+ innerDecisionApply.getExpression().add(new ObjectFactory().createAttributeDesignator(value2));
+
+ decisionApply.setFunctionId(XACML3.ID_FUNCTION_BOOLEAN_EQUAL.stringValue());
+ decisionApply.getExpression().add(new ObjectFactory().createAttributeValue(value1));
+ decisionApply.getExpression().add(new ObjectFactory().createApply(innerDecisionApply));
+ condition.setExpression(new ObjectFactory().createApply(decisionApply));
+ if (!permitRule) {
+ ApplyType notOuterApply = new ApplyType();
+ notOuterApply.setFunctionId(FUNCTION_NOT);
+ notOuterApply.getExpression().add(condition.getExpression());
+ condition.setExpression(new ObjectFactory().createApply(notOuterApply));
+ }
+ rule.setCondition(condition);
+ allOfInRule.getMatch().add(accessMatch);
+
+ AnyOfType anyOfInRule = new AnyOfType();
+ anyOfInRule.getAllOf().add(allOfInRule);
+
+ TargetType targetInRule = new TargetType();
+ targetInRule.getAnyOf().add(anyOfInRule);
+
+ rule.setTarget(targetInRule);
+ if(!permitRule){
+ AdviceExpressionsType adviceExpressions = new AdviceExpressionsType();
+ AdviceExpressionType adviceExpression = new AdviceExpressionType();
+ adviceExpression.setAdviceId(AAFPROVIDER);
+ adviceExpression.setAppliesTo(EffectType.DENY);
+ AttributeAssignmentExpressionType assignment = new AttributeAssignmentExpressionType();
+ assignment.setAttributeId("aaf.response");
+ assignment.setCategory(CATEGORY_RESOURCE);
+ AttributeDesignatorType value = new AttributeDesignatorType();
+ value.setAttributeId(AAFEngine.AAF_RESPONSE);
+ value.setCategory(CATEGORY_RESOURCE);
+ value.setDataType(STRING_DATATYPE);
+ value.setMustBePresent(false);
+ assignment.setExpression(new ObjectFactory().createAttributeDesignator(value));
+ adviceExpression.getAttributeAssignmentExpression().add(assignment);
+ adviceExpressions.getAdviceExpression().add(adviceExpression);
+ rule.setAdviceExpressions(adviceExpressions);
+ }
+ decisionPolicy.getCombinerParametersOrRuleCombinerParametersOrVariableDefinition().add(rule);
+ policyAdapter.setPolicyData(decisionPolicy);
+
+ }else if (dynamicLabelRuleAlgorithms != null && !dynamicLabelRuleAlgorithms.isEmpty()) {
+ boolean isCompound = false;
+ ConditionType condition = new ConditionType();
+ int index = dynamicFieldOneRuleAlgorithms.size() - 1;
+
+ for (String labelAttr : dynamicLabelRuleAlgorithms) {
+ // if the rule algorithm as a label means it is a compound
+ if (dynamicFieldOneRuleAlgorithms.get(index).equals(labelAttr)) {
+ ApplyType decisionApply = new ApplyType();
+
+ String selectedFunction = dynamicFieldComboRuleAlgorithms.get(index);
+ String value1 = dynamicFieldOneRuleAlgorithms.get(index);
+ String value2 = dynamicFieldTwoRuleAlgorithms.get(index);
+ decisionApply.setFunctionId(getFunctionDefinitionId(selectedFunction));
+ decisionApply.getExpression().add(new ObjectFactory().createApply(getInnerDecisionApply(value1)));
+ decisionApply.getExpression().add(new ObjectFactory().createApply(getInnerDecisionApply(value2)));
+ condition.setExpression(new ObjectFactory().createApply(decisionApply));
+ isCompound = true;
+ }
+
+ // if rule algorithm not a compound
+ if (!isCompound) {
+ condition.setExpression(new ObjectFactory().createApply(getInnerDecisionApply(dynamicLabelRuleAlgorithms.get(index))));
+ }
+ }
+ if (!permitRule) {
+ ApplyType notOuterApply = new ApplyType();
+ notOuterApply.setFunctionId(FUNCTION_NOT);
+ notOuterApply.getExpression().add(condition.getExpression());
+ condition.setExpression(new ObjectFactory().createApply(notOuterApply));
+ }
+ rule.setCondition(condition);
+ allOfInRule.getMatch().add(accessMatch);
+
+ AnyOfType anyOfInRule = new AnyOfType();
+ anyOfInRule.getAllOf().add(allOfInRule);
+
+ TargetType targetInRule = new TargetType();
+ targetInRule.getAnyOf().add(anyOfInRule);
+
+ rule.setTarget(targetInRule);
+
+ decisionPolicy.getCombinerParametersOrRuleCombinerParametersOrVariableDefinition().add(rule);
+ policyAdapter.setPolicyData(decisionPolicy);
+
+ } else {
+ PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + "Unsupported data object."+ policyAdapter.getData().getClass().getCanonicalName());
+ }
+
}
-
+
+ private void createRainydayRule(PolicyType decisionPolicy, String errorcode, String treatment, boolean permitRule) {
+ RuleType rule = new RuleType();
+
+ rule.setRuleId(UUID.randomUUID().toString());
+
+ if (permitRule) {
+ rule.setEffect(EffectType.PERMIT);
+ } else {
+ rule.setEffect(EffectType.DENY);
+ }
+ rule.setTarget(new TargetType());
+
+ // Create Target in Rule
+ AllOfType allOfInRule = new AllOfType();
+
+ // Creating match for DECIDE in rule target
+ MatchType accessMatch = new MatchType();
+ AttributeValueType accessAttributeValue = new AttributeValueType();
+ accessAttributeValue.setDataType(STRING_DATATYPE);
+ accessAttributeValue.getContent().add("DECIDE");
+ accessMatch.setAttributeValue(accessAttributeValue);
+ AttributeDesignatorType accessAttributeDesignator = new AttributeDesignatorType();
+ URI accessURI = null;
+ try {
+ accessURI = new URI(ACTION_ID);
+ } catch (URISyntaxException e) {
+ PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, e, "DecisionPolicy", "Exception creating ACCESS URI");
+ }
+ accessAttributeDesignator.setCategory(CATEGORY_ACTION);
+ accessAttributeDesignator.setDataType(STRING_DATATYPE);
+ accessAttributeDesignator.setAttributeId(new IdentifierImpl(accessURI).stringValue());
+ accessMatch.setAttributeDesignator(accessAttributeDesignator);
+ accessMatch.setMatchId(FUNCTION_STRING_EQUAL_IGNORE);
+
+ allOfInRule.getMatch().add(accessMatch);
+
+ // Creating match for ErrorCode in rule target
+ MatchType errorcodeMatch = new MatchType();
+ AttributeValueType errorcodeAttributeValue = new AttributeValueType();
+ errorcodeAttributeValue.setDataType(STRING_DATATYPE);
+ errorcodeAttributeValue.getContent().add(errorcode);
+ errorcodeMatch.setAttributeValue(errorcodeAttributeValue);
+ AttributeDesignatorType errorcodeAttributeDesignator = new AttributeDesignatorType();
+ errorcodeAttributeDesignator.setCategory(CATEGORY_RESOURCE);
+ errorcodeAttributeDesignator.setDataType(STRING_DATATYPE);
+ errorcodeAttributeDesignator.setAttributeId("ErrorCode");
+ errorcodeMatch.setAttributeDesignator(errorcodeAttributeDesignator);
+ errorcodeMatch.setMatchId(FUNCTION_STRING_REGEXP_MATCH);
+
+ allOfInRule.getMatch().add(errorcodeMatch);
+
+ AnyOfType anyOfInRule = new AnyOfType();
+ anyOfInRule.getAllOf().add(allOfInRule);
+
+ TargetType targetInRule = new TargetType();
+ targetInRule.getAnyOf().add(anyOfInRule);
+
+ rule.setTarget(targetInRule);
+
+ AdviceExpressionsType adviceExpressions = new AdviceExpressionsType();
+ AdviceExpressionType adviceExpression = new AdviceExpressionType();
+ adviceExpression.setAdviceId(RAINY_DAY);
+ adviceExpression.setAppliesTo(EffectType.PERMIT);
+
+ AttributeAssignmentExpressionType assignment = new AttributeAssignmentExpressionType();
+ assignment.setAttributeId("treatment");
+ assignment.setCategory(CATEGORY_RESOURCE);
+
+ AttributeValueType treatmentAttributeValue = new AttributeValueType();
+ treatmentAttributeValue.setDataType(STRING_DATATYPE);
+ treatmentAttributeValue.getContent().add(treatment);
+ assignment.setExpression(new ObjectFactory().createAttributeValue(treatmentAttributeValue));
+
+ adviceExpression.getAttributeAssignmentExpression().add(assignment);
+ adviceExpressions.getAdviceExpression().add(adviceExpression);
+ rule.setAdviceExpressions(adviceExpressions);
+ decisionPolicy.getCombinerParametersOrRuleCombinerParametersOrVariableDefinition().add(rule);
+ policyAdapter.setPolicyData(decisionPolicy);
+
+ }
+
+ // if compound setting the inner apply here
+ protected ApplyType getInnerDecisionApply(String value1Label) {
+ ApplyType decisionApply = new ApplyType();
+ int index = 0;
+ // check the index for the label.
+ for (String labelAttr : dynamicLabelRuleAlgorithms) {
+ if (labelAttr.equals(value1Label)) {
+ String value1 = dynamicFieldOneRuleAlgorithms.get(index);
+ populateDataTypeList(value1);
+
+ // check if the row contains label again
+ for (String labelValue : dynamicLabelRuleAlgorithms) {
+ if (labelValue.equals(value1)) {
+ return getCompoundDecisionApply(index);
+ }
+ }
+
+ // Getting the values from the form.
+ String functionKey = dynamicFieldComboRuleAlgorithms.get(index);
+ String value2 = dynamicFieldTwoRuleAlgorithms.get(index);
+ decisionApply.setFunctionId(getFunctionDefinitionId(functionKey));
+ // if two text field are rule attributes.
+ if ((value1.contains(RULE_VARIABLE)) && (value2.contains(RULE_VARIABLE))) {
+ ApplyType innerDecisionApply1 = new ApplyType();
+ ApplyType innerDecisionApply2 = new ApplyType();
+ AttributeDesignatorType attributeDesignator1 = new AttributeDesignatorType();
+ AttributeDesignatorType attributeDesignator2 = new AttributeDesignatorType();
+ //If selected function is Integer function set integer functionID
+ if(functionKey.toLowerCase().contains("integer")){
+ innerDecisionApply1.setFunctionId(FUNTION_INTEGER_ONE_AND_ONLY );
+ innerDecisionApply2.setFunctionId(FUNTION_INTEGER_ONE_AND_ONLY);
+ attributeDesignator1.setDataType(INTEGER_DATATYPE);
+ attributeDesignator2.setDataType(INTEGER_DATATYPE);
+ } else{
+ //If selected function is not a Integer function set String functionID
+ innerDecisionApply1.setFunctionId(FUNCTION_STRING_ONE_AND_ONLY);
+ innerDecisionApply2.setFunctionId(FUNCTION_STRING_ONE_AND_ONLY);
+ attributeDesignator1.setDataType(STRING_DATATYPE);
+ attributeDesignator2.setDataType(STRING_DATATYPE);
+ }
+ attributeDesignator1.setCategory(CATEGORY_RESOURCE);
+ 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));
+ innerDecisionApply1.getExpression().add(new ObjectFactory().createAttributeDesignator( attributeDesignator1));
+ innerDecisionApply2.getExpression().add(new ObjectFactory().createAttributeDesignator( attributeDesignator2));
+ decisionApply.getExpression().add(new ObjectFactory().createApply(innerDecisionApply1));
+ decisionApply.getExpression().add(new ObjectFactory().createApply(innerDecisionApply2));
+ } else {
+ // if either of one text field is rule attribute.
+ if (!value1.startsWith("S_")) {
+ ApplyType innerDecisionApply = new ApplyType();
+ AttributeDesignatorType attributeDesignator = new AttributeDesignatorType();
+ AttributeValueType decisionConditionAttributeValue = new AttributeValueType();
+
+ if (functionKey.toLowerCase().contains("integer")) {
+ innerDecisionApply.setFunctionId(FUNTION_INTEGER_ONE_AND_ONLY);
+ decisionConditionAttributeValue.setDataType(INTEGER_DATATYPE);
+ attributeDesignator.setDataType(INTEGER_DATATYPE);
+ } else {
+ innerDecisionApply.setFunctionId(FUNCTION_STRING_ONE_AND_ONLY);
+ decisionConditionAttributeValue.setDataType(STRING_DATATYPE);
+ attributeDesignator.setDataType(STRING_DATATYPE);
+ }
+
+ String attributeId = null;
+ String attributeValue = null;
+
+ // Find which textField has rule attribute and set it as
+ // attributeId and the other as attributeValue.
+ attributeId = value1;
+ attributeValue = value2;
+
+ if (attributeId != null) {
+ attributeDesignator.setCategory(CATEGORY_RESOURCE);
+ attributeDesignator.setAttributeId(attributeId);
+ }
+ decisionConditionAttributeValue.getContent().add(attributeValue);
+ innerDecisionApply.getExpression().add(new ObjectFactory().createAttributeDesignator(attributeDesignator));
+ decisionApply.getExpression().add(new ObjectFactory().createAttributeValue(decisionConditionAttributeValue));
+ decisionApply.getExpression().add(new ObjectFactory().createApply(innerDecisionApply));
+ } else {
+ value1 = value1.substring(2, value1.length());
+ VariableReferenceType variableReferenceType = new VariableReferenceType();
+ variableReferenceType.setVariableId(value1);
+
+ String dataType = dataTypeList.get(index);
+
+ AttributeValueType decisionConditionAttributeValue = new AttributeValueType();
+ decisionConditionAttributeValue.setDataType(dataType);
+ decisionConditionAttributeValue.getContent().add(value2);
+ decisionApply.getExpression().add(new ObjectFactory().createVariableReference(variableReferenceType));
+ decisionApply.getExpression().add(new ObjectFactory().createAttributeValue(decisionConditionAttributeValue));
+ }
+ }
+ }
+ index++;
+ }
+ return decisionApply;
+ }
+
+ // if the rule algorithm is multiple compound one setting the apply
+ protected ApplyType getCompoundDecisionApply(int index) {
+ ApplyType decisionApply = new ApplyType();
+ String selectedFunction = dynamicFieldComboRuleAlgorithms.get(index);
+ String value1 = dynamicFieldOneRuleAlgorithms.get(index);
+ String value2 = dynamicFieldTwoRuleAlgorithms.get(index);
+ decisionApply.setFunctionId(getFunctionDefinitionId(selectedFunction));
+ decisionApply.getExpression().add(new ObjectFactory().createApply(getInnerDecisionApply(value1)));
+ decisionApply.getExpression().add(new ObjectFactory().createApply(getInnerDecisionApply(value2)));
+ return decisionApply;
+ }
+
+ private VariableDefinitionType createDynamicVariable(String key, String value, String dataType) {
+ VariableDefinitionType dynamicVariable = new VariableDefinitionType();
+ AttributeValueType dynamicAttributeValue = new AttributeValueType();
+
+ dynamicAttributeValue.setDataType(dataType);
+ dynamicAttributeValue.getContent().add(value);
+
+ dynamicVariable.setVariableId(key);
+ dynamicVariable.setExpression(new ObjectFactory().createAttributeValue(dynamicAttributeValue));
+
+ return dynamicVariable;
+
+ }
+
+ private void populateDataTypeList(String value1) {
+ String dataType = null;
+ if(value1.contains("S_")) {
+ value1 = value1.substring(2, value1.length());
+ DecisionSettings decisionSettings = findDecisionSettingsBySettingId(value1.substring(2, value1.length()));
+ if (decisionSettings != null && "string".equals(decisionSettings.getDatatypeBean().getShortName())) {
+ dataType = STRING_DATATYPE;
+ } else if (decisionSettings != null && "boolean".equals(decisionSettings.getDatatypeBean().getShortName())) {
+ dataType = BOOLEAN_DATATYPE;
+ } else {
+ dataType = INTEGER_DATATYPE;
+ }
+ } else {
+ dataType = "OTHER";
+ }
+
+ dataTypeList.add(dataType);
+ }
+
+
+ private String getDataType(String key) {
+
+ DecisionSettings decisionSettings = findDecisionSettingsBySettingId(key);
+ String dataType = null;
+
+ if (decisionSettings != null && "string".equals(decisionSettings.getDatatypeBean().getShortName())) {
+ dataType = STRING_DATATYPE;
+ } else if (decisionSettings != null && "boolean".equals(decisionSettings.getDatatypeBean().getShortName())) {
+ dataType = BOOLEAN_DATATYPE;
+ } else {
+ dataType = INTEGER_DATATYPE;
+ }
+
+ return dataType;
+ }
+
+ @Override
+ public Object getCorrectPolicyDataObject() {
+ return policyAdapter.getData();
+ }
+
+ public String getFunctionDefinitionId(String key){
+ FunctionDefinition object = (FunctionDefinition) commonClassDao.getDataById(FunctionDefinition.class, "shortname", 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/FirewallConfigPolicy.java b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/FirewallConfigPolicy.java
index e747edb9b..6cadc77a1 100644
--- a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/FirewallConfigPolicy.java
+++ b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/FirewallConfigPolicy.java
@@ -84,1211 +84,1211 @@ import oasis.names.tc.xacml._3_0.core.schema.wd_17.TargetType;
public class FirewallConfigPolicy extends Policy {
- private static final Logger LOGGER = FlexLogger.getLogger(FirewallConfigPolicy.class);
+ private static final Logger LOGGER = FlexLogger.getLogger(FirewallConfigPolicy.class);
- public FirewallConfigPolicy() {
- super();
- }
+ public FirewallConfigPolicy() {
+ super();
+ }
- public FirewallConfigPolicy(PolicyRestAdapter policyAdapter) {
- this.policyAdapter = policyAdapter;
- this.policyAdapter.setConfigType(policyAdapter.getConfigType());
- }
+ public FirewallConfigPolicy(PolicyRestAdapter policyAdapter) {
+ this.policyAdapter = policyAdapter;
+ this.policyAdapter.setConfigType(policyAdapter.getConfigType());
+ }
- // Saving the Configurations file at server location for config policy.
- protected void saveConfigurations(String policyName, String jsonBody) {
- String configurationName = policyName;
- if(configurationName.endsWith(".xml")){
+ // Saving the Configurations file at server location for config policy.
+ protected void saveConfigurations(String policyName, String jsonBody) {
+ String configurationName = policyName;
+ if(configurationName.endsWith(".xml")){
configurationName = configurationName.replace(".xml", "");
- }
+ }
String fileName = CONFIG_HOME + File.separator + configurationName + ".json";
- try(BufferedWriter bw = new BufferedWriter(new FileWriter(fileName))){
- bw.write(jsonBody);
- if (LOGGER.isDebugEnabled()) {
- LOGGER.debug("Configuration is succesfully saved");
- }
- } catch (IOException e) {
- LOGGER.error("Save of configuration to file" +fileName+ "failed",e);
- }
- }
-
+ try(BufferedWriter bw = new BufferedWriter(new FileWriter(fileName))){
+ bw.write(jsonBody);
+ if (LOGGER.isDebugEnabled()) {
+ LOGGER.debug("Configuration is succesfully saved");
+ }
+ } catch (IOException e) {
+ LOGGER.error("Save of configuration to file" +fileName+ "failed",e);
+ }
+ }
+
//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));
- return new String(encoded, encoding);
- }
-
- @Override
- public Map<String, String> savePolicies() throws PAPException {
- Map<String, String> successMap = new HashMap<>();
- if(isPolicyExists()){
- successMap.put("EXISTS", "This Policy already exist on the PAP");
- return successMap;
- }
- if(!isPreparedToSave()){
- prepareToSave();
- }
-
- // Until here we prepared the data and here calling the method to create xml.
- Path newPolicyPath = null;
- newPolicyPath = Paths.get(policyAdapter.getNewFileName());
- Boolean dbIsUpdated = false;
- if (policyAdapter.getApiflag() != null && "admin".equalsIgnoreCase(policyAdapter.getApiflag())){
- if (policyAdapter.isEditPolicy()) {
- dbIsUpdated = updateFirewallDictionaryData(policyAdapter.getJsonBody(), policyAdapter.getPrevJsonBody());
- } else {
- try {
+ static String readFile(String path, Charset encoding) throws IOException {
+ byte[] encoded = Files.readAllBytes(Paths.get(path));
+ return new String(encoded, encoding);
+ }
+
+ @Override
+ public Map<String, String> savePolicies() throws PAPException {
+ Map<String, String> successMap = new HashMap<>();
+ if(isPolicyExists()){
+ successMap.put("EXISTS", "This Policy already exist on the PAP");
+ return successMap;
+ }
+ if(!isPreparedToSave()){
+ prepareToSave();
+ }
+
+ // Until here we prepared the data and here calling the method to create xml.
+ Path newPolicyPath = null;
+ newPolicyPath = Paths.get(policyAdapter.getNewFileName());
+ Boolean dbIsUpdated = false;
+ if (policyAdapter.getApiflag() != null && "admin".equalsIgnoreCase(policyAdapter.getApiflag())){
+ if (policyAdapter.isEditPolicy()) {
+ dbIsUpdated = updateFirewallDictionaryData(policyAdapter.getJsonBody(), policyAdapter.getPrevJsonBody());
+ } else {
+ try {
dbIsUpdated = insertFirewallDicionaryData(policyAdapter.getJsonBody());
} catch (SQLException e) {
throw new PAPException(e);
}
- }
- } else {
- dbIsUpdated = true;
- }
-
- if(dbIsUpdated) {
- successMap = createPolicy(newPolicyPath,getCorrectPolicyDataObject());
- } else {
- PolicyLogger.error("Failed to Update the Database Dictionary Tables.");
-
- //remove the new json file
- String jsonBody = policyAdapter.getPrevJsonBody();
- if (jsonBody!=null){
- saveConfigurations(policyName, jsonBody);
- } else {
- saveConfigurations(policyName, "");
- }
- successMap.put("fwdberror", "DB UPDATE");
- }
-
- 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{
-
- 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 marshaling.
- if ("Config".equals(policyAdapter.getPolicyType())) {
- PolicyType policyConfig = new PolicyType();
-
- policyConfig.setVersion(Integer.toString(version));
- policyConfig.setPolicyId(policyID);
- policyConfig.setTarget(new TargetType());
- policyAdapter.setData(policyConfig);
- }
- policyName = policyAdapter.getNewFileName();
-
- //String oldPolicyName = policyName.replace(".xml", "");
- String scope = policyName.substring(0, policyName.indexOf('.'));
- String dbPolicyName = policyName.substring(policyName.indexOf('.')+1).replace(".xml", "");
-
- int oldversion = Integer.parseInt(dbPolicyName.substring(dbPolicyName.lastIndexOf('.')+1));
- dbPolicyName = dbPolicyName.substring(0, dbPolicyName.lastIndexOf('.')+1);
- if(oldversion > 1){
- oldversion = oldversion - 1;
- dbPolicyName = dbPolicyName + oldversion + ".xml";
- }
- EntityManager em = XACMLPapServlet.getEmf().createEntityManager();
- Query createPolicyQuery = em.createQuery("SELECT p FROM PolicyEntity p WHERE p.scope=:scope AND p.policyName=:policyName");
- createPolicyQuery.setParameter("scope", scope);
- createPolicyQuery.setParameter("policyName", dbPolicyName);
- List<?> createPolicyQueryList = createPolicyQuery.getResultList();
- if(!createPolicyQueryList.isEmpty()){
- PolicyEntity entitydata = (PolicyEntity) createPolicyQueryList.get(0);
- policyAdapter.setPrevJsonBody(entitydata.getConfigurationData().getConfigBody());
- }
- em.close();
- if (policyAdapter.getData() != null) {
- String jsonBody = policyAdapter.getJsonBody();
- saveConfigurations(policyName, jsonBody);
-
- // Make sure the filename ends with an extension
- if (!policyName.endsWith(".xml")) {
- policyName = policyName + ".xml";
- }
-
- PolicyType configPolicy = (PolicyType) policyAdapter.getData();
-
- configPolicy.setDescription(policyAdapter.getPolicyDescription());
-
- configPolicy.setRuleCombiningAlgId(policyAdapter.getRuleCombiningAlgId());
-
- 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());
- }
- allOfOne.getMatch().add(createMatch("PolicyName", name));
- AllOfType allOf = new AllOfType();
-
- // Match for ConfigName
- allOf.getMatch().add(createMatch("ConfigName", policyAdapter.getConfigName()));
- // Match for riskType
- allOf.getMatch().add(createDynamicMatch("RiskType", policyAdapter.getRiskType()));
- // Match for riskLevel
- allOf.getMatch().add(createDynamicMatch("RiskLevel", String.valueOf(policyAdapter.getRiskLevel())));
- // Match for riskguard
- allOf.getMatch().add(createDynamicMatch("guard", policyAdapter.getGuard()));
- // Match for ttlDate
- allOf.getMatch().add(createDynamicMatch("TTLDate", policyAdapter.getTtlDate()));
- AnyOfType anyOf = new AnyOfType();
- anyOf.getAllOf().add(allOfOne);
- anyOf.getAllOf().add(allOf);
-
- TargetType target = new TargetType();
- target.getAnyOf().add(anyOf);
-
- // Adding the target to the policy element
- configPolicy.setTarget((TargetType) target);
-
- RuleType rule = new RuleType();
- rule.setRuleId(policyAdapter.getRuleID());
- rule.setEffect(EffectType.PERMIT);
-
- // Create Target in Rule
- AllOfType allOfInRule = new AllOfType();
-
- // Creating match for ACCESS in rule target
- MatchType accessMatch = new MatchType();
- AttributeValueType accessAttributeValue = new AttributeValueType();
- accessAttributeValue.setDataType(STRING_DATATYPE);
- accessAttributeValue.getContent().add("ACCESS");
- accessMatch.setAttributeValue(accessAttributeValue);
- AttributeDesignatorType accessAttributeDesignator = new AttributeDesignatorType();
- URI accessURI = null;
- try {
- accessURI = new URI(ACTION_ID);
- } catch (URISyntaxException e) {
- PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, e, "FirewallConfigPolicy", "Exception creating ACCESS URI");
- }
- accessAttributeDesignator.setCategory(CATEGORY_ACTION);
- accessAttributeDesignator.setDataType(STRING_DATATYPE);
- accessAttributeDesignator.setAttributeId(new IdentifierImpl(accessURI).stringValue());
- accessMatch.setAttributeDesignator(accessAttributeDesignator);
- accessMatch.setMatchId(FUNCTION_STRING_EQUAL_IGNORE);
-
- // Creating Config Match in rule Target
- MatchType configMatch = new MatchType();
- AttributeValueType configAttributeValue = new AttributeValueType();
- configAttributeValue.setDataType(STRING_DATATYPE);
-
- configAttributeValue.getContent().add("Config");
-
- configMatch.setAttributeValue(configAttributeValue);
- AttributeDesignatorType configAttributeDesignator = new AttributeDesignatorType();
- URI configURI = null;
- try {
- configURI = new URI(RESOURCE_ID);
- } catch (URISyntaxException e) {
- PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, e, "FirewallConfigPolicy", "Exception creating Config URI");
- }
-
- configAttributeDesignator.setCategory(CATEGORY_RESOURCE);
- configAttributeDesignator.setDataType(STRING_DATATYPE);
- configAttributeDesignator.setAttributeId(new IdentifierImpl(configURI).stringValue());
- configMatch.setAttributeDesignator(configAttributeDesignator);
- configMatch.setMatchId(FUNCTION_STRING_EQUAL_IGNORE);
-
- allOfInRule.getMatch().add(accessMatch);
- allOfInRule.getMatch().add(configMatch);
-
- AnyOfType anyOfInRule = new AnyOfType();
- anyOfInRule.getAllOf().add(allOfInRule);
-
- TargetType targetInRule = new TargetType();
- targetInRule.getAnyOf().add(anyOfInRule);
-
- rule.setTarget(targetInRule);
- rule.setAdviceExpressions(getAdviceExpressions(version, policyName));
-
- configPolicy.getCombinerParametersOrRuleCombinerParametersOrVariableDefinition().add(rule);
- policyAdapter.setPolicyData(configPolicy);
-
- } else {
- PolicyLogger.error("Unsupported data object." + policyAdapter.getData().getClass().getCanonicalName());
- }
- setPreparedToSave(true);
- return true;
- }
-
- // Data required for Advice part is setting here.
- private AdviceExpressionsType getAdviceExpressions(int version, String fileName) {
-
- //Firewall Config ID Assignment
- AdviceExpressionsType advices = new AdviceExpressionsType();
- AdviceExpressionType advice = new AdviceExpressionType();
- advice.setAdviceId("firewallConfigID");
- advice.setAppliesTo(EffectType.PERMIT);
- // For Configuration
- AttributeAssignmentExpressionType assignment1 = new AttributeAssignmentExpressionType();
- assignment1.setAttributeId("type");
- assignment1.setCategory(CATEGORY_RESOURCE);
- assignment1.setIssuer("");
- AttributeValueType configNameAttributeValue = new AttributeValueType();
- configNameAttributeValue.setDataType(STRING_DATATYPE);
- configNameAttributeValue.getContent().add("Configuration");
- assignment1.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue));
- advice.getAttributeAssignmentExpression().add(assignment1);
-
- // For Config file Url if configurations are provided.
- //URL ID Assignment
- AttributeAssignmentExpressionType assignment2 = new AttributeAssignmentExpressionType();
- assignment2.setAttributeId("URLID");
- assignment2.setCategory(CATEGORY_RESOURCE);
- assignment2.setIssuer("");
- AttributeValueType AttributeValue = new AttributeValueType();
- AttributeValue.setDataType(URI_DATATYPE);
- if (policyName.endsWith(".xml")) {
- policyName = policyName.substring(0, policyName.lastIndexOf(".xml"));
- }
- String content = CONFIG_URL + "/Config/" + policyName + ".json";
-
- AttributeValue.getContent().add(content);
- assignment2.setExpression(new ObjectFactory().createAttributeValue(AttributeValue));
- advice.getAttributeAssignmentExpression().add(assignment2);
-
- //Policy Name Assignment
- AttributeAssignmentExpressionType assignment3 = new AttributeAssignmentExpressionType();
- assignment3.setAttributeId("PolicyName");
- assignment3.setCategory(CATEGORY_RESOURCE);
- assignment3.setIssuer("");
- AttributeValueType attributeValue3 = new AttributeValueType();
- attributeValue3.setDataType(STRING_DATATYPE);
- fileName = FilenameUtils.removeExtension(fileName);
- fileName = fileName + ".xml";
- String name = fileName.substring(fileName.lastIndexOf("\\") + 1, fileName.length());
- if ((name == null) || (name.equals(""))) {
- name = fileName.substring(fileName.lastIndexOf("/") + 1, fileName.length());
- }
- attributeValue3.getContent().add(name);
- assignment3.setExpression(new ObjectFactory().createAttributeValue(attributeValue3));
- advice.getAttributeAssignmentExpression().add(assignment3);
-
- //Version Number Assignment
- AttributeAssignmentExpressionType assignment4 = new AttributeAssignmentExpressionType();
- assignment4.setAttributeId("VersionNumber");
- assignment4.setCategory(CATEGORY_RESOURCE);
- assignment4.setIssuer("");
- AttributeValueType configNameAttributeValue4 = new AttributeValueType();
- configNameAttributeValue4.setDataType(STRING_DATATYPE);
- configNameAttributeValue4.getContent().add(Integer.toString(version));
- assignment4.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue4));
- advice.getAttributeAssignmentExpression().add(assignment4);
-
- //Onap Name Assignment
- AttributeAssignmentExpressionType assignment5 = new AttributeAssignmentExpressionType();
- assignment5.setAttributeId("matching:" + ONAPID);
- assignment5.setCategory(CATEGORY_RESOURCE);
- assignment5.setIssuer("");
- AttributeValueType configNameAttributeValue5 = new AttributeValueType();
- configNameAttributeValue5.setDataType(STRING_DATATYPE);
- assignment5.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue5));
- advice.getAttributeAssignmentExpression().add(assignment5);
-
- //Config Name Assignment
- AttributeAssignmentExpressionType assignment6 = new AttributeAssignmentExpressionType();
- assignment6.setAttributeId("matching:" + CONFIGID);
- assignment6.setCategory(CATEGORY_RESOURCE);
- assignment6.setIssuer("");
- AttributeValueType configNameAttributeValue6 = new AttributeValueType();
- configNameAttributeValue6.setDataType(STRING_DATATYPE);
- configNameAttributeValue6.getContent().add(policyAdapter.getConfigName());
- assignment6.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue6));
- advice.getAttributeAssignmentExpression().add(assignment6);
-
- //Risk Attributes
- AttributeAssignmentExpressionType assignment7 = new AttributeAssignmentExpressionType();
- assignment7.setAttributeId("RiskType");
- assignment7.setCategory(CATEGORY_RESOURCE);
- assignment7.setIssuer("");
-
- AttributeValueType configNameAttributeValue7 = new AttributeValueType();
- configNameAttributeValue7.setDataType(STRING_DATATYPE);
- configNameAttributeValue7.getContent().add(policyAdapter.getRiskType());
- assignment7.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue7));
-
- advice.getAttributeAssignmentExpression().add(assignment7);
-
- AttributeAssignmentExpressionType assignment8 = new AttributeAssignmentExpressionType();
- assignment8.setAttributeId("RiskLevel");
- assignment8.setCategory(CATEGORY_RESOURCE);
- assignment8.setIssuer("");
-
- AttributeValueType configNameAttributeValue8 = new AttributeValueType();
- configNameAttributeValue8.setDataType(STRING_DATATYPE);
- configNameAttributeValue8.getContent().add(policyAdapter.getRiskLevel());
- assignment8.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue8));
-
- advice.getAttributeAssignmentExpression().add(assignment8);
-
- AttributeAssignmentExpressionType assignment9 = new AttributeAssignmentExpressionType();
- assignment9.setAttributeId("guard");
- assignment9.setCategory(CATEGORY_RESOURCE);
- assignment9.setIssuer("");
-
- AttributeValueType configNameAttributeValue9 = new AttributeValueType();
- configNameAttributeValue9.setDataType(STRING_DATATYPE);
- configNameAttributeValue9.getContent().add(policyAdapter.getGuard());
- assignment9.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue9));
-
- advice.getAttributeAssignmentExpression().add(assignment9);
-
- AttributeAssignmentExpressionType assignment10 = new AttributeAssignmentExpressionType();
- assignment10.setAttributeId("TTLDate");
- assignment10.setCategory(CATEGORY_RESOURCE);
- assignment10.setIssuer("");
-
- AttributeValueType configNameAttributeValue10 = new AttributeValueType();
- configNameAttributeValue10.setDataType(STRING_DATATYPE);
- configNameAttributeValue10.getContent().add(policyAdapter.getTtlDate());
- assignment10.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue10));
-
- advice.getAttributeAssignmentExpression().add(assignment10);
- advices.getAdviceExpression().add(advice);
- return advices;
- }
-
-
- private Boolean insertFirewallDicionaryData (String jsonBody) throws SQLException {
- CommonClassDaoImpl dbConnection = new CommonClassDaoImpl();
- JsonObject json = null;
- if (jsonBody != null) {
-
- //Read jsonBody to JsonObject
- json = stringToJson(jsonBody);
-
- JsonArray firewallRules = null;
- JsonArray serviceGroup = null;
- JsonArray addressGroup = null;
- //insert data into tables
- try {
- firewallRules = json.getJsonArray("firewallRuleList");
- serviceGroup = json.getJsonArray("serviceGroups");
- addressGroup = json.getJsonArray("addressGroups");
- /*
- * Inserting firewallRuleList data into the Terms, SecurityZone, and Action tables
- */
- if (firewallRules != null) {
- for(int i = 0;i<firewallRules.size();i++) {
- /*
- * Populate ArrayLists with values from the JSON
- */
- //create the JSON object from the JSON Array for each iteration through the for loop
- JsonObject ruleListobj = firewallRules.getJsonObject(i);
-
- //get values from JSON fields of firewallRulesList Array
- String ruleName = ruleListobj.get("ruleName").toString();
- String action = ruleListobj.get("action").toString();
- String description = ruleListobj.get("description").toString();
- List<Object> result = dbConnection.getDataById(TermList.class, "termName", ruleName);
- if(result != null && !result.isEmpty()){
- TermList termEntry = (TermList) result.get(0);
- dbConnection.delete(termEntry);
- }
-
- //getting fromZone Array field from the firewallRulesList
- JsonArray fromZoneArray = ruleListobj.getJsonArray("fromZones");
- String fromZoneString = null;
-
- for (int fromZoneIndex = 0;fromZoneIndex<fromZoneArray.size(); fromZoneIndex++) {
- String value = fromZoneArray.get(fromZoneIndex).toString();
- value = value.replace("\"", "");
- if (fromZoneString != null) {
- fromZoneString = fromZoneString.concat(",").concat(value);
- } else {
- fromZoneString = value;
- }
- }
- String fromZoneInsert = "'"+fromZoneString+"'";
-
- //getting toZone Array field from the firewallRulesList
- JsonArray toZoneArray = ruleListobj.getJsonArray("toZones");
- String toZoneString = null;
- for (int toZoneIndex = 0; toZoneIndex<toZoneArray.size(); toZoneIndex++) {
- String value = toZoneArray.get(toZoneIndex).toString();
- value = value.replace("\"", "");
- if (toZoneString != null) {
- toZoneString = toZoneString.concat(",").concat(value);
- } else {
- toZoneString = value;
- }
- }
- String toZoneInsert = "'"+toZoneString+"'";
-
- //getting sourceList Array fields from the firewallRulesList
- JsonArray srcListArray = ruleListobj.getJsonArray("sourceList");
- String srcListString = null;
- for (int srcListIndex = 0; srcListIndex< srcListArray.size(); srcListIndex++) {
- JsonObject srcListObj = srcListArray.getJsonObject(srcListIndex);
- String type = srcListObj.get("type").toString().replace("\"", "");
-
- String value = null;
- if(type.equals("REFERENCE")||type.equals("GROUP")){
- value = srcListObj.get("name").toString();
- } else if (type.equalsIgnoreCase("ANY")){
- value = null;
- } else {
- value = srcListObj.get("value").toString();
- }
-
- if (value!=null){
- value = value.replace("\"", "");
- }
-
- if (srcListString != null) {
- srcListString = srcListString.concat(",").concat(value);
-
- } else {
- srcListString = value;
- }
-
- }
- String srcListInsert = "'"+srcListString+"'";
-
- //getting destinationList Array fields from the firewallRulesList
- JsonArray destListArray = ruleListobj.getJsonArray("destinationList");
- String destListString = null;
- for (int destListIndex = 0; destListIndex <destListArray.size(); destListIndex++) {
- JsonObject destListObj = destListArray.getJsonObject(destListIndex);
- String type = destListObj.get("type").toString().replace("\"", "");
-
- String value = null;
- if(type.equals("REFERENCE")||type.equals("GROUP")){
- value = destListObj.get("name").toString();
- } else if (type.equalsIgnoreCase("ANY")){
- value = null;
- } else {
- value = destListObj.get("value").toString();
- }
-
- if (value!=null){
- value = value.replace("\"", "");
- }
-
- if (destListString != null) {
- destListString = destListString.concat(",").concat(value);
- } else {
- destListString = value;
- }
- }
- String destListInsert = "'"+destListString+"'";
-
- //getting destServices Array fields from the firewallRulesList
- JsonArray destServicesArray = ruleListobj.getJsonArray("destServices");
- String destPortListString = null;
- for (int destPortListIndex = 0; destPortListIndex < destServicesArray.size(); destPortListIndex++) {
- JsonObject destServicesObj = destServicesArray.getJsonObject(destPortListIndex);
- String type = destServicesObj.get("type").toString().replace("\"", "");
-
- String value = null;
- if(type.equals("REFERENCE")||type.equals("GROUP")){
- value = destServicesObj.get("name").toString();
- } else if (type.equalsIgnoreCase("ANY")){
- value = null;
- } else {
- value = destServicesObj.get("value").toString();
- }
-
- if (value!=null){
- value = value.replace("\"", "");
- }
-
- if (destPortListString != null) {
- destPortListString = destPortListString.concat(",").concat(value);
- } else {
- destPortListString = value;
- }
- }
- String destPortListInsert = "'"+destPortListString+"'";
-
- /*
- * Create Queries to INSERT data into database tables and execute
- */
- UserInfo userInfo = new UserInfo();
- userInfo.setUserLoginId("API");
- userInfo.setUserName("API");
-
- TermList termEntry = new TermList();
- termEntry.setTermName(ruleName);
- termEntry.setSrcIPList(srcListInsert);
- termEntry.setDestIPList(destListInsert);
- termEntry.setProtocolList("null");
- termEntry.setPortList("null");
- termEntry.setSrcPortList("null");
- termEntry.setDestPortList(destPortListInsert);
- termEntry.setAction(action);
- termEntry.setDescription(description);
- termEntry.setFromZones(fromZoneInsert);
- termEntry.setToZones(toZoneInsert);
- termEntry.setUserCreatedBy(userInfo);
- dbConnection.save(termEntry);
-
- ActionList actionEntry = new ActionList();
- actionEntry.setActionName(action);
- actionEntry.setDescription(action);
- dbConnection.save(actionEntry);
- }
- }
-
- /*
- * Inserting serviceGroups data into the ServiceGroup, ServiceList, ProtocolList, and PortList tables
- */
- if (serviceGroup != null) {
- for(int i = 0; i < serviceGroup.size() ; i++) {
- /*
- * Populate ArrayLists with values from the JSON
- */
- //create the JSON object from the JSON Array for each iteration through the for loop
- JsonObject svcGroupListobj = serviceGroup.getJsonObject(i);
-
- String serviceListName = svcGroupListobj.get("name").toString();
- String description = null;
- if (svcGroupListobj.containsKey("description")){
- description = svcGroupListobj.get("description").toString();
- }
-
- //getting members Array from the serviceGroup
- JsonArray membersArray = svcGroupListobj.getJsonArray("members");
-
- //String type = svcGroupListobj.get("type").toString();
- Boolean isServiceGroup = false;
- if (membersArray!=null){
- String membersType = membersArray.getJsonObject(0).get("type").toString();
- if (membersType.contains("REFERENCE")) {
- isServiceGroup = true;
- }
- }
-
- //Insert values into GROUPSERVICELIST table if name begins with Group
- if (isServiceGroup) {
- String name = null;
- for (int membersIndex = 0; membersIndex< membersArray.size(); membersIndex++) {
- JsonObject membersObj = membersArray.getJsonObject(membersIndex);
- //String value = membersObj.get("name").toString();
- String type = membersObj.get("type").toString().replace("\"", "");
-
- String value = null;
- if(type.equals("REFERENCE")||type.equals("GROUP")||type.equals("SERVICE")){
- value = membersObj.get("name").toString();
- } else if (type.equalsIgnoreCase("ANY")){
- value = null;
- } else {
- value = membersObj.get("value").toString();
- }
-
- if(value != null){
- value = value.replace("\"", "");
- }
-
- if (name != null) {
- name = name.concat(",").concat(value);
- } else {
- name = value;
- }
- }
- String nameInsert = "'"+name+"'";
- GroupServiceList groupServiceEntry = new GroupServiceList();
- groupServiceEntry.setGroupName(serviceListName);
- groupServiceEntry.setServiceList(nameInsert);
- dbConnection.save(groupServiceEntry);
- } else { //Insert JSON data serviceList table, protollist table, and portlist table
- String type = svcGroupListobj.get("type").toString();
- String transportProtocol = svcGroupListobj.get("transportProtocol").toString();
- String ports = svcGroupListobj.get("ports").toString();
-
- /*
- * Create Queries to INSERT data into database table and execute
- */
- ServiceList serviceListEntry = new ServiceList();
- serviceListEntry.setServiceName(serviceListName);
- serviceListEntry.setServiceDescription(description);
- serviceListEntry.setServiceType(type);
- serviceListEntry.setServiceTransProtocol(transportProtocol);
- serviceListEntry.setServiceAppProtocol("null");
- serviceListEntry.setServicePorts(ports);
- dbConnection.save(serviceListEntry);
-
- ProtocolList protocolEntry = new ProtocolList();
- protocolEntry.setProtocolName(transportProtocol);
- protocolEntry.setDescription(transportProtocol);
- dbConnection.save(protocolEntry);
-
- PortList portListEntry = new PortList();
- portListEntry.setPortName(ports);
- portListEntry.setDescription(ports);
- dbConnection.save(portListEntry);
- }
- }
- }
-
- /*
- * Inserting addressGroup data into the ADDRESSGROUP table
- */
- if (addressGroup != null) {
- for(int i = 0; i < addressGroup.size(); i++) {
- /*
- * Populate ArrayLists with values from the JSON
- */
- //create the JSON object from the JSON Array for each iteration through the for loop
- JsonObject addressGroupObj = addressGroup.getJsonObject(i);
-
- //create JSON array for members
- JsonArray membersArray = addressGroupObj.getJsonArray("members");
- String addressGroupName = addressGroupObj.get("name").toString();
-
- String description = null;
- if (addressGroupObj.containsKey("description")){
- description = addressGroupObj.get("description").toString();
- }
-
- String prefixIP = null;
- String type = null;
- for (int membersIndex = 0; membersIndex < membersArray.size(); membersIndex++) {
- JsonObject membersObj = membersArray.getJsonObject(membersIndex);
- //String value = membersObj.get("value").toString();
- type = membersObj.get("type").toString().replace("\"", "");
-
- String value = null;
- if(type.equals("REFERENCE")||type.equals("GROUP")||type.equals("SERVICE")){
- value = membersObj.get("name").toString();
- } else if (type.equalsIgnoreCase("ANY")){
- value = null;
- } else {
- value = membersObj.get("value").toString();
- }
-
- if(value != null){
- value = value.replace("\"", "");
- }
-
- if (prefixIP != null) {
- prefixIP = prefixIP.concat(",").concat(value);
- } else {
- prefixIP = value;
- }
- }
- String prefixList = "'"+prefixIP+"'";
-
- Boolean isAddressGroup = type.contains("REFERENCE");
-
- if (isAddressGroup) {
- AddressGroup addressGroupEntry = new AddressGroup();
- addressGroupEntry.setGroupName(addressGroupName);
- addressGroupEntry.setDescription(description);
- addressGroupEntry.setServiceList(prefixList);
- dbConnection.save(addressGroupEntry);
- } else {
- PrefixList prefixListEntry = new PrefixList();
- prefixListEntry.setPrefixListName(addressGroupName);
- prefixListEntry.setDescription(description);
- prefixListEntry.setPrefixListValue(prefixList);
- dbConnection.save(prefixListEntry);
- }
- }
- }
-
- /*
- * Remove duplicate values from 'lookup' dictionary tables
- */
- //ProtocolList Table
- String protoDelete = "DELETE FROM protocollist USING protocollist, protocollist p1 "
- + "WHERE protocollist.id > p1.id AND protocollist.protocolname = p1.protocolname;";
- dbConnection.updateQuery(protoDelete);
-
- //PortList Table
- String portListDelete = "DELETE FROM portlist USING portlist, portlist p1 "
- + "WHERE portlist.id > p1.id AND portlist.portname = p1.portname; ";
- dbConnection.updateQuery(portListDelete);
-
- //PrefixList Table
- String prefixListDelete = "DELETE FROM prefixlist USING prefixlist, prefixlist p1 "
- + "WHERE prefixlist.id > p1.id AND prefixlist.pl_name = p1.pl_name AND "
- + "prefixlist.pl_value = p1.pl_value AND prefixlist.description = p1.description; ";
- dbConnection.updateQuery(prefixListDelete);
-
- //GroupServiceList
- String groupServiceDelete = "DELETE FROM groupservicelist USING groupservicelist, groupservicelist g1 "
- + "WHERE groupservicelist.id > g1.id AND groupservicelist.name = g1.name AND "
- + "groupservicelist.serviceList = g1.serviceList; ";
- dbConnection.updateQuery(groupServiceDelete);
- }catch (Exception e) {
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, "FirewallConfigPolicy", "Exception getting Json values");
- return false;
- }
- return true;
-
- } else {
- return false;
- }
-
- }
-
-
- private Boolean updateFirewallDictionaryData(String jsonBody, String prevJsonBody) {
- CommonClassDaoImpl dbConnection = new CommonClassDaoImpl();
- JsonObject oldJson = null;
- JsonObject newJson = null;
-
- if (jsonBody != null || prevJsonBody != null) {
-
- oldJson = stringToJson(prevJsonBody);
- newJson = stringToJson(jsonBody);
-
- //if no changes to the json then return true
- if (oldJson != null && oldJson.equals(newJson)) {
- return true;
- }
-
- JsonArray firewallRules = null;
- JsonArray serviceGroup = null;
- JsonArray addressGroup = null;
-
- firewallRules = newJson.getJsonArray("firewallRuleList");
- serviceGroup = newJson.getJsonArray("serviceGroups");
- addressGroup = newJson.getJsonArray("addressGroups");
-
- //insert data into tables
- try {
- JsonNode jsonDiff = createPatch(jsonBody, prevJsonBody);
-
- for (int i = 0; i<jsonDiff.size(); i++) {
- //String path = jsonDiff.get(i).asText();
- String jsonpatch = jsonDiff.get(i).toString();
-
- JsonObject patchObj = stringToJson(jsonpatch);
-
- String path = patchObj.get("path").toString().replace('"', ' ').trim();
-
- if (path.contains("firewallRuleList")) {
- /*
- * Inserting firewallRuleList data into the Terms, SecurityZone, and Action tables
- */
- for(int ri = 0; ri < firewallRules.size(); ri++) {
- /*
- * Populate ArrayLists with values from the JSON
- */
- //create the JSON object from the JSON Array for each iteration through the for loop
- JsonObject ruleListobj = firewallRules.getJsonObject(ri);
-
- //get values from JSON fields of firewallRulesList Array
- String ruleName = ruleListobj.get("ruleName").toString().replace('"', '\'');
- String action = ruleListobj.get("action").toString().replace('"', '\'');
- String description = ruleListobj.get("description").toString().replace('"', '\'');
-
- List<Object> result = dbConnection.getDataById(TermList.class, "termName", ruleName);
- if(result != null && !result.isEmpty()){
- TermList termEntry = (TermList) result.get(0);
- dbConnection.delete(termEntry);
- }
-
- //getting fromZone Array field from the firewallRulesList
- JsonArray fromZoneArray = ruleListobj.getJsonArray("fromZones");
- String fromZoneString = null;
-
- for (int fromZoneIndex = 0; fromZoneIndex<fromZoneArray.size() ; fromZoneIndex++) {
- String value = fromZoneArray.get(fromZoneIndex).toString();
- value = value.replace("\"", "");
-
- if (fromZoneString != null) {
- fromZoneString = fromZoneString.concat(",").concat(value);
-
- } else {
- fromZoneString = value;
- }
-
- }
- String fromZoneInsert = "'"+fromZoneString+"'";
-
- //getting toZone Array field from the firewallRulesList
- JsonArray toZoneArray = ruleListobj.getJsonArray("toZones");
- String toZoneString = null;
-
-
- for (int toZoneIndex = 0; toZoneIndex < toZoneArray.size(); toZoneIndex++) {
- String value = toZoneArray.get(toZoneIndex).toString();
- value = value.replace("\"", "");
-
- if (toZoneString != null) {
- toZoneString = toZoneString.concat(",").concat(value);
-
- } else {
- toZoneString = value;
- }
-
- }
- String toZoneInsert = "'"+toZoneString+"'";
- //getting sourceList Array fields from the firewallRulesList
- JsonArray srcListArray = ruleListobj.getJsonArray("sourceList");
- String srcListString = null;
- for (int srcListIndex = 0; srcListIndex<srcListArray.size(); srcListIndex++) {
- JsonObject srcListObj = srcListArray.getJsonObject(srcListIndex);
- String type = srcListObj.get("type").toString().replace("\"", "");
-
- String value = null;
- if(type.equals("REFERENCE")||type.equals("GROUP")){
- value = srcListObj.get("name").toString();
- } else if (type.equalsIgnoreCase("ANY")){
- value = null;
- } else {
- value = srcListObj.get("value").toString();
- }
-
- if(value != null){
- value = value.replace("\"", "");
- }
-
- if (srcListString != null) {
- srcListString = srcListString.concat(",").concat(value);
-
- } else {
- srcListString = value;
- }
-
- }
- String srcListInsert = "'"+srcListString+"'";
-
- //getting destinationList Array fields from the firewallRulesList
- JsonArray destListArray = ruleListobj.getJsonArray("destinationList");
- String destListString = null;
- for (int destListIndex = 0; destListIndex<destListArray.size(); destListIndex ++) {
- JsonObject destListObj = destListArray.getJsonObject(destListIndex);
- String type = destListObj.get("type").toString().replace("\"", "");
-
- String value = null;
- if(type.equals("REFERENCE")||type.equals("GROUP")){
- value = destListObj.get("name").toString();
- } else if (type.equalsIgnoreCase("ANY")){
- value = null;
- } else {
- value = destListObj.get("value").toString();
- }
-
- if(value != null){
- value = value.replace("\"", "");
- }
-
- if (destListString != null) {
- destListString = destListString.concat(",").concat(value);
- } else {
- destListString = value;
- }
- }
- String destListInsert = "'"+destListString+"'";
-
- //getting destServices Array fields from the firewallRulesList
- JsonArray destServicesArray = ruleListobj.getJsonArray("destServices");
- String destPortListString = null;
- for (int destPortListIndex = 0; destPortListIndex < destServicesArray.size(); destPortListIndex++) {
- JsonObject destServicesObj = destServicesArray.getJsonObject(destPortListIndex);
- String type = destServicesObj.get("type").toString().replace("\"", "");
-
- String value = null;
- if(type.equals("REFERENCE")||type.equals("GROUP")){
- value = destServicesObj.get("name").toString();
- } else if (type.equalsIgnoreCase("ANY")){
- value = null;
- } else {
- value = destServicesObj.get("value").toString();
- }
-
- if(value != null){
- value = value.replace("\"", "");
- }
-
- if (destPortListString != null) {
- destPortListString = destPortListString.concat(",").concat(value);
- } else {
- destPortListString = value;
- }
- }
- String destPortListInsert = "'"+destPortListString+"'";
-
- /*
- * Create Queries to INSERT data into database tables and execute
- */
- UserInfo userInfo = new UserInfo();
- userInfo.setUserLoginId("API");
- userInfo.setUserName("API");
-
- TermList termEntry = new TermList();
- termEntry.setTermName(ruleName);
- termEntry.setSrcIPList(srcListInsert);
- termEntry.setDestIPList(destListInsert);
- termEntry.setProtocolList("null");
- termEntry.setPortList("null");
- termEntry.setSrcPortList("null");
- termEntry.setDestPortList(destPortListInsert);
- termEntry.setAction(action);
- termEntry.setDescription(description);
- termEntry.setFromZones(fromZoneInsert);
- termEntry.setToZones(toZoneInsert);
- termEntry.setUserCreatedBy(userInfo);
- dbConnection.save(termEntry);
-
- List<Object> actionResult = dbConnection.getDataById(ActionList.class, "actionName", action);
- if(actionResult == null || actionResult.isEmpty()){
- ActionList actionEntry = new ActionList();
- actionEntry.setActionName(action);
- actionEntry.setDescription(action);
- dbConnection.save(actionEntry);
- }
- }
- }
-
- if (path.contains("serviceGroups")) {
- /*
- * Inserting serviceGroups data into the ServiceGroup, ServiceList, ProtocolList, and PortList tables
- */
- for(int si = 0; si < serviceGroup.size(); si++) {
- /*
- * Populate ArrayLists with values from the JSON
- */
- //create the JSON object from the JSON Array for each iteration through the for loop
- JsonObject svcGroupListobj = serviceGroup.getJsonObject(si);
-
- String groupName = svcGroupListobj.get("name").toString().replace('"', '\'');
-
- String description = null;
- if (svcGroupListobj.containsKey("description")){
- description = svcGroupListobj.get("description").toString().replace('"', '\'');
- }
-
- JsonArray membersArray = svcGroupListobj.getJsonArray("members");
-
- Boolean isServiceGroup = false;
- if (membersArray!=null){
- String membersType = membersArray.getJsonObject(0).get("type").toString();
- if (membersType.contains("REFERENCE")) {
- isServiceGroup = true;
- }
- }
-
- //Insert values into GROUPSERVICELIST table if name begins with Group
- if (isServiceGroup) {
- List<Object> result = dbConnection.getDataById(GroupServiceList.class, "name", groupName);
- if(result != null && !result.isEmpty()){
- GroupServiceList groupEntry = (GroupServiceList) result.get(0);
- dbConnection.delete(groupEntry);
- }
-
- String name = null;
- for (int membersIndex = 0; membersIndex < membersArray.size(); membersIndex++) {
- JsonObject membersObj = membersArray.getJsonObject(membersIndex);
- String type = membersObj.get("type").toString().replace("\"", "");
-
- String value = null;
- if(type.equals("REFERENCE")||type.equals("GROUP")||type.equals("SERVICE")){
- value = membersObj.get("name").toString();
- } else if (type.equalsIgnoreCase("ANY")){
- value = null;
- } else {
- value = membersObj.get("value").toString();
- }
-
- if(value != null){
- value = value.replace("\"", "");
- }
-
- if (name != null) {
- name = name.concat(",").concat(value);
- } else {
- name = value;
- }
- }
- String nameInsert = "'"+name+"'";
- GroupServiceList groupServiceEntry = new GroupServiceList();
- groupServiceEntry.setGroupName(groupName);
- groupServiceEntry.setServiceList(nameInsert);
- dbConnection.save(groupServiceEntry);
- } else { //Insert JSON data serviceGroup table, protocollist table, and portlist table
- String type = svcGroupListobj.get("type").toString().replace('"', '\'');
- String transportProtocol = svcGroupListobj.get("transportProtocol").toString().replace('"', '\'');
- String ports = svcGroupListobj.get("ports").toString().replace('"', '\'');
-
- List<Object> result = dbConnection.getDataById(ServiceList.class, "name", groupName);
- if(result != null && !result.isEmpty()){
- ServiceList serviceEntry = (ServiceList) result.get(0);
- dbConnection.delete(serviceEntry);
- }
-
- ServiceList serviceListEntry = new ServiceList();
- serviceListEntry.setServiceName(groupName);
- serviceListEntry.setServiceDescription(description);
- serviceListEntry.setServiceType(type);
- serviceListEntry.setServiceTransProtocol(transportProtocol);
- serviceListEntry.setServiceAppProtocol("null");
- serviceListEntry.setServicePorts(ports);
- dbConnection.save(serviceListEntry);
-
- List<Object> protocolResult = dbConnection.getDataById(ProtocolList.class, "protocolName", transportProtocol);
- if(protocolResult == null || protocolResult.isEmpty()){
- ProtocolList protocolEntry = new ProtocolList();
- protocolEntry.setProtocolName(transportProtocol);
- protocolEntry.setDescription(transportProtocol);
- dbConnection.save(protocolEntry);
- }
-
- List<Object> portResult = dbConnection.getDataById(PortList.class, "portName", ports);
- if(portResult == null || portResult.isEmpty()){
- PortList portEntry = new PortList();
- portEntry.setPortName(ports);
- portEntry.setDescription(ports);
- dbConnection.save(portEntry);
- }
- }
- }
- }
-
- if (path.contains("addressGroups")) {
- /*
- * Inserting addressGroup data into the ADDRESSGROUP table
- */
- for(int ai=0; ai < addressGroup.size() ; ai++) {
-
- /*
- * Populate ArrayLists with values from the JSON
- */
- //create the JSON object from the JSON Array for each iteration through the for loop
- JsonObject addressGroupObj = addressGroup.getJsonObject(ai);
-
- //create JSON array for members
- JsonArray membersArray = addressGroupObj.getJsonArray("members");
- String addressGroupName = addressGroupObj.get("name").toString().replace('"', '\'');
-
- String description = null;
- if (addressGroupObj.containsKey("description")){
- description = addressGroupObj.get("description").toString().replace('"', '\'');
- }
-
- String prefixIP = null;
- String type = null;
- for (int membersIndex=0; membersIndex < membersArray.size(); membersIndex++) {
- JsonObject membersObj = membersArray.getJsonObject(membersIndex);
- type = membersObj.get("type").toString().replace("\"", "");
-
- String value = null;
- if(type.equals("REFERENCE")||type.equals("GROUP")||type.equals("SERVICE")){
- value = membersObj.get("name").toString();
- } else if (type.equalsIgnoreCase("ANY")){
- value = null;
- } else {
- value = membersObj.get("value").toString();
- }
-
- if(value != null){
- value = value.replace("\"", "");
- }
-
- if (prefixIP != null) {
- prefixIP = prefixIP.concat(",").concat(value);
- } else {
- prefixIP = value;
- }
- }
-
- String prefixList = "'"+prefixIP+"'";
- Boolean isAddressGroup = type.contains("REFERENCE");
-
- if (isAddressGroup) {
- List<Object> result = dbConnection.getDataById(AddressGroup.class, "name", addressGroupName);
- if(result != null && !result.isEmpty()){
- AddressGroup addressGroupEntry = (AddressGroup) result.get(0);
- dbConnection.delete(addressGroupEntry);
- }
- AddressGroup newAddressGroup = new AddressGroup();
- newAddressGroup.setGroupName(addressGroupName);
- newAddressGroup.setDescription(description);
- newAddressGroup.setServiceList(prefixList);
- dbConnection.save(newAddressGroup);
- } else {
- List<Object> result = dbConnection.getDataById(PrefixList.class, "prefixListName", addressGroupName);
- if(result != null && !result.isEmpty()){
- PrefixList prefixListEntry = (PrefixList) result.get(0);
- dbConnection.delete(prefixListEntry);
- }
- PrefixList newPrefixList = new PrefixList();
- newPrefixList.setPrefixListName(addressGroupName);
- newPrefixList.setDescription(description);
- newPrefixList.setPrefixListValue(prefixList);
- dbConnection.save(newPrefixList);
- }
- }
- }
- }
-
- /*
- * Remove duplicate values from 'lookup' dictionary tables
- */
- //ProtocolList Table
- String protoDelete = "DELETE FROM protocollist USING protocollist, protocollist p1 "
- + "WHERE protocollist.id > p1.id AND protocollist.protocolname = p1.protocolname;";
- dbConnection.updateQuery(protoDelete);
-
- //PortList Table
- String portListDelete = "DELETE FROM portlist USING portlist, portlist p1 "
- + "WHERE portlist.id > p1.id AND portlist.portname = p1.portname; ";
- dbConnection.updateQuery(portListDelete);
-
- //PrefixList Table
- String prefixListDelete = "DELETE FROM prefixlist USING prefixlist, prefixlist p1 "
- + "WHERE prefixlist.id > p1.id AND prefixlist.pl_name = p1.pl_name AND "
- + "prefixlist.pl_value = p1.pl_value AND prefixlist.description = p1.description; ";
- dbConnection.updateQuery(prefixListDelete);
-
- //GroupServiceList
- String groupServiceDelete = "DELETE FROM groupservicelist USING groupservicelist, groupservicelist g1 "
- + "WHERE groupservicelist.id > g1.id AND groupservicelist.name = g1.name AND "
- + "groupservicelist.serviceList = g1.serviceList; ";
- dbConnection.updateQuery(groupServiceDelete);
- }catch (Exception e) {
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, "FirewallConfigPolicy", "Exception executing Firewall queries");
- return false;
- }
- return true;
- } else {
- return false;
- }
-
- }
-
- private JsonObject stringToJson(String jsonString) {
- //Read jsonBody to JsonObject
- StringReader in = new StringReader(jsonString);
- JsonReader jsonReader = Json.createReader(in);
- JsonObject json = jsonReader.readObject();
- jsonReader.close();
- return json;
- }
-
- private JsonNode createPatch(String json, String oldJson) {
- JsonNode oldJason = null;
- JsonNode updatedJason = null;
-
- try {
- oldJason = JsonLoader.fromString(oldJson);
- updatedJason = JsonLoader.fromString(json);
- } catch (IOException e) {
- LOGGER.error("Exception Occured"+e);
- }
- return JsonDiff.asJson(oldJason, updatedJason);
- }
-
- @Override
- public Object getCorrectPolicyDataObject() {
- return policyAdapter.getPolicyData();
- }
+ }
+ } else {
+ dbIsUpdated = true;
+ }
+
+ if(dbIsUpdated) {
+ successMap = createPolicy(newPolicyPath,getCorrectPolicyDataObject());
+ } else {
+ PolicyLogger.error("Failed to Update the Database Dictionary Tables.");
+
+ //remove the new json file
+ String jsonBody = policyAdapter.getPrevJsonBody();
+ if (jsonBody!=null){
+ saveConfigurations(policyName, jsonBody);
+ } else {
+ saveConfigurations(policyName, "");
+ }
+ successMap.put("fwdberror", "DB UPDATE");
+ }
+
+ 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{
+
+ 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 marshaling.
+ if ("Config".equals(policyAdapter.getPolicyType())) {
+ PolicyType policyConfig = new PolicyType();
+
+ policyConfig.setVersion(Integer.toString(version));
+ policyConfig.setPolicyId(policyID);
+ policyConfig.setTarget(new TargetType());
+ policyAdapter.setData(policyConfig);
+ }
+ policyName = policyAdapter.getNewFileName();
+
+ //String oldPolicyName = policyName.replace(".xml", "");
+ String scope = policyName.substring(0, policyName.indexOf('.'));
+ String dbPolicyName = policyName.substring(policyName.indexOf('.')+1).replace(".xml", "");
+
+ int oldversion = Integer.parseInt(dbPolicyName.substring(dbPolicyName.lastIndexOf('.')+1));
+ dbPolicyName = dbPolicyName.substring(0, dbPolicyName.lastIndexOf('.')+1);
+ if(oldversion > 1){
+ oldversion = oldversion - 1;
+ dbPolicyName = dbPolicyName + oldversion + ".xml";
+ }
+ EntityManager em = XACMLPapServlet.getEmf().createEntityManager();
+ Query createPolicyQuery = em.createQuery("SELECT p FROM PolicyEntity p WHERE p.scope=:scope AND p.policyName=:policyName");
+ createPolicyQuery.setParameter("scope", scope);
+ createPolicyQuery.setParameter("policyName", dbPolicyName);
+ List<?> createPolicyQueryList = createPolicyQuery.getResultList();
+ if(!createPolicyQueryList.isEmpty()){
+ PolicyEntity entitydata = (PolicyEntity) createPolicyQueryList.get(0);
+ policyAdapter.setPrevJsonBody(entitydata.getConfigurationData().getConfigBody());
+ }
+ em.close();
+ if (policyAdapter.getData() != null) {
+ String jsonBody = policyAdapter.getJsonBody();
+ saveConfigurations(policyName, jsonBody);
+
+ // Make sure the filename ends with an extension
+ if (!policyName.endsWith(".xml")) {
+ policyName = policyName + ".xml";
+ }
+
+ PolicyType configPolicy = (PolicyType) policyAdapter.getData();
+
+ configPolicy.setDescription(policyAdapter.getPolicyDescription());
+
+ configPolicy.setRuleCombiningAlgId(policyAdapter.getRuleCombiningAlgId());
+
+ 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());
+ }
+ allOfOne.getMatch().add(createMatch("PolicyName", name));
+ AllOfType allOf = new AllOfType();
+
+ // Match for ConfigName
+ allOf.getMatch().add(createMatch("ConfigName", policyAdapter.getConfigName()));
+ // Match for riskType
+ allOf.getMatch().add(createDynamicMatch("RiskType", policyAdapter.getRiskType()));
+ // Match for riskLevel
+ allOf.getMatch().add(createDynamicMatch("RiskLevel", String.valueOf(policyAdapter.getRiskLevel())));
+ // Match for riskguard
+ allOf.getMatch().add(createDynamicMatch("guard", policyAdapter.getGuard()));
+ // Match for ttlDate
+ allOf.getMatch().add(createDynamicMatch("TTLDate", policyAdapter.getTtlDate()));
+ AnyOfType anyOf = new AnyOfType();
+ anyOf.getAllOf().add(allOfOne);
+ anyOf.getAllOf().add(allOf);
+
+ TargetType target = new TargetType();
+ target.getAnyOf().add(anyOf);
+
+ // Adding the target to the policy element
+ configPolicy.setTarget((TargetType) target);
+
+ RuleType rule = new RuleType();
+ rule.setRuleId(policyAdapter.getRuleID());
+ rule.setEffect(EffectType.PERMIT);
+
+ // Create Target in Rule
+ AllOfType allOfInRule = new AllOfType();
+
+ // Creating match for ACCESS in rule target
+ MatchType accessMatch = new MatchType();
+ AttributeValueType accessAttributeValue = new AttributeValueType();
+ accessAttributeValue.setDataType(STRING_DATATYPE);
+ accessAttributeValue.getContent().add("ACCESS");
+ accessMatch.setAttributeValue(accessAttributeValue);
+ AttributeDesignatorType accessAttributeDesignator = new AttributeDesignatorType();
+ URI accessURI = null;
+ try {
+ accessURI = new URI(ACTION_ID);
+ } catch (URISyntaxException e) {
+ PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, e, "FirewallConfigPolicy", "Exception creating ACCESS URI");
+ }
+ accessAttributeDesignator.setCategory(CATEGORY_ACTION);
+ accessAttributeDesignator.setDataType(STRING_DATATYPE);
+ accessAttributeDesignator.setAttributeId(new IdentifierImpl(accessURI).stringValue());
+ accessMatch.setAttributeDesignator(accessAttributeDesignator);
+ accessMatch.setMatchId(FUNCTION_STRING_EQUAL_IGNORE);
+
+ // Creating Config Match in rule Target
+ MatchType configMatch = new MatchType();
+ AttributeValueType configAttributeValue = new AttributeValueType();
+ configAttributeValue.setDataType(STRING_DATATYPE);
+
+ configAttributeValue.getContent().add("Config");
+
+ configMatch.setAttributeValue(configAttributeValue);
+ AttributeDesignatorType configAttributeDesignator = new AttributeDesignatorType();
+ URI configURI = null;
+ try {
+ configURI = new URI(RESOURCE_ID);
+ } catch (URISyntaxException e) {
+ PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, e, "FirewallConfigPolicy", "Exception creating Config URI");
+ }
+
+ configAttributeDesignator.setCategory(CATEGORY_RESOURCE);
+ configAttributeDesignator.setDataType(STRING_DATATYPE);
+ configAttributeDesignator.setAttributeId(new IdentifierImpl(configURI).stringValue());
+ configMatch.setAttributeDesignator(configAttributeDesignator);
+ configMatch.setMatchId(FUNCTION_STRING_EQUAL_IGNORE);
+
+ allOfInRule.getMatch().add(accessMatch);
+ allOfInRule.getMatch().add(configMatch);
+
+ AnyOfType anyOfInRule = new AnyOfType();
+ anyOfInRule.getAllOf().add(allOfInRule);
+
+ TargetType targetInRule = new TargetType();
+ targetInRule.getAnyOf().add(anyOfInRule);
+
+ rule.setTarget(targetInRule);
+ rule.setAdviceExpressions(getAdviceExpressions(version, policyName));
+
+ configPolicy.getCombinerParametersOrRuleCombinerParametersOrVariableDefinition().add(rule);
+ policyAdapter.setPolicyData(configPolicy);
+
+ } else {
+ PolicyLogger.error("Unsupported data object." + policyAdapter.getData().getClass().getCanonicalName());
+ }
+ setPreparedToSave(true);
+ return true;
+ }
+
+ // Data required for Advice part is setting here.
+ private AdviceExpressionsType getAdviceExpressions(int version, String fileName) {
+
+ //Firewall Config ID Assignment
+ AdviceExpressionsType advices = new AdviceExpressionsType();
+ AdviceExpressionType advice = new AdviceExpressionType();
+ advice.setAdviceId("firewallConfigID");
+ advice.setAppliesTo(EffectType.PERMIT);
+ // For Configuration
+ AttributeAssignmentExpressionType assignment1 = new AttributeAssignmentExpressionType();
+ assignment1.setAttributeId("type");
+ assignment1.setCategory(CATEGORY_RESOURCE);
+ assignment1.setIssuer("");
+ AttributeValueType configNameAttributeValue = new AttributeValueType();
+ configNameAttributeValue.setDataType(STRING_DATATYPE);
+ configNameAttributeValue.getContent().add("Configuration");
+ assignment1.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue));
+ advice.getAttributeAssignmentExpression().add(assignment1);
+
+ // For Config file Url if configurations are provided.
+ //URL ID Assignment
+ AttributeAssignmentExpressionType assignment2 = new AttributeAssignmentExpressionType();
+ assignment2.setAttributeId("URLID");
+ assignment2.setCategory(CATEGORY_RESOURCE);
+ assignment2.setIssuer("");
+ AttributeValueType AttributeValue = new AttributeValueType();
+ AttributeValue.setDataType(URI_DATATYPE);
+ if (policyName.endsWith(".xml")) {
+ policyName = policyName.substring(0, policyName.lastIndexOf(".xml"));
+ }
+ String content = CONFIG_URL + "/Config/" + policyName + ".json";
+
+ AttributeValue.getContent().add(content);
+ assignment2.setExpression(new ObjectFactory().createAttributeValue(AttributeValue));
+ advice.getAttributeAssignmentExpression().add(assignment2);
+
+ //Policy Name Assignment
+ AttributeAssignmentExpressionType assignment3 = new AttributeAssignmentExpressionType();
+ assignment3.setAttributeId("PolicyName");
+ assignment3.setCategory(CATEGORY_RESOURCE);
+ assignment3.setIssuer("");
+ AttributeValueType attributeValue3 = new AttributeValueType();
+ attributeValue3.setDataType(STRING_DATATYPE);
+ fileName = FilenameUtils.removeExtension(fileName);
+ fileName = fileName + ".xml";
+ String name = fileName.substring(fileName.lastIndexOf("\\") + 1, fileName.length());
+ if ((name == null) || (name.equals(""))) {
+ name = fileName.substring(fileName.lastIndexOf("/") + 1, fileName.length());
+ }
+ attributeValue3.getContent().add(name);
+ assignment3.setExpression(new ObjectFactory().createAttributeValue(attributeValue3));
+ advice.getAttributeAssignmentExpression().add(assignment3);
+
+ //Version Number Assignment
+ AttributeAssignmentExpressionType assignment4 = new AttributeAssignmentExpressionType();
+ assignment4.setAttributeId("VersionNumber");
+ assignment4.setCategory(CATEGORY_RESOURCE);
+ assignment4.setIssuer("");
+ AttributeValueType configNameAttributeValue4 = new AttributeValueType();
+ configNameAttributeValue4.setDataType(STRING_DATATYPE);
+ configNameAttributeValue4.getContent().add(Integer.toString(version));
+ assignment4.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue4));
+ advice.getAttributeAssignmentExpression().add(assignment4);
+
+ //Onap Name Assignment
+ AttributeAssignmentExpressionType assignment5 = new AttributeAssignmentExpressionType();
+ assignment5.setAttributeId("matching:" + ONAPID);
+ assignment5.setCategory(CATEGORY_RESOURCE);
+ assignment5.setIssuer("");
+ AttributeValueType configNameAttributeValue5 = new AttributeValueType();
+ configNameAttributeValue5.setDataType(STRING_DATATYPE);
+ assignment5.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue5));
+ advice.getAttributeAssignmentExpression().add(assignment5);
+
+ //Config Name Assignment
+ AttributeAssignmentExpressionType assignment6 = new AttributeAssignmentExpressionType();
+ assignment6.setAttributeId("matching:" + CONFIGID);
+ assignment6.setCategory(CATEGORY_RESOURCE);
+ assignment6.setIssuer("");
+ AttributeValueType configNameAttributeValue6 = new AttributeValueType();
+ configNameAttributeValue6.setDataType(STRING_DATATYPE);
+ configNameAttributeValue6.getContent().add(policyAdapter.getConfigName());
+ assignment6.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue6));
+ advice.getAttributeAssignmentExpression().add(assignment6);
+
+ //Risk Attributes
+ AttributeAssignmentExpressionType assignment7 = new AttributeAssignmentExpressionType();
+ assignment7.setAttributeId("RiskType");
+ assignment7.setCategory(CATEGORY_RESOURCE);
+ assignment7.setIssuer("");
+
+ AttributeValueType configNameAttributeValue7 = new AttributeValueType();
+ configNameAttributeValue7.setDataType(STRING_DATATYPE);
+ configNameAttributeValue7.getContent().add(policyAdapter.getRiskType());
+ assignment7.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue7));
+
+ advice.getAttributeAssignmentExpression().add(assignment7);
+
+ AttributeAssignmentExpressionType assignment8 = new AttributeAssignmentExpressionType();
+ assignment8.setAttributeId("RiskLevel");
+ assignment8.setCategory(CATEGORY_RESOURCE);
+ assignment8.setIssuer("");
+
+ AttributeValueType configNameAttributeValue8 = new AttributeValueType();
+ configNameAttributeValue8.setDataType(STRING_DATATYPE);
+ configNameAttributeValue8.getContent().add(policyAdapter.getRiskLevel());
+ assignment8.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue8));
+
+ advice.getAttributeAssignmentExpression().add(assignment8);
+
+ AttributeAssignmentExpressionType assignment9 = new AttributeAssignmentExpressionType();
+ assignment9.setAttributeId("guard");
+ assignment9.setCategory(CATEGORY_RESOURCE);
+ assignment9.setIssuer("");
+
+ AttributeValueType configNameAttributeValue9 = new AttributeValueType();
+ configNameAttributeValue9.setDataType(STRING_DATATYPE);
+ configNameAttributeValue9.getContent().add(policyAdapter.getGuard());
+ assignment9.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue9));
+
+ advice.getAttributeAssignmentExpression().add(assignment9);
+
+ AttributeAssignmentExpressionType assignment10 = new AttributeAssignmentExpressionType();
+ assignment10.setAttributeId("TTLDate");
+ assignment10.setCategory(CATEGORY_RESOURCE);
+ assignment10.setIssuer("");
+
+ AttributeValueType configNameAttributeValue10 = new AttributeValueType();
+ configNameAttributeValue10.setDataType(STRING_DATATYPE);
+ configNameAttributeValue10.getContent().add(policyAdapter.getTtlDate());
+ assignment10.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue10));
+
+ advice.getAttributeAssignmentExpression().add(assignment10);
+ advices.getAdviceExpression().add(advice);
+ return advices;
+ }
+
+
+ private Boolean insertFirewallDicionaryData (String jsonBody) throws SQLException {
+ CommonClassDaoImpl dbConnection = new CommonClassDaoImpl();
+ JsonObject json = null;
+ if (jsonBody != null) {
+
+ //Read jsonBody to JsonObject
+ json = stringToJson(jsonBody);
+
+ JsonArray firewallRules = null;
+ JsonArray serviceGroup = null;
+ JsonArray addressGroup = null;
+ //insert data into tables
+ try {
+ firewallRules = json.getJsonArray("firewallRuleList");
+ serviceGroup = json.getJsonArray("serviceGroups");
+ addressGroup = json.getJsonArray("addressGroups");
+ /*
+ * Inserting firewallRuleList data into the Terms, SecurityZone, and Action tables
+ */
+ if (firewallRules != null) {
+ for(int i = 0;i<firewallRules.size();i++) {
+ /*
+ * Populate ArrayLists with values from the JSON
+ */
+ //create the JSON object from the JSON Array for each iteration through the for loop
+ JsonObject ruleListobj = firewallRules.getJsonObject(i);
+
+ //get values from JSON fields of firewallRulesList Array
+ String ruleName = ruleListobj.get("ruleName").toString();
+ String action = ruleListobj.get("action").toString();
+ String description = ruleListobj.get("description").toString();
+ List<Object> result = dbConnection.getDataById(TermList.class, "termName", ruleName);
+ if(result != null && !result.isEmpty()){
+ TermList termEntry = (TermList) result.get(0);
+ dbConnection.delete(termEntry);
+ }
+
+ //getting fromZone Array field from the firewallRulesList
+ JsonArray fromZoneArray = ruleListobj.getJsonArray("fromZones");
+ String fromZoneString = null;
+
+ for (int fromZoneIndex = 0;fromZoneIndex<fromZoneArray.size(); fromZoneIndex++) {
+ String value = fromZoneArray.get(fromZoneIndex).toString();
+ value = value.replace("\"", "");
+ if (fromZoneString != null) {
+ fromZoneString = fromZoneString.concat(",").concat(value);
+ } else {
+ fromZoneString = value;
+ }
+ }
+ String fromZoneInsert = "'"+fromZoneString+"'";
+
+ //getting toZone Array field from the firewallRulesList
+ JsonArray toZoneArray = ruleListobj.getJsonArray("toZones");
+ String toZoneString = null;
+ for (int toZoneIndex = 0; toZoneIndex<toZoneArray.size(); toZoneIndex++) {
+ String value = toZoneArray.get(toZoneIndex).toString();
+ value = value.replace("\"", "");
+ if (toZoneString != null) {
+ toZoneString = toZoneString.concat(",").concat(value);
+ } else {
+ toZoneString = value;
+ }
+ }
+ String toZoneInsert = "'"+toZoneString+"'";
+
+ //getting sourceList Array fields from the firewallRulesList
+ JsonArray srcListArray = ruleListobj.getJsonArray("sourceList");
+ String srcListString = null;
+ for (int srcListIndex = 0; srcListIndex< srcListArray.size(); srcListIndex++) {
+ JsonObject srcListObj = srcListArray.getJsonObject(srcListIndex);
+ String type = srcListObj.get("type").toString().replace("\"", "");
+
+ String value = null;
+ if(type.equals("REFERENCE")||type.equals("GROUP")){
+ value = srcListObj.get("name").toString();
+ } else if (type.equalsIgnoreCase("ANY")){
+ value = null;
+ } else {
+ value = srcListObj.get("value").toString();
+ }
+
+ if (value!=null){
+ value = value.replace("\"", "");
+ }
+
+ if (srcListString != null) {
+ srcListString = srcListString.concat(",").concat(value);
+
+ } else {
+ srcListString = value;
+ }
+
+ }
+ String srcListInsert = "'"+srcListString+"'";
+
+ //getting destinationList Array fields from the firewallRulesList
+ JsonArray destListArray = ruleListobj.getJsonArray("destinationList");
+ String destListString = null;
+ for (int destListIndex = 0; destListIndex <destListArray.size(); destListIndex++) {
+ JsonObject destListObj = destListArray.getJsonObject(destListIndex);
+ String type = destListObj.get("type").toString().replace("\"", "");
+
+ String value = null;
+ if(type.equals("REFERENCE")||type.equals("GROUP")){
+ value = destListObj.get("name").toString();
+ } else if (type.equalsIgnoreCase("ANY")){
+ value = null;
+ } else {
+ value = destListObj.get("value").toString();
+ }
+
+ if (value!=null){
+ value = value.replace("\"", "");
+ }
+
+ if (destListString != null) {
+ destListString = destListString.concat(",").concat(value);
+ } else {
+ destListString = value;
+ }
+ }
+ String destListInsert = "'"+destListString+"'";
+
+ //getting destServices Array fields from the firewallRulesList
+ JsonArray destServicesArray = ruleListobj.getJsonArray("destServices");
+ String destPortListString = null;
+ for (int destPortListIndex = 0; destPortListIndex < destServicesArray.size(); destPortListIndex++) {
+ JsonObject destServicesObj = destServicesArray.getJsonObject(destPortListIndex);
+ String type = destServicesObj.get("type").toString().replace("\"", "");
+
+ String value = null;
+ if(type.equals("REFERENCE")||type.equals("GROUP")){
+ value = destServicesObj.get("name").toString();
+ } else if (type.equalsIgnoreCase("ANY")){
+ value = null;
+ } else {
+ value = destServicesObj.get("value").toString();
+ }
+
+ if (value!=null){
+ value = value.replace("\"", "");
+ }
+
+ if (destPortListString != null) {
+ destPortListString = destPortListString.concat(",").concat(value);
+ } else {
+ destPortListString = value;
+ }
+ }
+ String destPortListInsert = "'"+destPortListString+"'";
+
+ /*
+ * Create Queries to INSERT data into database tables and execute
+ */
+ UserInfo userInfo = new UserInfo();
+ userInfo.setUserLoginId("API");
+ userInfo.setUserName("API");
+
+ TermList termEntry = new TermList();
+ termEntry.setTermName(ruleName);
+ termEntry.setSrcIPList(srcListInsert);
+ termEntry.setDestIPList(destListInsert);
+ termEntry.setProtocolList("null");
+ termEntry.setPortList("null");
+ termEntry.setSrcPortList("null");
+ termEntry.setDestPortList(destPortListInsert);
+ termEntry.setAction(action);
+ termEntry.setDescription(description);
+ termEntry.setFromZones(fromZoneInsert);
+ termEntry.setToZones(toZoneInsert);
+ termEntry.setUserCreatedBy(userInfo);
+ dbConnection.save(termEntry);
+
+ ActionList actionEntry = new ActionList();
+ actionEntry.setActionName(action);
+ actionEntry.setDescription(action);
+ dbConnection.save(actionEntry);
+ }
+ }
+
+ /*
+ * Inserting serviceGroups data into the ServiceGroup, ServiceList, ProtocolList, and PortList tables
+ */
+ if (serviceGroup != null) {
+ for(int i = 0; i < serviceGroup.size() ; i++) {
+ /*
+ * Populate ArrayLists with values from the JSON
+ */
+ //create the JSON object from the JSON Array for each iteration through the for loop
+ JsonObject svcGroupListobj = serviceGroup.getJsonObject(i);
+
+ String serviceListName = svcGroupListobj.get("name").toString();
+ String description = null;
+ if (svcGroupListobj.containsKey("description")){
+ description = svcGroupListobj.get("description").toString();
+ }
+
+ //getting members Array from the serviceGroup
+ JsonArray membersArray = svcGroupListobj.getJsonArray("members");
+
+ //String type = svcGroupListobj.get("type").toString();
+ Boolean isServiceGroup = false;
+ if (membersArray!=null){
+ String membersType = membersArray.getJsonObject(0).get("type").toString();
+ if (membersType.contains("REFERENCE")) {
+ isServiceGroup = true;
+ }
+ }
+
+ //Insert values into GROUPSERVICELIST table if name begins with Group
+ if (isServiceGroup) {
+ String name = null;
+ for (int membersIndex = 0; membersIndex< membersArray.size(); membersIndex++) {
+ JsonObject membersObj = membersArray.getJsonObject(membersIndex);
+ //String value = membersObj.get("name").toString();
+ String type = membersObj.get("type").toString().replace("\"", "");
+
+ String value = null;
+ if(type.equals("REFERENCE")||type.equals("GROUP")||type.equals("SERVICE")){
+ value = membersObj.get("name").toString();
+ } else if (type.equalsIgnoreCase("ANY")){
+ value = null;
+ } else {
+ value = membersObj.get("value").toString();
+ }
+
+ if(value != null){
+ value = value.replace("\"", "");
+ }
+
+ if (name != null) {
+ name = name.concat(",").concat(value);
+ } else {
+ name = value;
+ }
+ }
+ String nameInsert = "'"+name+"'";
+ GroupServiceList groupServiceEntry = new GroupServiceList();
+ groupServiceEntry.setGroupName(serviceListName);
+ groupServiceEntry.setServiceList(nameInsert);
+ dbConnection.save(groupServiceEntry);
+ } else { //Insert JSON data serviceList table, protollist table, and portlist table
+ String type = svcGroupListobj.get("type").toString();
+ String transportProtocol = svcGroupListobj.get("transportProtocol").toString();
+ String ports = svcGroupListobj.get("ports").toString();
+
+ /*
+ * Create Queries to INSERT data into database table and execute
+ */
+ ServiceList serviceListEntry = new ServiceList();
+ serviceListEntry.setServiceName(serviceListName);
+ serviceListEntry.setServiceDescription(description);
+ serviceListEntry.setServiceType(type);
+ serviceListEntry.setServiceTransProtocol(transportProtocol);
+ serviceListEntry.setServiceAppProtocol("null");
+ serviceListEntry.setServicePorts(ports);
+ dbConnection.save(serviceListEntry);
+
+ ProtocolList protocolEntry = new ProtocolList();
+ protocolEntry.setProtocolName(transportProtocol);
+ protocolEntry.setDescription(transportProtocol);
+ dbConnection.save(protocolEntry);
+
+ PortList portListEntry = new PortList();
+ portListEntry.setPortName(ports);
+ portListEntry.setDescription(ports);
+ dbConnection.save(portListEntry);
+ }
+ }
+ }
+
+ /*
+ * Inserting addressGroup data into the ADDRESSGROUP table
+ */
+ if (addressGroup != null) {
+ for(int i = 0; i < addressGroup.size(); i++) {
+ /*
+ * Populate ArrayLists with values from the JSON
+ */
+ //create the JSON object from the JSON Array for each iteration through the for loop
+ JsonObject addressGroupObj = addressGroup.getJsonObject(i);
+
+ //create JSON array for members
+ JsonArray membersArray = addressGroupObj.getJsonArray("members");
+ String addressGroupName = addressGroupObj.get("name").toString();
+
+ String description = null;
+ if (addressGroupObj.containsKey("description")){
+ description = addressGroupObj.get("description").toString();
+ }
+
+ String prefixIP = null;
+ String type = null;
+ for (int membersIndex = 0; membersIndex < membersArray.size(); membersIndex++) {
+ JsonObject membersObj = membersArray.getJsonObject(membersIndex);
+ //String value = membersObj.get("value").toString();
+ type = membersObj.get("type").toString().replace("\"", "");
+
+ String value = null;
+ if(type.equals("REFERENCE")||type.equals("GROUP")||type.equals("SERVICE")){
+ value = membersObj.get("name").toString();
+ } else if (type.equalsIgnoreCase("ANY")){
+ value = null;
+ } else {
+ value = membersObj.get("value").toString();
+ }
+
+ if(value != null){
+ value = value.replace("\"", "");
+ }
+
+ if (prefixIP != null) {
+ prefixIP = prefixIP.concat(",").concat(value);
+ } else {
+ prefixIP = value;
+ }
+ }
+ String prefixList = "'"+prefixIP+"'";
+
+ Boolean isAddressGroup = type.contains("REFERENCE");
+
+ if (isAddressGroup) {
+ AddressGroup addressGroupEntry = new AddressGroup();
+ addressGroupEntry.setGroupName(addressGroupName);
+ addressGroupEntry.setDescription(description);
+ addressGroupEntry.setServiceList(prefixList);
+ dbConnection.save(addressGroupEntry);
+ } else {
+ PrefixList prefixListEntry = new PrefixList();
+ prefixListEntry.setPrefixListName(addressGroupName);
+ prefixListEntry.setDescription(description);
+ prefixListEntry.setPrefixListValue(prefixList);
+ dbConnection.save(prefixListEntry);
+ }
+ }
+ }
+
+ /*
+ * Remove duplicate values from 'lookup' dictionary tables
+ */
+ //ProtocolList Table
+ String protoDelete = "DELETE FROM protocollist USING protocollist, protocollist p1 "
+ + "WHERE protocollist.id > p1.id AND protocollist.protocolname = p1.protocolname;";
+ dbConnection.updateQuery(protoDelete);
+
+ //PortList Table
+ String portListDelete = "DELETE FROM portlist USING portlist, portlist p1 "
+ + "WHERE portlist.id > p1.id AND portlist.portname = p1.portname; ";
+ dbConnection.updateQuery(portListDelete);
+
+ //PrefixList Table
+ String prefixListDelete = "DELETE FROM prefixlist USING prefixlist, prefixlist p1 "
+ + "WHERE prefixlist.id > p1.id AND prefixlist.pl_name = p1.pl_name AND "
+ + "prefixlist.pl_value = p1.pl_value AND prefixlist.description = p1.description; ";
+ dbConnection.updateQuery(prefixListDelete);
+
+ //GroupServiceList
+ String groupServiceDelete = "DELETE FROM groupservicelist USING groupservicelist, groupservicelist g1 "
+ + "WHERE groupservicelist.id > g1.id AND groupservicelist.name = g1.name AND "
+ + "groupservicelist.serviceList = g1.serviceList; ";
+ dbConnection.updateQuery(groupServiceDelete);
+ }catch (Exception e) {
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, "FirewallConfigPolicy", "Exception getting Json values");
+ return false;
+ }
+ return true;
+
+ } else {
+ return false;
+ }
+
+ }
+
+
+ private Boolean updateFirewallDictionaryData(String jsonBody, String prevJsonBody) {
+ CommonClassDaoImpl dbConnection = new CommonClassDaoImpl();
+ JsonObject oldJson = null;
+ JsonObject newJson = null;
+
+ if (jsonBody != null || prevJsonBody != null) {
+
+ oldJson = stringToJson(prevJsonBody);
+ newJson = stringToJson(jsonBody);
+
+ //if no changes to the json then return true
+ if (oldJson != null && oldJson.equals(newJson)) {
+ return true;
+ }
+
+ JsonArray firewallRules = null;
+ JsonArray serviceGroup = null;
+ JsonArray addressGroup = null;
+
+ firewallRules = newJson.getJsonArray("firewallRuleList");
+ serviceGroup = newJson.getJsonArray("serviceGroups");
+ addressGroup = newJson.getJsonArray("addressGroups");
+
+ //insert data into tables
+ try {
+ JsonNode jsonDiff = createPatch(jsonBody, prevJsonBody);
+
+ for (int i = 0; i<jsonDiff.size(); i++) {
+ //String path = jsonDiff.get(i).asText();
+ String jsonpatch = jsonDiff.get(i).toString();
+
+ JsonObject patchObj = stringToJson(jsonpatch);
+
+ String path = patchObj.get("path").toString().replace('"', ' ').trim();
+
+ if (path.contains("firewallRuleList")) {
+ /*
+ * Inserting firewallRuleList data into the Terms, SecurityZone, and Action tables
+ */
+ for(int ri = 0; ri < firewallRules.size(); ri++) {
+ /*
+ * Populate ArrayLists with values from the JSON
+ */
+ //create the JSON object from the JSON Array for each iteration through the for loop
+ JsonObject ruleListobj = firewallRules.getJsonObject(ri);
+
+ //get values from JSON fields of firewallRulesList Array
+ String ruleName = ruleListobj.get("ruleName").toString().replace('"', '\'');
+ String action = ruleListobj.get("action").toString().replace('"', '\'');
+ String description = ruleListobj.get("description").toString().replace('"', '\'');
+
+ List<Object> result = dbConnection.getDataById(TermList.class, "termName", ruleName);
+ if(result != null && !result.isEmpty()){
+ TermList termEntry = (TermList) result.get(0);
+ dbConnection.delete(termEntry);
+ }
+
+ //getting fromZone Array field from the firewallRulesList
+ JsonArray fromZoneArray = ruleListobj.getJsonArray("fromZones");
+ String fromZoneString = null;
+
+ for (int fromZoneIndex = 0; fromZoneIndex<fromZoneArray.size() ; fromZoneIndex++) {
+ String value = fromZoneArray.get(fromZoneIndex).toString();
+ value = value.replace("\"", "");
+
+ if (fromZoneString != null) {
+ fromZoneString = fromZoneString.concat(",").concat(value);
+
+ } else {
+ fromZoneString = value;
+ }
+
+ }
+ String fromZoneInsert = "'"+fromZoneString+"'";
+
+ //getting toZone Array field from the firewallRulesList
+ JsonArray toZoneArray = ruleListobj.getJsonArray("toZones");
+ String toZoneString = null;
+
+
+ for (int toZoneIndex = 0; toZoneIndex < toZoneArray.size(); toZoneIndex++) {
+ String value = toZoneArray.get(toZoneIndex).toString();
+ value = value.replace("\"", "");
+
+ if (toZoneString != null) {
+ toZoneString = toZoneString.concat(",").concat(value);
+
+ } else {
+ toZoneString = value;
+ }
+
+ }
+ String toZoneInsert = "'"+toZoneString+"'";
+ //getting sourceList Array fields from the firewallRulesList
+ JsonArray srcListArray = ruleListobj.getJsonArray("sourceList");
+ String srcListString = null;
+ for (int srcListIndex = 0; srcListIndex<srcListArray.size(); srcListIndex++) {
+ JsonObject srcListObj = srcListArray.getJsonObject(srcListIndex);
+ String type = srcListObj.get("type").toString().replace("\"", "");
+
+ String value = null;
+ if(type.equals("REFERENCE")||type.equals("GROUP")){
+ value = srcListObj.get("name").toString();
+ } else if (type.equalsIgnoreCase("ANY")){
+ value = null;
+ } else {
+ value = srcListObj.get("value").toString();
+ }
+
+ if(value != null){
+ value = value.replace("\"", "");
+ }
+
+ if (srcListString != null) {
+ srcListString = srcListString.concat(",").concat(value);
+
+ } else {
+ srcListString = value;
+ }
+
+ }
+ String srcListInsert = "'"+srcListString+"'";
+
+ //getting destinationList Array fields from the firewallRulesList
+ JsonArray destListArray = ruleListobj.getJsonArray("destinationList");
+ String destListString = null;
+ for (int destListIndex = 0; destListIndex<destListArray.size(); destListIndex ++) {
+ JsonObject destListObj = destListArray.getJsonObject(destListIndex);
+ String type = destListObj.get("type").toString().replace("\"", "");
+
+ String value = null;
+ if(type.equals("REFERENCE")||type.equals("GROUP")){
+ value = destListObj.get("name").toString();
+ } else if (type.equalsIgnoreCase("ANY")){
+ value = null;
+ } else {
+ value = destListObj.get("value").toString();
+ }
+
+ if(value != null){
+ value = value.replace("\"", "");
+ }
+
+ if (destListString != null) {
+ destListString = destListString.concat(",").concat(value);
+ } else {
+ destListString = value;
+ }
+ }
+ String destListInsert = "'"+destListString+"'";
+
+ //getting destServices Array fields from the firewallRulesList
+ JsonArray destServicesArray = ruleListobj.getJsonArray("destServices");
+ String destPortListString = null;
+ for (int destPortListIndex = 0; destPortListIndex < destServicesArray.size(); destPortListIndex++) {
+ JsonObject destServicesObj = destServicesArray.getJsonObject(destPortListIndex);
+ String type = destServicesObj.get("type").toString().replace("\"", "");
+
+ String value = null;
+ if(type.equals("REFERENCE")||type.equals("GROUP")){
+ value = destServicesObj.get("name").toString();
+ } else if (type.equalsIgnoreCase("ANY")){
+ value = null;
+ } else {
+ value = destServicesObj.get("value").toString();
+ }
+
+ if(value != null){
+ value = value.replace("\"", "");
+ }
+
+ if (destPortListString != null) {
+ destPortListString = destPortListString.concat(",").concat(value);
+ } else {
+ destPortListString = value;
+ }
+ }
+ String destPortListInsert = "'"+destPortListString+"'";
+
+ /*
+ * Create Queries to INSERT data into database tables and execute
+ */
+ UserInfo userInfo = new UserInfo();
+ userInfo.setUserLoginId("API");
+ userInfo.setUserName("API");
+
+ TermList termEntry = new TermList();
+ termEntry.setTermName(ruleName);
+ termEntry.setSrcIPList(srcListInsert);
+ termEntry.setDestIPList(destListInsert);
+ termEntry.setProtocolList("null");
+ termEntry.setPortList("null");
+ termEntry.setSrcPortList("null");
+ termEntry.setDestPortList(destPortListInsert);
+ termEntry.setAction(action);
+ termEntry.setDescription(description);
+ termEntry.setFromZones(fromZoneInsert);
+ termEntry.setToZones(toZoneInsert);
+ termEntry.setUserCreatedBy(userInfo);
+ dbConnection.save(termEntry);
+
+ List<Object> actionResult = dbConnection.getDataById(ActionList.class, "actionName", action);
+ if(actionResult == null || actionResult.isEmpty()){
+ ActionList actionEntry = new ActionList();
+ actionEntry.setActionName(action);
+ actionEntry.setDescription(action);
+ dbConnection.save(actionEntry);
+ }
+ }
+ }
+
+ if (path.contains("serviceGroups")) {
+ /*
+ * Inserting serviceGroups data into the ServiceGroup, ServiceList, ProtocolList, and PortList tables
+ */
+ for(int si = 0; si < serviceGroup.size(); si++) {
+ /*
+ * Populate ArrayLists with values from the JSON
+ */
+ //create the JSON object from the JSON Array for each iteration through the for loop
+ JsonObject svcGroupListobj = serviceGroup.getJsonObject(si);
+
+ String groupName = svcGroupListobj.get("name").toString().replace('"', '\'');
+
+ String description = null;
+ if (svcGroupListobj.containsKey("description")){
+ description = svcGroupListobj.get("description").toString().replace('"', '\'');
+ }
+
+ JsonArray membersArray = svcGroupListobj.getJsonArray("members");
+
+ Boolean isServiceGroup = false;
+ if (membersArray!=null){
+ String membersType = membersArray.getJsonObject(0).get("type").toString();
+ if (membersType.contains("REFERENCE")) {
+ isServiceGroup = true;
+ }
+ }
+
+ //Insert values into GROUPSERVICELIST table if name begins with Group
+ if (isServiceGroup) {
+ List<Object> result = dbConnection.getDataById(GroupServiceList.class, "name", groupName);
+ if(result != null && !result.isEmpty()){
+ GroupServiceList groupEntry = (GroupServiceList) result.get(0);
+ dbConnection.delete(groupEntry);
+ }
+
+ String name = null;
+ for (int membersIndex = 0; membersIndex < membersArray.size(); membersIndex++) {
+ JsonObject membersObj = membersArray.getJsonObject(membersIndex);
+ String type = membersObj.get("type").toString().replace("\"", "");
+
+ String value = null;
+ if(type.equals("REFERENCE")||type.equals("GROUP")||type.equals("SERVICE")){
+ value = membersObj.get("name").toString();
+ } else if (type.equalsIgnoreCase("ANY")){
+ value = null;
+ } else {
+ value = membersObj.get("value").toString();
+ }
+
+ if(value != null){
+ value = value.replace("\"", "");
+ }
+
+ if (name != null) {
+ name = name.concat(",").concat(value);
+ } else {
+ name = value;
+ }
+ }
+ String nameInsert = "'"+name+"'";
+ GroupServiceList groupServiceEntry = new GroupServiceList();
+ groupServiceEntry.setGroupName(groupName);
+ groupServiceEntry.setServiceList(nameInsert);
+ dbConnection.save(groupServiceEntry);
+ } else { //Insert JSON data serviceGroup table, protocollist table, and portlist table
+ String type = svcGroupListobj.get("type").toString().replace('"', '\'');
+ String transportProtocol = svcGroupListobj.get("transportProtocol").toString().replace('"', '\'');
+ String ports = svcGroupListobj.get("ports").toString().replace('"', '\'');
+
+ List<Object> result = dbConnection.getDataById(ServiceList.class, "name", groupName);
+ if(result != null && !result.isEmpty()){
+ ServiceList serviceEntry = (ServiceList) result.get(0);
+ dbConnection.delete(serviceEntry);
+ }
+
+ ServiceList serviceListEntry = new ServiceList();
+ serviceListEntry.setServiceName(groupName);
+ serviceListEntry.setServiceDescription(description);
+ serviceListEntry.setServiceType(type);
+ serviceListEntry.setServiceTransProtocol(transportProtocol);
+ serviceListEntry.setServiceAppProtocol("null");
+ serviceListEntry.setServicePorts(ports);
+ dbConnection.save(serviceListEntry);
+
+ List<Object> protocolResult = dbConnection.getDataById(ProtocolList.class, "protocolName", transportProtocol);
+ if(protocolResult == null || protocolResult.isEmpty()){
+ ProtocolList protocolEntry = new ProtocolList();
+ protocolEntry.setProtocolName(transportProtocol);
+ protocolEntry.setDescription(transportProtocol);
+ dbConnection.save(protocolEntry);
+ }
+
+ List<Object> portResult = dbConnection.getDataById(PortList.class, "portName", ports);
+ if(portResult == null || portResult.isEmpty()){
+ PortList portEntry = new PortList();
+ portEntry.setPortName(ports);
+ portEntry.setDescription(ports);
+ dbConnection.save(portEntry);
+ }
+ }
+ }
+ }
+
+ if (path.contains("addressGroups")) {
+ /*
+ * Inserting addressGroup data into the ADDRESSGROUP table
+ */
+ for(int ai=0; ai < addressGroup.size() ; ai++) {
+
+ /*
+ * Populate ArrayLists with values from the JSON
+ */
+ //create the JSON object from the JSON Array for each iteration through the for loop
+ JsonObject addressGroupObj = addressGroup.getJsonObject(ai);
+
+ //create JSON array for members
+ JsonArray membersArray = addressGroupObj.getJsonArray("members");
+ String addressGroupName = addressGroupObj.get("name").toString().replace('"', '\'');
+
+ String description = null;
+ if (addressGroupObj.containsKey("description")){
+ description = addressGroupObj.get("description").toString().replace('"', '\'');
+ }
+
+ String prefixIP = null;
+ String type = null;
+ for (int membersIndex=0; membersIndex < membersArray.size(); membersIndex++) {
+ JsonObject membersObj = membersArray.getJsonObject(membersIndex);
+ type = membersObj.get("type").toString().replace("\"", "");
+
+ String value = null;
+ if(type.equals("REFERENCE")||type.equals("GROUP")||type.equals("SERVICE")){
+ value = membersObj.get("name").toString();
+ } else if (type.equalsIgnoreCase("ANY")){
+ value = null;
+ } else {
+ value = membersObj.get("value").toString();
+ }
+
+ if(value != null){
+ value = value.replace("\"", "");
+ }
+
+ if (prefixIP != null) {
+ prefixIP = prefixIP.concat(",").concat(value);
+ } else {
+ prefixIP = value;
+ }
+ }
+
+ String prefixList = "'"+prefixIP+"'";
+ Boolean isAddressGroup = type.contains("REFERENCE");
+
+ if (isAddressGroup) {
+ List<Object> result = dbConnection.getDataById(AddressGroup.class, "name", addressGroupName);
+ if(result != null && !result.isEmpty()){
+ AddressGroup addressGroupEntry = (AddressGroup) result.get(0);
+ dbConnection.delete(addressGroupEntry);
+ }
+ AddressGroup newAddressGroup = new AddressGroup();
+ newAddressGroup.setGroupName(addressGroupName);
+ newAddressGroup.setDescription(description);
+ newAddressGroup.setServiceList(prefixList);
+ dbConnection.save(newAddressGroup);
+ } else {
+ List<Object> result = dbConnection.getDataById(PrefixList.class, "prefixListName", addressGroupName);
+ if(result != null && !result.isEmpty()){
+ PrefixList prefixListEntry = (PrefixList) result.get(0);
+ dbConnection.delete(prefixListEntry);
+ }
+ PrefixList newPrefixList = new PrefixList();
+ newPrefixList.setPrefixListName(addressGroupName);
+ newPrefixList.setDescription(description);
+ newPrefixList.setPrefixListValue(prefixList);
+ dbConnection.save(newPrefixList);
+ }
+ }
+ }
+ }
+
+ /*
+ * Remove duplicate values from 'lookup' dictionary tables
+ */
+ //ProtocolList Table
+ String protoDelete = "DELETE FROM protocollist USING protocollist, protocollist p1 "
+ + "WHERE protocollist.id > p1.id AND protocollist.protocolname = p1.protocolname;";
+ dbConnection.updateQuery(protoDelete);
+
+ //PortList Table
+ String portListDelete = "DELETE FROM portlist USING portlist, portlist p1 "
+ + "WHERE portlist.id > p1.id AND portlist.portname = p1.portname; ";
+ dbConnection.updateQuery(portListDelete);
+
+ //PrefixList Table
+ String prefixListDelete = "DELETE FROM prefixlist USING prefixlist, prefixlist p1 "
+ + "WHERE prefixlist.id > p1.id AND prefixlist.pl_name = p1.pl_name AND "
+ + "prefixlist.pl_value = p1.pl_value AND prefixlist.description = p1.description; ";
+ dbConnection.updateQuery(prefixListDelete);
+
+ //GroupServiceList
+ String groupServiceDelete = "DELETE FROM groupservicelist USING groupservicelist, groupservicelist g1 "
+ + "WHERE groupservicelist.id > g1.id AND groupservicelist.name = g1.name AND "
+ + "groupservicelist.serviceList = g1.serviceList; ";
+ dbConnection.updateQuery(groupServiceDelete);
+ }catch (Exception e) {
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, "FirewallConfigPolicy", "Exception executing Firewall queries");
+ return false;
+ }
+ return true;
+ } else {
+ return false;
+ }
+
+ }
+
+ private JsonObject stringToJson(String jsonString) {
+ //Read jsonBody to JsonObject
+ StringReader in = new StringReader(jsonString);
+ JsonReader jsonReader = Json.createReader(in);
+ JsonObject json = jsonReader.readObject();
+ jsonReader.close();
+ return json;
+ }
+
+ private JsonNode createPatch(String json, String oldJson) {
+ JsonNode oldJason = null;
+ JsonNode updatedJason = null;
+
+ try {
+ oldJason = JsonLoader.fromString(oldJson);
+ updatedJason = JsonLoader.fromString(json);
+ } catch (IOException e) {
+ LOGGER.error("Exception Occured"+e);
+ }
+ return JsonDiff.asJson(oldJason, updatedJason);
+ }
+
+ @Override
+ public Object getCorrectPolicyDataObject() {
+ return policyAdapter.getPolicyData();
+ }
} \ No newline at end of file
diff --git a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/MicroServiceConfigPolicy.java b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/MicroServiceConfigPolicy.java
index e02121125..26c7ed834 100644
--- a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/MicroServiceConfigPolicy.java
+++ b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/MicroServiceConfigPolicy.java
@@ -64,112 +64,112 @@ import oasis.names.tc.xacml._3_0.core.schema.wd_17.RuleType;
import oasis.names.tc.xacml._3_0.core.schema.wd_17.TargetType;
public class MicroServiceConfigPolicy extends Policy {
-
- private static final Logger LOGGER = FlexLogger.getLogger(MicroServiceConfigPolicy.class);
-
+
+ private static final Logger LOGGER = FlexLogger.getLogger(MicroServiceConfigPolicy.class);
+
private static Map<String, String> mapAttribute = new HashMap<>();
private static Map<String, String> mapMatch = new HashMap<>();
- private static synchronized Map<String, String> getMatchMap () {
- return mapMatch;
- }
-
- private static synchronized void setMatchMap(Map<String, String> mm) {
- mapMatch = mm;
- }
-
- public MicroServiceConfigPolicy() {
- super();
- }
-
- public MicroServiceConfigPolicy(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")){
- out.println(jsonBody);
- } catch (Exception e) {
- LOGGER.error("Exception Occured While writing Configuration data"+e);
- }
- }
-
-
- @Override
- public Map<String, String> savePolicies() throws PAPException {
-
- Map<String, String> successMap = new HashMap<>();
- if(isPolicyExists()){
- successMap.put("EXISTS", "This Policy already exist on the PAP");
- return successMap;
- }
-
- if(!isPreparedToSave()){
- //Prep and configure the policy for saving
- prepareToSave();
- }
-
- // 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;
- }
-
- //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{
-
- 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("Config")) {
- PolicyType policyConfig = new PolicyType();
-
- policyConfig.setVersion(Integer.toString(version));
- policyConfig.setPolicyId(policyID);
- policyConfig.setTarget(new TargetType());
- policyAdapter.setData(policyConfig);
- }
- policyName = policyAdapter.getNewFileName();
- if (policyAdapter.getData() != null) {
- // Save the Configurations file with the policy name with extention based on selection.
- String jsonBody = policyAdapter.getJsonBody();
- saveConfigurations(policyName, jsonBody);
-
- // Make sure the filename ends with an extension
- if (policyName.endsWith(".xml") == false) {
- policyName = policyName + ".xml";
- }
-
-
- PolicyType configPolicy = (PolicyType) policyAdapter.getData();
-
- configPolicy.setDescription(policyAdapter.getPolicyDescription());
-
- configPolicy.setRuleCombiningAlgId(policyAdapter.getRuleCombiningAlgId());
-
- 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());
- }
-
+ private static synchronized Map<String, String> getMatchMap () {
+ return mapMatch;
+ }
+
+ private static synchronized void setMatchMap(Map<String, String> mm) {
+ mapMatch = mm;
+ }
+
+ public MicroServiceConfigPolicy() {
+ super();
+ }
+
+ public MicroServiceConfigPolicy(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")){
+ out.println(jsonBody);
+ } catch (Exception e) {
+ LOGGER.error("Exception Occured While writing Configuration data"+e);
+ }
+ }
+
+
+ @Override
+ public Map<String, String> savePolicies() throws PAPException {
+
+ Map<String, String> successMap = new HashMap<>();
+ if(isPolicyExists()){
+ successMap.put("EXISTS", "This Policy already exist on the PAP");
+ return successMap;
+ }
+
+ if(!isPreparedToSave()){
+ //Prep and configure the policy for saving
+ prepareToSave();
+ }
+
+ // 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;
+ }
+
+ //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{
+
+ 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("Config")) {
+ PolicyType policyConfig = new PolicyType();
+
+ policyConfig.setVersion(Integer.toString(version));
+ policyConfig.setPolicyId(policyID);
+ policyConfig.setTarget(new TargetType());
+ policyAdapter.setData(policyConfig);
+ }
+ policyName = policyAdapter.getNewFileName();
+ if (policyAdapter.getData() != null) {
+ // Save the Configurations file with the policy name with extention based on selection.
+ String jsonBody = policyAdapter.getJsonBody();
+ saveConfigurations(policyName, jsonBody);
+
+ // Make sure the filename ends with an extension
+ if (policyName.endsWith(".xml") == false) {
+ policyName = policyName + ".xml";
+ }
+
+
+ PolicyType configPolicy = (PolicyType) policyAdapter.getData();
+
+ configPolicy.setDescription(policyAdapter.getPolicyDescription());
+
+ configPolicy.setRuleCombiningAlgId(policyAdapter.getRuleCombiningAlgId());
+
+ 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());
+ }
+
//setup values for pulling out matching attributes
ObjectMapper mapper = new ObjectMapper();
String matching = null;
@@ -196,124 +196,124 @@ public class MicroServiceConfigPolicy extends Policy {
throw new PAPException(e1);
}
- // Match for policyName
- allOfOne.getMatch().add(createMatch("PolicyName", name));
-
- AllOfType allOf = new AllOfType();
-
- // Adding the matches to AllOfType element Match for Onap
- allOf.getMatch().add(createMatch("ONAPName", policyAdapter.getOnapName()));
- if (matchMap==null || matchMap.isEmpty()){
- // Match for ConfigName
- allOf.getMatch().add(createMatch("ConfigName", policyAdapter.getConfigName()));
- // Match for Service
- allOf.getMatch().add(createDynamicMatch("service", policyAdapter.getServiceType()));
- // Match for uuid
- allOf.getMatch().add(createDynamicMatch("uuid", policyAdapter.getUuid()));
- // Match for location
- allOf.getMatch().add(createDynamicMatch("location", policyAdapter.getLocation()));
- }else {
- for (Entry<String, String> matchValue : matchMap.entrySet()){
- String value = matchValue.getValue();
- String key = matchValue.getKey().trim();
- if (value.contains("matching-true")){
- if (mapAttribute.containsKey(key)){
- allOf.getMatch().add(createDynamicMatch(key, mapAttribute.get(key)));
- }
- }
- }
- }
- // Match for riskType
- allOf.getMatch().add(
- createDynamicMatch("RiskType", policyAdapter.getRiskType()));
- // Match for riskLevel
- allOf.getMatch().add(
- createDynamicMatch("RiskLevel", String.valueOf(policyAdapter.getRiskLevel())));
- // Match for riskguard
- allOf.getMatch().add(
- createDynamicMatch("guard", policyAdapter.getGuard()));
- // Match for ttlDate
- allOf.getMatch().add(
- createDynamicMatch("TTLDate", policyAdapter.getTtlDate()));
-
- AnyOfType anyOf = new AnyOfType();
- anyOf.getAllOf().add(allOfOne);
- anyOf.getAllOf().add(allOf);
-
- TargetType target = new TargetType();
- ((TargetType) target).getAnyOf().add(anyOf);
-
- // Adding the target to the policy element
- configPolicy.setTarget((TargetType) target);
-
- RuleType rule = new RuleType();
- rule.setRuleId(policyAdapter.getRuleID());
-
- rule.setEffect(EffectType.PERMIT);
-
- // Create Target in Rule
- AllOfType allOfInRule = new AllOfType();
-
- // Creating match for ACCESS in rule target
- MatchType accessMatch = new MatchType();
- AttributeValueType accessAttributeValue = new AttributeValueType();
- accessAttributeValue.setDataType(STRING_DATATYPE);
- accessAttributeValue.getContent().add("ACCESS");
- accessMatch.setAttributeValue(accessAttributeValue);
- AttributeDesignatorType accessAttributeDesignator = new AttributeDesignatorType();
- URI accessURI = null;
- try {
- accessURI = new URI(ACTION_ID);
- } catch (URISyntaxException e) {
- PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, e, "MicroServiceConfigPolicy", "Exception creating ACCESS URI");
- }
- accessAttributeDesignator.setCategory(CATEGORY_ACTION);
- accessAttributeDesignator.setDataType(STRING_DATATYPE);
- accessAttributeDesignator.setAttributeId(new IdentifierImpl(accessURI).stringValue());
- accessMatch.setAttributeDesignator(accessAttributeDesignator);
- accessMatch.setMatchId(FUNCTION_STRING_EQUAL_IGNORE);
-
- // Creating Config Match in rule Target
- MatchType configMatch = new MatchType();
- AttributeValueType configAttributeValue = new AttributeValueType();
- configAttributeValue.setDataType(STRING_DATATYPE);
- configAttributeValue.getContent().add("Config");
- configMatch.setAttributeValue(configAttributeValue);
- AttributeDesignatorType configAttributeDesignator = new AttributeDesignatorType();
- URI configURI = null;
- try {
- configURI = new URI(RESOURCE_ID);
- } catch (URISyntaxException e) {
- PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, e, "MicroServiceConfigPolicy", "Exception creating Config URI");
- }
- configAttributeDesignator.setCategory(CATEGORY_RESOURCE);
- configAttributeDesignator.setDataType(STRING_DATATYPE);
- configAttributeDesignator.setAttributeId(new IdentifierImpl(configURI).stringValue());
- configMatch.setAttributeDesignator(configAttributeDesignator);
- configMatch.setMatchId(FUNCTION_STRING_EQUAL_IGNORE);
-
- allOfInRule.getMatch().add(accessMatch);
- allOfInRule.getMatch().add(configMatch);
-
- AnyOfType anyOfInRule = new AnyOfType();
- anyOfInRule.getAllOf().add(allOfInRule);
-
- TargetType targetInRule = new TargetType();
- targetInRule.getAnyOf().add(anyOfInRule);
-
- rule.setTarget(targetInRule);
- rule.setAdviceExpressions(getAdviceExpressions(version, policyName));
-
- configPolicy.getCombinerParametersOrRuleCombinerParametersOrVariableDefinition().add(rule);
- policyAdapter.setPolicyData(configPolicy);
-
- } else {
- PolicyLogger.error("Unsupported data object." + policyAdapter.getData().getClass().getCanonicalName());
- }
- setPreparedToSave(true);
- return true;
- }
-
+ // Match for policyName
+ allOfOne.getMatch().add(createMatch("PolicyName", name));
+
+ AllOfType allOf = new AllOfType();
+
+ // Adding the matches to AllOfType element Match for Onap
+ allOf.getMatch().add(createMatch("ONAPName", policyAdapter.getOnapName()));
+ if (matchMap==null || matchMap.isEmpty()){
+ // Match for ConfigName
+ allOf.getMatch().add(createMatch("ConfigName", policyAdapter.getConfigName()));
+ // Match for Service
+ allOf.getMatch().add(createDynamicMatch("service", policyAdapter.getServiceType()));
+ // Match for uuid
+ allOf.getMatch().add(createDynamicMatch("uuid", policyAdapter.getUuid()));
+ // Match for location
+ allOf.getMatch().add(createDynamicMatch("location", policyAdapter.getLocation()));
+ }else {
+ for (Entry<String, String> matchValue : matchMap.entrySet()){
+ String value = matchValue.getValue();
+ String key = matchValue.getKey().trim();
+ if (value.contains("matching-true")){
+ if (mapAttribute.containsKey(key)){
+ allOf.getMatch().add(createDynamicMatch(key, mapAttribute.get(key)));
+ }
+ }
+ }
+ }
+ // Match for riskType
+ allOf.getMatch().add(
+ createDynamicMatch("RiskType", policyAdapter.getRiskType()));
+ // Match for riskLevel
+ allOf.getMatch().add(
+ createDynamicMatch("RiskLevel", String.valueOf(policyAdapter.getRiskLevel())));
+ // Match for riskguard
+ allOf.getMatch().add(
+ createDynamicMatch("guard", policyAdapter.getGuard()));
+ // Match for ttlDate
+ allOf.getMatch().add(
+ createDynamicMatch("TTLDate", policyAdapter.getTtlDate()));
+
+ AnyOfType anyOf = new AnyOfType();
+ anyOf.getAllOf().add(allOfOne);
+ anyOf.getAllOf().add(allOf);
+
+ TargetType target = new TargetType();
+ ((TargetType) target).getAnyOf().add(anyOf);
+
+ // Adding the target to the policy element
+ configPolicy.setTarget((TargetType) target);
+
+ RuleType rule = new RuleType();
+ rule.setRuleId(policyAdapter.getRuleID());
+
+ rule.setEffect(EffectType.PERMIT);
+
+ // Create Target in Rule
+ AllOfType allOfInRule = new AllOfType();
+
+ // Creating match for ACCESS in rule target
+ MatchType accessMatch = new MatchType();
+ AttributeValueType accessAttributeValue = new AttributeValueType();
+ accessAttributeValue.setDataType(STRING_DATATYPE);
+ accessAttributeValue.getContent().add("ACCESS");
+ accessMatch.setAttributeValue(accessAttributeValue);
+ AttributeDesignatorType accessAttributeDesignator = new AttributeDesignatorType();
+ URI accessURI = null;
+ try {
+ accessURI = new URI(ACTION_ID);
+ } catch (URISyntaxException e) {
+ PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, e, "MicroServiceConfigPolicy", "Exception creating ACCESS URI");
+ }
+ accessAttributeDesignator.setCategory(CATEGORY_ACTION);
+ accessAttributeDesignator.setDataType(STRING_DATATYPE);
+ accessAttributeDesignator.setAttributeId(new IdentifierImpl(accessURI).stringValue());
+ accessMatch.setAttributeDesignator(accessAttributeDesignator);
+ accessMatch.setMatchId(FUNCTION_STRING_EQUAL_IGNORE);
+
+ // Creating Config Match in rule Target
+ MatchType configMatch = new MatchType();
+ AttributeValueType configAttributeValue = new AttributeValueType();
+ configAttributeValue.setDataType(STRING_DATATYPE);
+ configAttributeValue.getContent().add("Config");
+ configMatch.setAttributeValue(configAttributeValue);
+ AttributeDesignatorType configAttributeDesignator = new AttributeDesignatorType();
+ URI configURI = null;
+ try {
+ configURI = new URI(RESOURCE_ID);
+ } catch (URISyntaxException e) {
+ PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, e, "MicroServiceConfigPolicy", "Exception creating Config URI");
+ }
+ configAttributeDesignator.setCategory(CATEGORY_RESOURCE);
+ configAttributeDesignator.setDataType(STRING_DATATYPE);
+ configAttributeDesignator.setAttributeId(new IdentifierImpl(configURI).stringValue());
+ configMatch.setAttributeDesignator(configAttributeDesignator);
+ configMatch.setMatchId(FUNCTION_STRING_EQUAL_IGNORE);
+
+ allOfInRule.getMatch().add(accessMatch);
+ allOfInRule.getMatch().add(configMatch);
+
+ AnyOfType anyOfInRule = new AnyOfType();
+ anyOfInRule.getAllOf().add(allOfInRule);
+
+ TargetType targetInRule = new TargetType();
+ targetInRule.getAnyOf().add(anyOfInRule);
+
+ rule.setTarget(targetInRule);
+ rule.setAdviceExpressions(getAdviceExpressions(version, policyName));
+
+ configPolicy.getCombinerParametersOrRuleCombinerParametersOrVariableDefinition().add(rule);
+ policyAdapter.setPolicyData(configPolicy);
+
+ } else {
+ PolicyLogger.error("Unsupported data object." + policyAdapter.getData().getClass().getCanonicalName());
+ }
+ setPreparedToSave(true);
+ return true;
+ }
+
private void pullMatchValue(JsonNode rootNode) {
Iterator<Map.Entry<String, JsonNode>> fieldsIterator = rootNode.fields();
String newValue = null;
@@ -339,89 +339,89 @@ public class MicroServiceConfigPolicy extends Policy {
CommonClassDaoImpl dbConnection = new CommonClassDaoImpl();
List<Object> result = dbConnection.getDataById(MicroServiceModels.class, "modelName:version", modelName+":"+modelVersion);
if(result != null && !result.isEmpty()){
- MicroServiceModels model = (MicroServiceModels) result.get(0);
- ruleTemplate = model.getAnnotation();
+ MicroServiceModels model = (MicroServiceModels) result.get(0);
+ ruleTemplate = model.getAnnotation();
}
return ruleTemplate;
}
- // Data required for Advice part is setting here.
- private AdviceExpressionsType getAdviceExpressions(int version, String fileName) {
- AdviceExpressionsType advices = new AdviceExpressionsType();
- AdviceExpressionType advice = new AdviceExpressionType();
- advice.setAdviceId("MSID");
- advice.setAppliesTo(EffectType.PERMIT);
- // For Configuration
- AttributeAssignmentExpressionType assignment1 = new AttributeAssignmentExpressionType();
- assignment1.setAttributeId("type");
- assignment1.setCategory(CATEGORY_RESOURCE);
- assignment1.setIssuer("");
-
- AttributeValueType configNameAttributeValue = new AttributeValueType();
- configNameAttributeValue.setDataType(STRING_DATATYPE);
- configNameAttributeValue.getContent().add("Configuration");
- assignment1.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue));
-
- advice.getAttributeAssignmentExpression().add(assignment1);
- // For Config file Url if configurations are provided.
- AttributeAssignmentExpressionType assignment2 = new AttributeAssignmentExpressionType();
- assignment2.setAttributeId("URLID");
- assignment2.setCategory(CATEGORY_RESOURCE);
- assignment2.setIssuer("");
-
- AttributeValueType AttributeValue = new AttributeValueType();
- AttributeValue.setDataType(URI_DATATYPE);
- String configName;
- if(policyName.endsWith(".xml")){
- configName = policyName.replace(".xml", "");
- }else{
- configName = policyName;
- }
- String content = CONFIG_URL +"/Config/" + configName + ".json";
- AttributeValue.getContent().add(content);
- assignment2.setExpression(new ObjectFactory().createAttributeValue(AttributeValue));
-
- advice.getAttributeAssignmentExpression().add(assignment2);
- AttributeAssignmentExpressionType assignment3 = new AttributeAssignmentExpressionType();
- assignment3.setAttributeId("PolicyName");
- assignment3.setCategory(CATEGORY_RESOURCE);
- assignment3.setIssuer("");
-
- AttributeValueType attributeValue3 = new AttributeValueType();
- attributeValue3.setDataType(STRING_DATATYPE);
- fileName = FilenameUtils.removeExtension(fileName);
- fileName = fileName + ".xml";
- String name = fileName.substring(fileName.lastIndexOf("\\") + 1, fileName.length());
- if ((name == null) || (name.equals(""))) {
- name = fileName.substring(fileName.lastIndexOf("/") + 1, fileName.length());
- }
- attributeValue3.getContent().add(name);
- assignment3.setExpression(new ObjectFactory().createAttributeValue(attributeValue3));
- advice.getAttributeAssignmentExpression().add(assignment3);
-
- AttributeAssignmentExpressionType assignment4 = new AttributeAssignmentExpressionType();
- assignment4.setAttributeId("VersionNumber");
- assignment4.setCategory(CATEGORY_RESOURCE);
- assignment4.setIssuer("");
-
- AttributeValueType configNameAttributeValue4 = new AttributeValueType();
- configNameAttributeValue4.setDataType(STRING_DATATYPE);
- configNameAttributeValue4.getContent().add(Integer.toString(version));
- assignment4.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue4));
-
- advice.getAttributeAssignmentExpression().add(assignment4);
-
- AttributeAssignmentExpressionType assignment5 = new AttributeAssignmentExpressionType();
- assignment5.setAttributeId("matching:" + ONAPID);
- assignment5.setCategory(CATEGORY_RESOURCE);
- assignment5.setIssuer("");
-
- AttributeValueType configNameAttributeValue5 = new AttributeValueType();
- configNameAttributeValue5.setDataType(STRING_DATATYPE);
- configNameAttributeValue5.getContent().add(policyAdapter.getOnapName());
- assignment5.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue5));
-
- advice.getAttributeAssignmentExpression().add(assignment5);
+ // Data required for Advice part is setting here.
+ private AdviceExpressionsType getAdviceExpressions(int version, String fileName) {
+ AdviceExpressionsType advices = new AdviceExpressionsType();
+ AdviceExpressionType advice = new AdviceExpressionType();
+ advice.setAdviceId("MSID");
+ advice.setAppliesTo(EffectType.PERMIT);
+ // For Configuration
+ AttributeAssignmentExpressionType assignment1 = new AttributeAssignmentExpressionType();
+ assignment1.setAttributeId("type");
+ assignment1.setCategory(CATEGORY_RESOURCE);
+ assignment1.setIssuer("");
+
+ AttributeValueType configNameAttributeValue = new AttributeValueType();
+ configNameAttributeValue.setDataType(STRING_DATATYPE);
+ configNameAttributeValue.getContent().add("Configuration");
+ assignment1.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue));
+
+ advice.getAttributeAssignmentExpression().add(assignment1);
+ // For Config file Url if configurations are provided.
+ AttributeAssignmentExpressionType assignment2 = new AttributeAssignmentExpressionType();
+ assignment2.setAttributeId("URLID");
+ assignment2.setCategory(CATEGORY_RESOURCE);
+ assignment2.setIssuer("");
+
+ AttributeValueType AttributeValue = new AttributeValueType();
+ AttributeValue.setDataType(URI_DATATYPE);
+ String configName;
+ if(policyName.endsWith(".xml")){
+ configName = policyName.replace(".xml", "");
+ }else{
+ configName = policyName;
+ }
+ String content = CONFIG_URL +"/Config/" + configName + ".json";
+ AttributeValue.getContent().add(content);
+ assignment2.setExpression(new ObjectFactory().createAttributeValue(AttributeValue));
+
+ advice.getAttributeAssignmentExpression().add(assignment2);
+ AttributeAssignmentExpressionType assignment3 = new AttributeAssignmentExpressionType();
+ assignment3.setAttributeId("PolicyName");
+ assignment3.setCategory(CATEGORY_RESOURCE);
+ assignment3.setIssuer("");
+
+ AttributeValueType attributeValue3 = new AttributeValueType();
+ attributeValue3.setDataType(STRING_DATATYPE);
+ fileName = FilenameUtils.removeExtension(fileName);
+ fileName = fileName + ".xml";
+ String name = fileName.substring(fileName.lastIndexOf("\\") + 1, fileName.length());
+ if ((name == null) || (name.equals(""))) {
+ name = fileName.substring(fileName.lastIndexOf("/") + 1, fileName.length());
+ }
+ attributeValue3.getContent().add(name);
+ assignment3.setExpression(new ObjectFactory().createAttributeValue(attributeValue3));
+ advice.getAttributeAssignmentExpression().add(assignment3);
+
+ AttributeAssignmentExpressionType assignment4 = new AttributeAssignmentExpressionType();
+ assignment4.setAttributeId("VersionNumber");
+ assignment4.setCategory(CATEGORY_RESOURCE);
+ assignment4.setIssuer("");
+
+ AttributeValueType configNameAttributeValue4 = new AttributeValueType();
+ configNameAttributeValue4.setDataType(STRING_DATATYPE);
+ configNameAttributeValue4.getContent().add(Integer.toString(version));
+ assignment4.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue4));
+
+ advice.getAttributeAssignmentExpression().add(assignment4);
+
+ AttributeAssignmentExpressionType assignment5 = new AttributeAssignmentExpressionType();
+ assignment5.setAttributeId("matching:" + ONAPID);
+ assignment5.setCategory(CATEGORY_RESOURCE);
+ assignment5.setIssuer("");
+
+ AttributeValueType configNameAttributeValue5 = new AttributeValueType();
+ configNameAttributeValue5.setDataType(STRING_DATATYPE);
+ configNameAttributeValue5.getContent().add(policyAdapter.getOnapName());
+ assignment5.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue5));
+
+ advice.getAttributeAssignmentExpression().add(assignment5);
AttributeAssignmentExpressionType assignment7 = new AttributeAssignmentExpressionType();
assignment7.setAttributeId("matching:service");
@@ -437,42 +437,42 @@ public class MicroServiceConfigPolicy extends Policy {
Map<String, String> matchMap = getMatchMap();
if (matchMap==null || matchMap.isEmpty()){
- AttributeAssignmentExpressionType assignment6 = new AttributeAssignmentExpressionType();
- assignment6.setAttributeId("matching:" + CONFIGID);
- assignment6.setCategory(CATEGORY_RESOURCE);
- assignment6.setIssuer("");
+ AttributeAssignmentExpressionType assignment6 = new AttributeAssignmentExpressionType();
+ assignment6.setAttributeId("matching:" + CONFIGID);
+ assignment6.setCategory(CATEGORY_RESOURCE);
+ assignment6.setIssuer("");
- AttributeValueType configNameAttributeValue6 = new AttributeValueType();
- configNameAttributeValue6.setDataType(STRING_DATATYPE);
- configNameAttributeValue6.getContent().add(policyAdapter.getConfigName());
- assignment6.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue6));
+ AttributeValueType configNameAttributeValue6 = new AttributeValueType();
+ configNameAttributeValue6.setDataType(STRING_DATATYPE);
+ configNameAttributeValue6.getContent().add(policyAdapter.getConfigName());
+ assignment6.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue6));
- advice.getAttributeAssignmentExpression().add(assignment6);
+ advice.getAttributeAssignmentExpression().add(assignment6);
- AttributeAssignmentExpressionType assignment8 = new AttributeAssignmentExpressionType();
- assignment8.setAttributeId("matching:uuid");
- assignment8.setCategory(CATEGORY_RESOURCE);
- assignment8.setIssuer("");
+ AttributeAssignmentExpressionType assignment8 = new AttributeAssignmentExpressionType();
+ assignment8.setAttributeId("matching:uuid");
+ assignment8.setCategory(CATEGORY_RESOURCE);
+ assignment8.setIssuer("");
- AttributeValueType configNameAttributeValue8 = new AttributeValueType();
- configNameAttributeValue8.setDataType(STRING_DATATYPE);
- configNameAttributeValue8.getContent().add(policyAdapter.getUuid());
- assignment8.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue8));
+ AttributeValueType configNameAttributeValue8 = new AttributeValueType();
+ configNameAttributeValue8.setDataType(STRING_DATATYPE);
+ configNameAttributeValue8.getContent().add(policyAdapter.getUuid());
+ assignment8.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue8));
- advice.getAttributeAssignmentExpression().add(assignment8);
+ advice.getAttributeAssignmentExpression().add(assignment8);
- AttributeAssignmentExpressionType assignment9 = new AttributeAssignmentExpressionType();
- assignment9.setAttributeId("matching:Location");
- assignment9.setCategory(CATEGORY_RESOURCE);
- assignment9.setIssuer("");
+ AttributeAssignmentExpressionType assignment9 = new AttributeAssignmentExpressionType();
+ assignment9.setAttributeId("matching:Location");
+ assignment9.setCategory(CATEGORY_RESOURCE);
+ assignment9.setIssuer("");
- AttributeValueType configNameAttributeValue9 = new AttributeValueType();
- configNameAttributeValue9.setDataType(STRING_DATATYPE);
- configNameAttributeValue9.getContent().add(policyAdapter.getLocation());
- assignment9.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue9));
+ AttributeValueType configNameAttributeValue9 = new AttributeValueType();
+ configNameAttributeValue9.setDataType(STRING_DATATYPE);
+ configNameAttributeValue9.getContent().add(policyAdapter.getLocation());
+ assignment9.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue9));
- advice.getAttributeAssignmentExpression().add(assignment9);
+ advice.getAttributeAssignmentExpression().add(assignment9);
} else {
for (Entry<String, String> matchValue : matchMap.entrySet()){
String value = matchValue.getValue();
@@ -496,73 +496,73 @@ public class MicroServiceConfigPolicy extends Policy {
}
}
- AttributeAssignmentExpressionType assignment10 = new AttributeAssignmentExpressionType();
- assignment10.setAttributeId("Priority");
- assignment10.setCategory(CATEGORY_RESOURCE);
- assignment10.setIssuer("");
-
- AttributeValueType configNameAttributeValue10 = new AttributeValueType();
- configNameAttributeValue10.setDataType(STRING_DATATYPE);
- configNameAttributeValue10.getContent().add(policyAdapter.getPriority());
- assignment10.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue10));
-
- advice.getAttributeAssignmentExpression().add(assignment10);
-
- //Risk Attributes
- AttributeAssignmentExpressionType assignment11 = new AttributeAssignmentExpressionType();
- assignment11.setAttributeId("RiskType");
- assignment11.setCategory(CATEGORY_RESOURCE);
- assignment11.setIssuer("");
-
- AttributeValueType configNameAttributeValue11 = new AttributeValueType();
- configNameAttributeValue11.setDataType(STRING_DATATYPE);
- configNameAttributeValue11.getContent().add(policyAdapter.getRiskType());
- assignment11.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue11));
-
- advice.getAttributeAssignmentExpression().add(assignment11);
-
- AttributeAssignmentExpressionType assignment12 = new AttributeAssignmentExpressionType();
- assignment12.setAttributeId("RiskLevel");
- assignment12.setCategory(CATEGORY_RESOURCE);
- assignment12.setIssuer("");
-
- AttributeValueType configNameAttributeValue12 = new AttributeValueType();
- configNameAttributeValue12.setDataType(STRING_DATATYPE);
- configNameAttributeValue12.getContent().add(policyAdapter.getRiskLevel());
- assignment12.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue12));
-
- advice.getAttributeAssignmentExpression().add(assignment12);
-
- AttributeAssignmentExpressionType assignment13 = new AttributeAssignmentExpressionType();
- assignment13.setAttributeId("guard");
- assignment13.setCategory(CATEGORY_RESOURCE);
- assignment13.setIssuer("");
-
- AttributeValueType configNameAttributeValue13 = new AttributeValueType();
- configNameAttributeValue13.setDataType(STRING_DATATYPE);
- configNameAttributeValue13.getContent().add(policyAdapter.getGuard());
- assignment13.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue13));
-
- advice.getAttributeAssignmentExpression().add(assignment13);
-
- AttributeAssignmentExpressionType assignment14 = new AttributeAssignmentExpressionType();
- assignment14.setAttributeId("TTLDate");
- assignment14.setCategory(CATEGORY_RESOURCE);
- assignment14.setIssuer("");
-
- AttributeValueType configNameAttributeValue14 = new AttributeValueType();
- configNameAttributeValue14.setDataType(STRING_DATATYPE);
- configNameAttributeValue14.getContent().add(policyAdapter.getTtlDate());
- assignment14.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue14));
-
- advice.getAttributeAssignmentExpression().add(assignment14);
-
- advices.getAdviceExpression().add(advice);
- return advices;
- }
-
- @Override
- public Object getCorrectPolicyDataObject() {
- return policyAdapter.getPolicyData();
- }
+ AttributeAssignmentExpressionType assignment10 = new AttributeAssignmentExpressionType();
+ assignment10.setAttributeId("Priority");
+ assignment10.setCategory(CATEGORY_RESOURCE);
+ assignment10.setIssuer("");
+
+ AttributeValueType configNameAttributeValue10 = new AttributeValueType();
+ configNameAttributeValue10.setDataType(STRING_DATATYPE);
+ configNameAttributeValue10.getContent().add(policyAdapter.getPriority());
+ assignment10.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue10));
+
+ advice.getAttributeAssignmentExpression().add(assignment10);
+
+ //Risk Attributes
+ AttributeAssignmentExpressionType assignment11 = new AttributeAssignmentExpressionType();
+ assignment11.setAttributeId("RiskType");
+ assignment11.setCategory(CATEGORY_RESOURCE);
+ assignment11.setIssuer("");
+
+ AttributeValueType configNameAttributeValue11 = new AttributeValueType();
+ configNameAttributeValue11.setDataType(STRING_DATATYPE);
+ configNameAttributeValue11.getContent().add(policyAdapter.getRiskType());
+ assignment11.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue11));
+
+ advice.getAttributeAssignmentExpression().add(assignment11);
+
+ AttributeAssignmentExpressionType assignment12 = new AttributeAssignmentExpressionType();
+ assignment12.setAttributeId("RiskLevel");
+ assignment12.setCategory(CATEGORY_RESOURCE);
+ assignment12.setIssuer("");
+
+ AttributeValueType configNameAttributeValue12 = new AttributeValueType();
+ configNameAttributeValue12.setDataType(STRING_DATATYPE);
+ configNameAttributeValue12.getContent().add(policyAdapter.getRiskLevel());
+ assignment12.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue12));
+
+ advice.getAttributeAssignmentExpression().add(assignment12);
+
+ AttributeAssignmentExpressionType assignment13 = new AttributeAssignmentExpressionType();
+ assignment13.setAttributeId("guard");
+ assignment13.setCategory(CATEGORY_RESOURCE);
+ assignment13.setIssuer("");
+
+ AttributeValueType configNameAttributeValue13 = new AttributeValueType();
+ configNameAttributeValue13.setDataType(STRING_DATATYPE);
+ configNameAttributeValue13.getContent().add(policyAdapter.getGuard());
+ assignment13.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue13));
+
+ advice.getAttributeAssignmentExpression().add(assignment13);
+
+ AttributeAssignmentExpressionType assignment14 = new AttributeAssignmentExpressionType();
+ assignment14.setAttributeId("TTLDate");
+ assignment14.setCategory(CATEGORY_RESOURCE);
+ assignment14.setIssuer("");
+
+ AttributeValueType configNameAttributeValue14 = new AttributeValueType();
+ configNameAttributeValue14.setDataType(STRING_DATATYPE);
+ configNameAttributeValue14.getContent().add(policyAdapter.getTtlDate());
+ assignment14.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue14));
+
+ advice.getAttributeAssignmentExpression().add(assignment14);
+
+ advices.getAdviceExpression().add(advice);
+ return advices;
+ }
+
+ @Override
+ public Object getCorrectPolicyDataObject() {
+ return policyAdapter.getPolicyData();
+ }
}
diff --git a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/OptimizationConfigPolicy.java b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/OptimizationConfigPolicy.java
index 18d588c8f..2719a155b 100644
--- a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/OptimizationConfigPolicy.java
+++ b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/OptimizationConfigPolicy.java
@@ -64,114 +64,114 @@ import oasis.names.tc.xacml._3_0.core.schema.wd_17.RuleType;
import oasis.names.tc.xacml._3_0.core.schema.wd_17.TargetType;
public class OptimizationConfigPolicy extends Policy {
-
- private static final Logger LOGGER = FlexLogger.getLogger(OptimizationConfigPolicy.class);
-
+
+ private static final Logger LOGGER = FlexLogger.getLogger(OptimizationConfigPolicy.class);
+
private static Map<String, String> mapAttribute = new HashMap<>();
private static Map<String, String> mapMatch = new HashMap<>();
- private static synchronized Map<String, String> getMatchMap () {
- return mapMatch;
- }
-
- private static synchronized void setMatchMap(Map<String, String> mm) {
- mapMatch = mm;
- }
-
- public OptimizationConfigPolicy() {
- super();
- }
-
- public OptimizationConfigPolicy(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");){
- out.println(jsonBody);
- } catch (Exception e) {
- LOGGER.error("Exception Occured While writing Configuration data"+e);
- }
- }
-
-
- @Override
- public Map<String, String> savePolicies() throws PAPException {
-
- Map<String, String> successMap = new HashMap<>();
- if(isPolicyExists()){
- successMap.put("EXISTS", "This Policy already exist on the PAP");
- return successMap;
- }
-
- if(!isPreparedToSave()){
- //Prep and configure the policy for saving
- prepareToSave();
- }
-
- // 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;
- }
-
- //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{
-
- 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("Config")) {
- PolicyType policyConfig = new PolicyType();
-
- policyConfig.setVersion(Integer.toString(version));
- policyConfig.setPolicyId(policyID);
- policyConfig.setTarget(new TargetType());
- policyAdapter.setData(policyConfig);
- }
- policyName = policyAdapter.getNewFileName();
- if (policyAdapter.getData() != null) {
- // Save the Configurations file with the policy name with extention based on selection.
- String jsonBody = policyAdapter.getJsonBody();
- saveConfigurations(policyName, jsonBody);
-
- // Make sure the filename ends with an extension
- if (!policyName.endsWith(".xml")) {
- policyName = policyName + ".xml";
- }
-
-
- PolicyType configPolicy = (PolicyType) policyAdapter.getData();
-
- configPolicy.setDescription(policyAdapter.getPolicyDescription());
-
- configPolicy.setRuleCombiningAlgId(policyAdapter.getRuleCombiningAlgId());
-
- 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());
- }
-
+ private static synchronized Map<String, String> getMatchMap () {
+ return mapMatch;
+ }
+
+ private static synchronized void setMatchMap(Map<String, String> mm) {
+ mapMatch = mm;
+ }
+
+ public OptimizationConfigPolicy() {
+ super();
+ }
+
+ public OptimizationConfigPolicy(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");){
+ out.println(jsonBody);
+ } catch (Exception e) {
+ LOGGER.error("Exception Occured While writing Configuration data"+e);
+ }
+ }
+
+
+ @Override
+ public Map<String, String> savePolicies() throws PAPException {
+
+ Map<String, String> successMap = new HashMap<>();
+ if(isPolicyExists()){
+ successMap.put("EXISTS", "This Policy already exist on the PAP");
+ return successMap;
+ }
+
+ if(!isPreparedToSave()){
+ //Prep and configure the policy for saving
+ prepareToSave();
+ }
+
+ // 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;
+ }
+
+ //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{
+
+ 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("Config")) {
+ PolicyType policyConfig = new PolicyType();
+
+ policyConfig.setVersion(Integer.toString(version));
+ policyConfig.setPolicyId(policyID);
+ policyConfig.setTarget(new TargetType());
+ policyAdapter.setData(policyConfig);
+ }
+ policyName = policyAdapter.getNewFileName();
+ if (policyAdapter.getData() != null) {
+ // Save the Configurations file with the policy name with extention based on selection.
+ String jsonBody = policyAdapter.getJsonBody();
+ saveConfigurations(policyName, jsonBody);
+
+ // Make sure the filename ends with an extension
+ if (!policyName.endsWith(".xml")) {
+ policyName = policyName + ".xml";
+ }
+
+
+ PolicyType configPolicy = (PolicyType) policyAdapter.getData();
+
+ configPolicy.setDescription(policyAdapter.getPolicyDescription());
+
+ configPolicy.setRuleCombiningAlgId(policyAdapter.getRuleCombiningAlgId());
+
+ 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());
+ }
+
//setup values for pulling out matching attributes
ObjectMapper mapper = new ObjectMapper();
String matching = null;
@@ -198,114 +198,114 @@ public class OptimizationConfigPolicy extends Policy {
throw new PAPException(e1);
}
- // Match for policyName
- allOfOne.getMatch().add(createMatch("PolicyName", name));
-
- AllOfType allOf = new AllOfType();
-
- // Adding the matches to AllOfType element Match for Onap
- allOf.getMatch().add(createMatch("ONAPName", policyAdapter.getOnapName()));
- if (matchMap!=null && !matchMap.isEmpty()) {
- for (Entry<String, String> matchValue : matchMap.entrySet()){
- String value = matchValue.getValue();
- String key = matchValue.getKey().trim();
- if (value.contains("matching-true") && mapAttribute.containsKey(key)){
- allOf.getMatch().add(createDynamicMatch(key, mapAttribute.get(key)));
- }
- }
- }
-
- // Match for riskType
- allOf.getMatch().add(
- createDynamicMatch("RiskType", policyAdapter.getRiskType()));
- // Match for riskLevel
- allOf.getMatch().add(
- createDynamicMatch("RiskLevel", String.valueOf(policyAdapter.getRiskLevel())));
- // Match for riskguard
- allOf.getMatch().add(
- createDynamicMatch("guard", policyAdapter.getGuard()));
- // Match for ttlDate
- allOf.getMatch().add(
- createDynamicMatch("TTLDate", policyAdapter.getTtlDate()));
-
- AnyOfType anyOf = new AnyOfType();
- anyOf.getAllOf().add(allOfOne);
- anyOf.getAllOf().add(allOf);
-
- TargetType target = new TargetType();
- target.getAnyOf().add(anyOf);
-
- // Adding the target to the policy element
- configPolicy.setTarget((TargetType) target);
-
- RuleType rule = new RuleType();
- rule.setRuleId(policyAdapter.getRuleID());
-
- rule.setEffect(EffectType.PERMIT);
-
- // Create Target in Rule
- AllOfType allOfInRule = new AllOfType();
-
- // Creating match for ACCESS in rule target
- MatchType accessMatch = new MatchType();
- AttributeValueType accessAttributeValue = new AttributeValueType();
- accessAttributeValue.setDataType(STRING_DATATYPE);
- accessAttributeValue.getContent().add("ACCESS");
- accessMatch.setAttributeValue(accessAttributeValue);
- AttributeDesignatorType accessAttributeDesignator = new AttributeDesignatorType();
- URI accessURI = null;
- try {
- accessURI = new URI(ACTION_ID);
- } catch (URISyntaxException e) {
- PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, e, "OptimizationConfigPolicy", "Exception creating ACCESS URI");
- }
- accessAttributeDesignator.setCategory(CATEGORY_ACTION);
- accessAttributeDesignator.setDataType(STRING_DATATYPE);
- accessAttributeDesignator.setAttributeId(new IdentifierImpl(accessURI).stringValue());
- accessMatch.setAttributeDesignator(accessAttributeDesignator);
- accessMatch.setMatchId(FUNCTION_STRING_EQUAL_IGNORE);
-
- // Creating Config Match in rule Target
- MatchType configMatch = new MatchType();
- AttributeValueType configAttributeValue = new AttributeValueType();
- configAttributeValue.setDataType(STRING_DATATYPE);
- configAttributeValue.getContent().add("Config");
- configMatch.setAttributeValue(configAttributeValue);
- AttributeDesignatorType configAttributeDesignator = new AttributeDesignatorType();
- URI configURI = null;
- try {
- configURI = new URI(RESOURCE_ID);
- } catch (URISyntaxException e) {
- PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, e, "OptimizationConfigPolicy", "Exception creating Config URI");
- }
- configAttributeDesignator.setCategory(CATEGORY_RESOURCE);
- configAttributeDesignator.setDataType(STRING_DATATYPE);
- configAttributeDesignator.setAttributeId(new IdentifierImpl(configURI).stringValue());
- configMatch.setAttributeDesignator(configAttributeDesignator);
- configMatch.setMatchId(FUNCTION_STRING_EQUAL_IGNORE);
-
- allOfInRule.getMatch().add(accessMatch);
- allOfInRule.getMatch().add(configMatch);
-
- AnyOfType anyOfInRule = new AnyOfType();
- anyOfInRule.getAllOf().add(allOfInRule);
-
- TargetType targetInRule = new TargetType();
- targetInRule.getAnyOf().add(anyOfInRule);
-
- rule.setTarget(targetInRule);
- rule.setAdviceExpressions(getAdviceExpressions(version, policyName));
-
- configPolicy.getCombinerParametersOrRuleCombinerParametersOrVariableDefinition().add(rule);
- policyAdapter.setPolicyData(configPolicy);
-
- } else {
- PolicyLogger.error("Unsupported data object." + policyAdapter.getData().getClass().getCanonicalName());
- }
- setPreparedToSave(true);
- return true;
- }
-
+ // Match for policyName
+ allOfOne.getMatch().add(createMatch("PolicyName", name));
+
+ AllOfType allOf = new AllOfType();
+
+ // Adding the matches to AllOfType element Match for Onap
+ allOf.getMatch().add(createMatch("ONAPName", policyAdapter.getOnapName()));
+ if (matchMap!=null && !matchMap.isEmpty()) {
+ for (Entry<String, String> matchValue : matchMap.entrySet()){
+ String value = matchValue.getValue();
+ String key = matchValue.getKey().trim();
+ if (value.contains("matching-true") && mapAttribute.containsKey(key)){
+ allOf.getMatch().add(createDynamicMatch(key, mapAttribute.get(key)));
+ }
+ }
+ }
+
+ // Match for riskType
+ allOf.getMatch().add(
+ createDynamicMatch("RiskType", policyAdapter.getRiskType()));
+ // Match for riskLevel
+ allOf.getMatch().add(
+ createDynamicMatch("RiskLevel", String.valueOf(policyAdapter.getRiskLevel())));
+ // Match for riskguard
+ allOf.getMatch().add(
+ createDynamicMatch("guard", policyAdapter.getGuard()));
+ // Match for ttlDate
+ allOf.getMatch().add(
+ createDynamicMatch("TTLDate", policyAdapter.getTtlDate()));
+
+ AnyOfType anyOf = new AnyOfType();
+ anyOf.getAllOf().add(allOfOne);
+ anyOf.getAllOf().add(allOf);
+
+ TargetType target = new TargetType();
+ target.getAnyOf().add(anyOf);
+
+ // Adding the target to the policy element
+ configPolicy.setTarget((TargetType) target);
+
+ RuleType rule = new RuleType();
+ rule.setRuleId(policyAdapter.getRuleID());
+
+ rule.setEffect(EffectType.PERMIT);
+
+ // Create Target in Rule
+ AllOfType allOfInRule = new AllOfType();
+
+ // Creating match for ACCESS in rule target
+ MatchType accessMatch = new MatchType();
+ AttributeValueType accessAttributeValue = new AttributeValueType();
+ accessAttributeValue.setDataType(STRING_DATATYPE);
+ accessAttributeValue.getContent().add("ACCESS");
+ accessMatch.setAttributeValue(accessAttributeValue);
+ AttributeDesignatorType accessAttributeDesignator = new AttributeDesignatorType();
+ URI accessURI = null;
+ try {
+ accessURI = new URI(ACTION_ID);
+ } catch (URISyntaxException e) {
+ PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, e, "OptimizationConfigPolicy", "Exception creating ACCESS URI");
+ }
+ accessAttributeDesignator.setCategory(CATEGORY_ACTION);
+ accessAttributeDesignator.setDataType(STRING_DATATYPE);
+ accessAttributeDesignator.setAttributeId(new IdentifierImpl(accessURI).stringValue());
+ accessMatch.setAttributeDesignator(accessAttributeDesignator);
+ accessMatch.setMatchId(FUNCTION_STRING_EQUAL_IGNORE);
+
+ // Creating Config Match in rule Target
+ MatchType configMatch = new MatchType();
+ AttributeValueType configAttributeValue = new AttributeValueType();
+ configAttributeValue.setDataType(STRING_DATATYPE);
+ configAttributeValue.getContent().add("Config");
+ configMatch.setAttributeValue(configAttributeValue);
+ AttributeDesignatorType configAttributeDesignator = new AttributeDesignatorType();
+ URI configURI = null;
+ try {
+ configURI = new URI(RESOURCE_ID);
+ } catch (URISyntaxException e) {
+ PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, e, "OptimizationConfigPolicy", "Exception creating Config URI");
+ }
+ configAttributeDesignator.setCategory(CATEGORY_RESOURCE);
+ configAttributeDesignator.setDataType(STRING_DATATYPE);
+ configAttributeDesignator.setAttributeId(new IdentifierImpl(configURI).stringValue());
+ configMatch.setAttributeDesignator(configAttributeDesignator);
+ configMatch.setMatchId(FUNCTION_STRING_EQUAL_IGNORE);
+
+ allOfInRule.getMatch().add(accessMatch);
+ allOfInRule.getMatch().add(configMatch);
+
+ AnyOfType anyOfInRule = new AnyOfType();
+ anyOfInRule.getAllOf().add(allOfInRule);
+
+ TargetType targetInRule = new TargetType();
+ targetInRule.getAnyOf().add(anyOfInRule);
+
+ rule.setTarget(targetInRule);
+ rule.setAdviceExpressions(getAdviceExpressions(version, policyName));
+
+ configPolicy.getCombinerParametersOrRuleCombinerParametersOrVariableDefinition().add(rule);
+ policyAdapter.setPolicyData(configPolicy);
+
+ } else {
+ PolicyLogger.error("Unsupported data object." + policyAdapter.getData().getClass().getCanonicalName());
+ }
+ setPreparedToSave(true);
+ return true;
+ }
+
private void pullMatchValue(JsonNode rootNode) {
Iterator<Map.Entry<String, JsonNode>> fieldsIterator = rootNode.fields();
String newValue = null;
@@ -331,97 +331,97 @@ public class OptimizationConfigPolicy extends Policy {
CommonClassDaoImpl dbConnection = new CommonClassDaoImpl();
List<Object> result = dbConnection.getDataById(OptimizationModels.class, "modelName:version", modelName+":"+modelVersion);
if(result != null && !result.isEmpty()){
- OptimizationModels model = (OptimizationModels) result.get(0);
- ruleTemplate = model.getAnnotation();
+ OptimizationModels model = (OptimizationModels) result.get(0);
+ ruleTemplate = model.getAnnotation();
}
return ruleTemplate;
}
- // Data required for Advice part is setting here.
- private AdviceExpressionsType getAdviceExpressions(int version, String fileName) {
- AdviceExpressionsType advices = new AdviceExpressionsType();
- AdviceExpressionType advice = new AdviceExpressionType();
- advice.setAdviceId("OptimizationID");
- advice.setAppliesTo(EffectType.PERMIT);
-
- // For Configuration
- AttributeAssignmentExpressionType assignment1 = new AttributeAssignmentExpressionType();
- assignment1.setAttributeId("type");
- assignment1.setCategory(CATEGORY_RESOURCE);
- assignment1.setIssuer("");
-
- AttributeValueType configNameAttributeValue = new AttributeValueType();
- configNameAttributeValue.setDataType(STRING_DATATYPE);
- configNameAttributeValue.getContent().add("Configuration");
- assignment1.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue));
-
- advice.getAttributeAssignmentExpression().add(assignment1);
-
- // For Config file Url if configurations are provided.
- AttributeAssignmentExpressionType assignment2 = new AttributeAssignmentExpressionType();
- assignment2.setAttributeId("URLID");
- assignment2.setCategory(CATEGORY_RESOURCE);
- assignment2.setIssuer("");
-
- AttributeValueType attributeValue = new AttributeValueType();
- attributeValue.setDataType(URI_DATATYPE);
- String configName;
- if(policyName.endsWith(".xml")){
- configName = policyName.replace(".xml", "");
- }else{
- configName = policyName;
- }
- String content = CONFIG_URL +"/Config/" + configName + ".json";
- attributeValue.getContent().add(content);
- assignment2.setExpression(new ObjectFactory().createAttributeValue(attributeValue));
-
- advice.getAttributeAssignmentExpression().add(assignment2);
-
- //PolicyName Attribute Assignment
- AttributeAssignmentExpressionType assignment3 = new AttributeAssignmentExpressionType();
- assignment3.setAttributeId("PolicyName");
- assignment3.setCategory(CATEGORY_RESOURCE);
- assignment3.setIssuer("");
-
- AttributeValueType attributeValue3 = new AttributeValueType();
- attributeValue3.setDataType(STRING_DATATYPE);
- fileName = FilenameUtils.removeExtension(fileName);
- fileName = fileName + ".xml";
- String name = fileName.substring(fileName.lastIndexOf('\\') + 1, fileName.length());
- if ((name == null) || (name.equals(""))) {
- name = fileName.substring(fileName.lastIndexOf('/') + 1, fileName.length());
- }
- attributeValue3.getContent().add(name);
- assignment3.setExpression(new ObjectFactory().createAttributeValue(attributeValue3));
- advice.getAttributeAssignmentExpression().add(assignment3);
-
- //VersionNumber Attribute Assignment
- AttributeAssignmentExpressionType assignment4 = new AttributeAssignmentExpressionType();
- assignment4.setAttributeId("VersionNumber");
- assignment4.setCategory(CATEGORY_RESOURCE);
- assignment4.setIssuer("");
-
- AttributeValueType configNameAttributeValue4 = new AttributeValueType();
- configNameAttributeValue4.setDataType(STRING_DATATYPE);
- configNameAttributeValue4.getContent().add(Integer.toString(version));
- assignment4.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue4));
-
- advice.getAttributeAssignmentExpression().add(assignment4);
-
- //OnapName Attribute Assignment
- AttributeAssignmentExpressionType assignment5 = new AttributeAssignmentExpressionType();
- assignment5.setAttributeId("matching:" + ONAPID);
- assignment5.setCategory(CATEGORY_RESOURCE);
- assignment5.setIssuer("");
-
- AttributeValueType configNameAttributeValue5 = new AttributeValueType();
- configNameAttributeValue5.setDataType(STRING_DATATYPE);
- configNameAttributeValue5.getContent().add(policyAdapter.getOnapName());
- assignment5.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue5));
-
- advice.getAttributeAssignmentExpression().add(assignment5);
-
- //ServiceType Attribute Assignment
+ // Data required for Advice part is setting here.
+ private AdviceExpressionsType getAdviceExpressions(int version, String fileName) {
+ AdviceExpressionsType advices = new AdviceExpressionsType();
+ AdviceExpressionType advice = new AdviceExpressionType();
+ advice.setAdviceId("OptimizationID");
+ advice.setAppliesTo(EffectType.PERMIT);
+
+ // For Configuration
+ AttributeAssignmentExpressionType assignment1 = new AttributeAssignmentExpressionType();
+ assignment1.setAttributeId("type");
+ assignment1.setCategory(CATEGORY_RESOURCE);
+ assignment1.setIssuer("");
+
+ AttributeValueType configNameAttributeValue = new AttributeValueType();
+ configNameAttributeValue.setDataType(STRING_DATATYPE);
+ configNameAttributeValue.getContent().add("Configuration");
+ assignment1.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue));
+
+ advice.getAttributeAssignmentExpression().add(assignment1);
+
+ // For Config file Url if configurations are provided.
+ AttributeAssignmentExpressionType assignment2 = new AttributeAssignmentExpressionType();
+ assignment2.setAttributeId("URLID");
+ assignment2.setCategory(CATEGORY_RESOURCE);
+ assignment2.setIssuer("");
+
+ AttributeValueType attributeValue = new AttributeValueType();
+ attributeValue.setDataType(URI_DATATYPE);
+ String configName;
+ if(policyName.endsWith(".xml")){
+ configName = policyName.replace(".xml", "");
+ }else{
+ configName = policyName;
+ }
+ String content = CONFIG_URL +"/Config/" + configName + ".json";
+ attributeValue.getContent().add(content);
+ assignment2.setExpression(new ObjectFactory().createAttributeValue(attributeValue));
+
+ advice.getAttributeAssignmentExpression().add(assignment2);
+
+ //PolicyName Attribute Assignment
+ AttributeAssignmentExpressionType assignment3 = new AttributeAssignmentExpressionType();
+ assignment3.setAttributeId("PolicyName");
+ assignment3.setCategory(CATEGORY_RESOURCE);
+ assignment3.setIssuer("");
+
+ AttributeValueType attributeValue3 = new AttributeValueType();
+ attributeValue3.setDataType(STRING_DATATYPE);
+ fileName = FilenameUtils.removeExtension(fileName);
+ fileName = fileName + ".xml";
+ String name = fileName.substring(fileName.lastIndexOf('\\') + 1, fileName.length());
+ if ((name == null) || (name.equals(""))) {
+ name = fileName.substring(fileName.lastIndexOf('/') + 1, fileName.length());
+ }
+ attributeValue3.getContent().add(name);
+ assignment3.setExpression(new ObjectFactory().createAttributeValue(attributeValue3));
+ advice.getAttributeAssignmentExpression().add(assignment3);
+
+ //VersionNumber Attribute Assignment
+ AttributeAssignmentExpressionType assignment4 = new AttributeAssignmentExpressionType();
+ assignment4.setAttributeId("VersionNumber");
+ assignment4.setCategory(CATEGORY_RESOURCE);
+ assignment4.setIssuer("");
+
+ AttributeValueType configNameAttributeValue4 = new AttributeValueType();
+ configNameAttributeValue4.setDataType(STRING_DATATYPE);
+ configNameAttributeValue4.getContent().add(Integer.toString(version));
+ assignment4.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue4));
+
+ advice.getAttributeAssignmentExpression().add(assignment4);
+
+ //OnapName Attribute Assignment
+ AttributeAssignmentExpressionType assignment5 = new AttributeAssignmentExpressionType();
+ assignment5.setAttributeId("matching:" + ONAPID);
+ assignment5.setCategory(CATEGORY_RESOURCE);
+ assignment5.setIssuer("");
+
+ AttributeValueType configNameAttributeValue5 = new AttributeValueType();
+ configNameAttributeValue5.setDataType(STRING_DATATYPE);
+ configNameAttributeValue5.getContent().add(policyAdapter.getOnapName());
+ assignment5.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue5));
+
+ advice.getAttributeAssignmentExpression().add(assignment5);
+
+ //ServiceType Attribute Assignment
AttributeAssignmentExpressionType assignment7 = new AttributeAssignmentExpressionType();
assignment7.setAttributeId("matching:service");
assignment7.setCategory(CATEGORY_RESOURCE);
@@ -437,7 +437,7 @@ public class OptimizationConfigPolicy extends Policy {
// Add matching attribute assignments if exist
Map<String, String> matchMap = getMatchMap();
if (matchMap!=null && !matchMap.isEmpty()) {
- for (Entry<String, String> matchValue : matchMap.entrySet()){
+ for (Entry<String, String> matchValue : matchMap.entrySet()){
String value = matchValue.getValue();
String key = matchValue.getKey().trim();
if (value.contains("matching-true") && mapAttribute.containsKey(key)){
@@ -457,76 +457,76 @@ public class OptimizationConfigPolicy extends Policy {
}
// Priority Attribute Assignment
- AttributeAssignmentExpressionType assignment10 = new AttributeAssignmentExpressionType();
- assignment10.setAttributeId("Priority");
- assignment10.setCategory(CATEGORY_RESOURCE);
- assignment10.setIssuer("");
-
- AttributeValueType configNameAttributeValue10 = new AttributeValueType();
- configNameAttributeValue10.setDataType(STRING_DATATYPE);
- configNameAttributeValue10.getContent().add(policyAdapter.getPriority());
- assignment10.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue10));
-
- advice.getAttributeAssignmentExpression().add(assignment10);
-
- //RiskType Attribute Assignment
- AttributeAssignmentExpressionType assignment11 = new AttributeAssignmentExpressionType();
- assignment11.setAttributeId("RiskType");
- assignment11.setCategory(CATEGORY_RESOURCE);
- assignment11.setIssuer("");
-
- AttributeValueType configNameAttributeValue11 = new AttributeValueType();
- configNameAttributeValue11.setDataType(STRING_DATATYPE);
- configNameAttributeValue11.getContent().add(policyAdapter.getRiskType());
- assignment11.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue11));
-
- advice.getAttributeAssignmentExpression().add(assignment11);
-
- //RiskLevel Attribute Assignment
- AttributeAssignmentExpressionType assignment12 = new AttributeAssignmentExpressionType();
- assignment12.setAttributeId("RiskLevel");
- assignment12.setCategory(CATEGORY_RESOURCE);
- assignment12.setIssuer("");
-
- AttributeValueType configNameAttributeValue12 = new AttributeValueType();
- configNameAttributeValue12.setDataType(STRING_DATATYPE);
- configNameAttributeValue12.getContent().add(policyAdapter.getRiskLevel());
- assignment12.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue12));
-
- advice.getAttributeAssignmentExpression().add(assignment12);
-
- //Guard Attribute Assignment
- AttributeAssignmentExpressionType assignment13 = new AttributeAssignmentExpressionType();
- assignment13.setAttributeId("guard");
- assignment13.setCategory(CATEGORY_RESOURCE);
- assignment13.setIssuer("");
-
- AttributeValueType configNameAttributeValue13 = new AttributeValueType();
- configNameAttributeValue13.setDataType(STRING_DATATYPE);
- configNameAttributeValue13.getContent().add(policyAdapter.getGuard());
- assignment13.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue13));
-
- advice.getAttributeAssignmentExpression().add(assignment13);
-
- //TTLDate Attribute Assignment
- AttributeAssignmentExpressionType assignment14 = new AttributeAssignmentExpressionType();
- assignment14.setAttributeId("TTLDate");
- assignment14.setCategory(CATEGORY_RESOURCE);
- assignment14.setIssuer("");
-
- AttributeValueType configNameAttributeValue14 = new AttributeValueType();
- configNameAttributeValue14.setDataType(STRING_DATATYPE);
- configNameAttributeValue14.getContent().add(policyAdapter.getTtlDate());
- assignment14.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue14));
-
- advice.getAttributeAssignmentExpression().add(assignment14);
-
- advices.getAdviceExpression().add(advice);
- return advices;
- }
-
- @Override
- public Object getCorrectPolicyDataObject() {
- return policyAdapter.getPolicyData();
- }
+ AttributeAssignmentExpressionType assignment10 = new AttributeAssignmentExpressionType();
+ assignment10.setAttributeId("Priority");
+ assignment10.setCategory(CATEGORY_RESOURCE);
+ assignment10.setIssuer("");
+
+ AttributeValueType configNameAttributeValue10 = new AttributeValueType();
+ configNameAttributeValue10.setDataType(STRING_DATATYPE);
+ configNameAttributeValue10.getContent().add(policyAdapter.getPriority());
+ assignment10.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue10));
+
+ advice.getAttributeAssignmentExpression().add(assignment10);
+
+ //RiskType Attribute Assignment
+ AttributeAssignmentExpressionType assignment11 = new AttributeAssignmentExpressionType();
+ assignment11.setAttributeId("RiskType");
+ assignment11.setCategory(CATEGORY_RESOURCE);
+ assignment11.setIssuer("");
+
+ AttributeValueType configNameAttributeValue11 = new AttributeValueType();
+ configNameAttributeValue11.setDataType(STRING_DATATYPE);
+ configNameAttributeValue11.getContent().add(policyAdapter.getRiskType());
+ assignment11.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue11));
+
+ advice.getAttributeAssignmentExpression().add(assignment11);
+
+ //RiskLevel Attribute Assignment
+ AttributeAssignmentExpressionType assignment12 = new AttributeAssignmentExpressionType();
+ assignment12.setAttributeId("RiskLevel");
+ assignment12.setCategory(CATEGORY_RESOURCE);
+ assignment12.setIssuer("");
+
+ AttributeValueType configNameAttributeValue12 = new AttributeValueType();
+ configNameAttributeValue12.setDataType(STRING_DATATYPE);
+ configNameAttributeValue12.getContent().add(policyAdapter.getRiskLevel());
+ assignment12.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue12));
+
+ advice.getAttributeAssignmentExpression().add(assignment12);
+
+ //Guard Attribute Assignment
+ AttributeAssignmentExpressionType assignment13 = new AttributeAssignmentExpressionType();
+ assignment13.setAttributeId("guard");
+ assignment13.setCategory(CATEGORY_RESOURCE);
+ assignment13.setIssuer("");
+
+ AttributeValueType configNameAttributeValue13 = new AttributeValueType();
+ configNameAttributeValue13.setDataType(STRING_DATATYPE);
+ configNameAttributeValue13.getContent().add(policyAdapter.getGuard());
+ assignment13.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue13));
+
+ advice.getAttributeAssignmentExpression().add(assignment13);
+
+ //TTLDate Attribute Assignment
+ AttributeAssignmentExpressionType assignment14 = new AttributeAssignmentExpressionType();
+ assignment14.setAttributeId("TTLDate");
+ assignment14.setCategory(CATEGORY_RESOURCE);
+ assignment14.setIssuer("");
+
+ AttributeValueType configNameAttributeValue14 = new AttributeValueType();
+ configNameAttributeValue14.setDataType(STRING_DATATYPE);
+ configNameAttributeValue14.getContent().add(policyAdapter.getTtlDate());
+ assignment14.setExpression(new ObjectFactory().createAttributeValue(configNameAttributeValue14));
+
+ advice.getAttributeAssignmentExpression().add(assignment14);
+
+ advices.getAdviceExpression().add(advice);
+ return advices;
+ }
+
+ @Override
+ public Object getCorrectPolicyDataObject() {
+ return policyAdapter.getPolicyData();
+ }
}
diff --git a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/PolicyDBDaoTransaction.java b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/PolicyDBDaoTransaction.java
index 8bfcab92c..d6ace7cf3 100644
--- a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/PolicyDBDaoTransaction.java
+++ b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/PolicyDBDaoTransaction.java
@@ -35,142 +35,142 @@ import com.att.research.xacml.api.pap.PAPException;
public interface PolicyDBDaoTransaction {
- /**
- * Commits (makes permanent) the current transaction. Also, notifies other PolicyDBDao instances on other PAP servers of the update.
- * @throws IllegalStateException if the PolicyDBDao transaction has not been used or has been committed already.
- * @throws PersistenceException if the commit fails for some reason
- */
- public void commitTransaction();
-
- /**
- * Create or update a policy
- * @param policy A Policy object representing the policy to store or update
- * @param username A string of the username you want to be stored for doing this operation
- * @throws IllegalStateException If a transaction is open that has not yet been committed
- * @throws PersistenceException If a database error occurs
- * @throws IllegalArgumentException If the Policy's PolicyRestAdapter contains incorrect data.
- */
- public void createPolicy(Policy policy, String username) throws PolicyDBException;
-
- /**
- * Check if the PolicyDBDaoTransaction is currently open
- * @return False if the PolicyDBDao transaction has not been used or has been committed already, true if it is open.
- */
- public boolean isTransactionOpen();
-
- /**
- * Rollback (undo) the current transaction.
- */
- public void rollbackTransaction();
-
- /**
- * Close the PolicyDBDaoTransaction without rolling back or doing anything. Just used to close the EntityManager
- */
- public void close();
-
-
- /**
- * Create a new PDP group in the database
- * @param groupID The ID to name the new group (use PolicyDBDao.createNewPDPGroupId)
- * @param groupName The name to use for the new group
- * @param groupDescription Description of the new group (optional)
- * @param username Username of the user performing the operation
- * @throws IllegalArgumentException If non-optional parameters are null or empty strings
- * @throws IllegalStateException If a transaction is already open
- * @throws PersistenceException If a database error occurs
- */
- public void createGroup(String groupID, String groupName, String groupDescription, String username) throws PolicyDBException;
-
- /**
- * Updates a group in the database with a new name of description
- * @param group The group with updated information. The id must match an existing group, but the name and description can be changed.
- * @param username Username of the user performing the operation
- * @throws IllegalArgumentException If non-optional parameters are null or empty strings
- * @throws IllegalStateException If a transaction is already open
- * @throws PersistenceException If a database error occurs or if the group can not be found
- */
- public void updateGroup(OnapPDPGroup group, String username) throws PolicyDBException;
-
- /**
- * Updates a PDP in the database with new information
- * @param pdp The PDP to update
- * @param username Username of the user performing the operation
- * @throws IllegalArgumentException If non-optional parameters are null or empty strings
- * @throws IllegalStateException If a transaction is already open
- * @throws PersistenceException If a database error occurs or if the pdp can not be found
- */
- public void updatePdp(OnapPDP pdp, String username) throws PolicyDBException;
-
- /**
- * Change the default group in the database to the group provided.
- * @param group The new group which should be set as default in the database
- * @param username Username of the user performing the operation
- * @throws IllegalArgumentException If non-optional parameters are null or empty strings
- * @throws IllegalStateException If a transaction is already open
- * @throws PersistenceException If a database error occurs
- */
- public void changeDefaultGroup(OnapPDPGroup group, String username) throws PolicyDBException;
-
- /**
- * Moves a PDP to a new group.
- * @param pdp The PDP which is to be moved to a new group
- * @param group The new group which the PDP should be added to
- * @param username Username of the user performing the operation
- * @throws IllegalArgumentException If non-optional parameters are null or empty strings
- * @throws IllegalStateException If a transaction is already open
- * @throws PersistenceException If a database error occurs
- */
- public void movePdp(OnapPDP pdp, OnapPDPGroup group, String username) throws PolicyDBException;
-
- /**
- * Add a new PDP to an existing group
- * @param pdpID The ID to name the new PDP
- * @param groupID The ID of the existing group to add the PDP to
- * @param pdpName The name to use for the new PDP
- * @param pdpDescription Description of the new PDP (optional)
- * @param pdpJmxPort
- * @param username Username of the user performing the operation
- * @throws IllegalArgumentException If non-optional parameters are null or empty strings
- * @throws IllegalStateException If a transaction is already open
- * @throws PersistenceException If a database error occurs
- */
- public void addPdpToGroup(String pdpID, String groupID, String pdpName, String pdpDescription, int pdpJmxPort, String username) throws PolicyDBException;
-
- /**
- * Add an existing policy to an existing group
- * @param group The ID of the existing group to add the policy to
- * @param policyID The ID of an existing policy
- * @return
- * @throws IllegalArgumentException If non-optional parameters are null or empty strings
- * @throws IllegalStateException If a transaction is already open
- * @throws PersistenceException If a database error occurs
- * @throws PolicyDBException
- */
- public StdPDPGroup addPolicyToGroup(String group, String policyID, String username) throws PolicyDBException;
-
-
- /**
- * Delete an existing PDP groupPolicyDBException
- * @param group A PDPGroup object representing the group to delete
- * @param moveToGroup A PDPGroup object representing another existing group which PDPs in the group being deleted should be moved to
- * @throws IllegalArgumentException If non-optional parameters are null or empty strings
- * @throws IllegalStateException If a transaction is already open
- * @throws PersistenceException If a database error occurs
- * @throws PAPException If an error relating to how groups are handled occurs
- */
- public void deleteGroup(OnapPDPGroup group, OnapPDPGroup moveToGroup, String username)throws PolicyDBException;
-
- /**
- * Removes an existing PDP from its group and deletes it.
- * @param pdpID The ID of the existing PDP which should be deleted
- * @throws IllegalArgumentException If non-optional parameters are null or empty strings
- * @throws IllegalStateException If a transaction is already open
- * @throws PersistenceException If a database error occurs
- */
- public void removePdpFromGroup(String pdpID, String username) throws PolicyDBException;
-
- public GroupEntity getGroup(long groupKey);
- public GroupEntity getGroup(String groupId);
- public List<?> getPdpsInGroup(long groupKey);
- public PdpEntity getPdp(long pdpKey);
+ /**
+ * Commits (makes permanent) the current transaction. Also, notifies other PolicyDBDao instances on other PAP servers of the update.
+ * @throws IllegalStateException if the PolicyDBDao transaction has not been used or has been committed already.
+ * @throws PersistenceException if the commit fails for some reason
+ */
+ public void commitTransaction();
+
+ /**
+ * Create or update a policy
+ * @param policy A Policy object representing the policy to store or update
+ * @param username A string of the username you want to be stored for doing this operation
+ * @throws IllegalStateException If a transaction is open that has not yet been committed
+ * @throws PersistenceException If a database error occurs
+ * @throws IllegalArgumentException If the Policy's PolicyRestAdapter contains incorrect data.
+ */
+ public void createPolicy(Policy policy, String username) throws PolicyDBException;
+
+ /**
+ * Check if the PolicyDBDaoTransaction is currently open
+ * @return False if the PolicyDBDao transaction has not been used or has been committed already, true if it is open.
+ */
+ public boolean isTransactionOpen();
+
+ /**
+ * Rollback (undo) the current transaction.
+ */
+ public void rollbackTransaction();
+
+ /**
+ * Close the PolicyDBDaoTransaction without rolling back or doing anything. Just used to close the EntityManager
+ */
+ public void close();
+
+
+ /**
+ * Create a new PDP group in the database
+ * @param groupID The ID to name the new group (use PolicyDBDao.createNewPDPGroupId)
+ * @param groupName The name to use for the new group
+ * @param groupDescription Description of the new group (optional)
+ * @param username Username of the user performing the operation
+ * @throws IllegalArgumentException If non-optional parameters are null or empty strings
+ * @throws IllegalStateException If a transaction is already open
+ * @throws PersistenceException If a database error occurs
+ */
+ public void createGroup(String groupID, String groupName, String groupDescription, String username) throws PolicyDBException;
+
+ /**
+ * Updates a group in the database with a new name of description
+ * @param group The group with updated information. The id must match an existing group, but the name and description can be changed.
+ * @param username Username of the user performing the operation
+ * @throws IllegalArgumentException If non-optional parameters are null or empty strings
+ * @throws IllegalStateException If a transaction is already open
+ * @throws PersistenceException If a database error occurs or if the group can not be found
+ */
+ public void updateGroup(OnapPDPGroup group, String username) throws PolicyDBException;
+
+ /**
+ * Updates a PDP in the database with new information
+ * @param pdp The PDP to update
+ * @param username Username of the user performing the operation
+ * @throws IllegalArgumentException If non-optional parameters are null or empty strings
+ * @throws IllegalStateException If a transaction is already open
+ * @throws PersistenceException If a database error occurs or if the pdp can not be found
+ */
+ public void updatePdp(OnapPDP pdp, String username) throws PolicyDBException;
+
+ /**
+ * Change the default group in the database to the group provided.
+ * @param group The new group which should be set as default in the database
+ * @param username Username of the user performing the operation
+ * @throws IllegalArgumentException If non-optional parameters are null or empty strings
+ * @throws IllegalStateException If a transaction is already open
+ * @throws PersistenceException If a database error occurs
+ */
+ public void changeDefaultGroup(OnapPDPGroup group, String username) throws PolicyDBException;
+
+ /**
+ * Moves a PDP to a new group.
+ * @param pdp The PDP which is to be moved to a new group
+ * @param group The new group which the PDP should be added to
+ * @param username Username of the user performing the operation
+ * @throws IllegalArgumentException If non-optional parameters are null or empty strings
+ * @throws IllegalStateException If a transaction is already open
+ * @throws PersistenceException If a database error occurs
+ */
+ public void movePdp(OnapPDP pdp, OnapPDPGroup group, String username) throws PolicyDBException;
+
+ /**
+ * Add a new PDP to an existing group
+ * @param pdpID The ID to name the new PDP
+ * @param groupID The ID of the existing group to add the PDP to
+ * @param pdpName The name to use for the new PDP
+ * @param pdpDescription Description of the new PDP (optional)
+ * @param pdpJmxPort
+ * @param username Username of the user performing the operation
+ * @throws IllegalArgumentException If non-optional parameters are null or empty strings
+ * @throws IllegalStateException If a transaction is already open
+ * @throws PersistenceException If a database error occurs
+ */
+ public void addPdpToGroup(String pdpID, String groupID, String pdpName, String pdpDescription, int pdpJmxPort, String username) throws PolicyDBException;
+
+ /**
+ * Add an existing policy to an existing group
+ * @param group The ID of the existing group to add the policy to
+ * @param policyID The ID of an existing policy
+ * @return
+ * @throws IllegalArgumentException If non-optional parameters are null or empty strings
+ * @throws IllegalStateException If a transaction is already open
+ * @throws PersistenceException If a database error occurs
+ * @throws PolicyDBException
+ */
+ public StdPDPGroup addPolicyToGroup(String group, String policyID, String username) throws PolicyDBException;
+
+
+ /**
+ * Delete an existing PDP groupPolicyDBException
+ * @param group A PDPGroup object representing the group to delete
+ * @param moveToGroup A PDPGroup object representing another existing group which PDPs in the group being deleted should be moved to
+ * @throws IllegalArgumentException If non-optional parameters are null or empty strings
+ * @throws IllegalStateException If a transaction is already open
+ * @throws PersistenceException If a database error occurs
+ * @throws PAPException If an error relating to how groups are handled occurs
+ */
+ public void deleteGroup(OnapPDPGroup group, OnapPDPGroup moveToGroup, String username)throws PolicyDBException;
+
+ /**
+ * Removes an existing PDP from its group and deletes it.
+ * @param pdpID The ID of the existing PDP which should be deleted
+ * @throws IllegalArgumentException If non-optional parameters are null or empty strings
+ * @throws IllegalStateException If a transaction is already open
+ * @throws PersistenceException If a database error occurs
+ */
+ public void removePdpFromGroup(String pdpID, String username) throws PolicyDBException;
+
+ public GroupEntity getGroup(long groupKey);
+ public GroupEntity getGroup(String groupId);
+ public List<?> getPdpsInGroup(long groupKey);
+ public PdpEntity getPdp(long pdpKey);
}
diff --git a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/SafePolicyBuilder.java b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/SafePolicyBuilder.java
index ba5b0026a..7a0f708d8 100644
--- a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/SafePolicyBuilder.java
+++ b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/components/SafePolicyBuilder.java
@@ -30,57 +30,57 @@ import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.constructor.Constructor;
public class SafePolicyBuilder {
-
- private SafePolicyBuilder(){
- //Private Constructor.
- }
- public static ControlLoopGuard loadYamlGuard(String specification) {
- //
- // Read the yaml into our Java Object
- //
- PolicyLogger.info("Requested YAML to convert : " + specification);
- Yaml yaml = new Yaml(new Constructor(ControlLoopGuard.class));
- Object obj = yaml.load(specification);
- return (ControlLoopGuard) obj;
- }
-
- public static String generateXacmlGuard(String xacmlFileContent,Map<String, String> generateMap, List<String> blacklist, List<String> targets) {
- //Setup default values and Targets.
- StringBuilder targetRegex= new StringBuilder(".*|");
- if(targets!=null && !targets.isEmpty()){
- targetRegex = new StringBuilder();
+ private SafePolicyBuilder(){
+ //Private Constructor.
+ }
+
+ public static ControlLoopGuard loadYamlGuard(String specification) {
+ //
+ // Read the yaml into our Java Object
+ //
+ PolicyLogger.info("Requested YAML to convert : " + specification);
+ Yaml yaml = new Yaml(new Constructor(ControlLoopGuard.class));
+ Object obj = yaml.load(specification);
+ return (ControlLoopGuard) obj;
+ }
+
+ public static String generateXacmlGuard(String xacmlFileContent,Map<String, String> generateMap, List<String> blacklist, List<String> targets) {
+ //Setup default values and Targets.
+ StringBuilder targetRegex= new StringBuilder(".*|");
+ if(targets!=null && !targets.isEmpty()){
+ targetRegex = new StringBuilder();
for(String t : targets){
- targetRegex.append(t + "|");
+ targetRegex.append(t + "|");
+ }
+ }
+ if(generateMap.get("clname")==null|| generateMap.get("clname").isEmpty()){
+ generateMap.put("clname",".*");
+ }
+ generateMap.put("targets", targetRegex.toString().substring(0, targetRegex.length()-1));
+ // Replace values.
+ for(Map.Entry<String,String> map: generateMap.entrySet()){
+ Pattern p = Pattern.compile("\\$\\{" +map.getKey() +"\\}");
+ Matcher m = p.matcher(xacmlFileContent);
+ String finalInput = map.getValue();
+ if(finalInput.contains("$")){
+ finalInput = finalInput.replace("$", "\\$");
+ }
+ xacmlFileContent=m.replaceAll(finalInput);
+ }
+ if(blacklist!=null && !blacklist.isEmpty()){
+ StringBuilder rule = new StringBuilder();
+ for(String blackListName : blacklist){
+ if(blackListName.contains("$")){
+ blackListName = blackListName.replace("$", "\\$");
+ }
+ rule.append("<AttributeValue DataType=\"http://www.w3.org/2001/XMLSchema#string\">"+blackListName+"</AttributeValue>");
}
- }
- if(generateMap.get("clname")==null|| generateMap.get("clname").isEmpty()){
- generateMap.put("clname",".*");
- }
- generateMap.put("targets", targetRegex.toString().substring(0, targetRegex.length()-1));
- // Replace values.
- for(Map.Entry<String,String> map: generateMap.entrySet()){
- Pattern p = Pattern.compile("\\$\\{" +map.getKey() +"\\}");
- Matcher m = p.matcher(xacmlFileContent);
- String finalInput = map.getValue();
- if(finalInput.contains("$")){
- finalInput = finalInput.replace("$", "\\$");
- }
- xacmlFileContent=m.replaceAll(finalInput);
- }
- if(blacklist!=null && !blacklist.isEmpty()){
- StringBuilder rule = new StringBuilder();
- for(String blackListName : blacklist){
- if(blackListName.contains("$")){
- blackListName = blackListName.replace("$", "\\$");
- }
- rule.append("<AttributeValue DataType=\"http://www.w3.org/2001/XMLSchema#string\">"+blackListName+"</AttributeValue>");
- }
- Pattern p = Pattern.compile("\\$\\{blackListElement\\}");
- Matcher m = p.matcher(xacmlFileContent);
- xacmlFileContent=m.replaceAll(rule.toString());
- }
- PolicyLogger.info("Generated XACML from the YAML Spec: \n" + xacmlFileContent);
- return xacmlFileContent;
- }
+ Pattern p = Pattern.compile("\\$\\{blackListElement\\}");
+ Matcher m = p.matcher(xacmlFileContent);
+ xacmlFileContent=m.replaceAll(rule.toString());
+ }
+ PolicyLogger.info("Generated XACML from the YAML Spec: \n" + xacmlFileContent);
+ return xacmlFileContent;
+ }
}
diff --git a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/ActionPolicyDictionaryController.java b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/ActionPolicyDictionaryController.java
index 59a7ed312..8e620408b 100644
--- a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/ActionPolicyDictionaryController.java
+++ b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/ActionPolicyDictionaryController.java
@@ -44,116 +44,116 @@ import com.fasterxml.jackson.databind.ObjectMapper;
@Controller
public class ActionPolicyDictionaryController {
-
- private static CommonClassDao commonClassDao;
- private static String operation = "operation";
- private static String attributeName = "attributeName";
- private static String actionDatas = "actionPolicyDictionaryDatas";
-
- @Autowired
- public ActionPolicyDictionaryController(CommonClassDao commonClassDao){
- ActionPolicyDictionaryController.commonClassDao = commonClassDao;
- }
-
- public void setCommonClassDao(CommonClassDao commonClassDao){
- ActionPolicyDictionaryController.commonClassDao = commonClassDao;
- }
-
- public ActionPolicyDictionaryController(){
- super();
- }
-
- private DictionaryUtils getDictionaryUtilsInstance(){
- return DictionaryUtils.getDictionaryUtils();
- }
-
- @RequestMapping(value={"/get_ActionPolicyDictDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getActionEntitybyName(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getDataByEntity(response, actionDatas, attributeName, ActionPolicyDict.class);
- }
-
- @RequestMapping(value={"/get_ActionPolicyDictData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getActionPolicyDictionaryEntityData(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getData(response, actionDatas, ActionPolicyDict.class);
- }
-
- @RequestMapping(value={"/action_dictionary/save_ActionDict"}, method={RequestMethod.POST})
- public ModelAndView saveActionPolicyDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
- DictionaryUtils utils = getDictionaryUtilsInstance();
- try {
- boolean fromAPI = utils.isRequestFromAPI(request);
- ObjectMapper mapper = new ObjectMapper();
- mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- JsonNode root = mapper.readTree(request.getReader());
- ActionPolicyDict actionPolicyDict = null;
- ActionAdapter adapter = null;
- String userId = null;
- if(fromAPI){
- actionPolicyDict = mapper.readValue(root.get("dictionaryFields").toString(), ActionPolicyDict.class);
- adapter = mapper.readValue(root.get("dictionaryFields").toString(), ActionAdapter.class);
- userId = "API";
- }else{
- actionPolicyDict = mapper.readValue(root.get("actionPolicyDictionaryData").toString(), ActionPolicyDict.class);
- adapter = mapper.readValue(root.get("actionPolicyDictionaryData").toString(), ActionAdapter.class);
- userId = root.get("userid").textValue();
- }
- UserInfo userInfo = utils.getUserInfo(userId);
-
- List<Object> duplicateData = commonClassDao.checkDuplicateEntry(actionPolicyDict.getAttributeName(), attributeName, ActionPolicyDict.class);
- boolean duplicateflag = false;
- if(!duplicateData.isEmpty()){
- ActionPolicyDict data = (ActionPolicyDict) duplicateData.get(0);
- if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
- actionPolicyDict.setId(data.getId());
- }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
- (request.getParameter(operation) == null && (data.getId() != actionPolicyDict.getId()))){
- duplicateflag = true;
- }
- }
- actionPolicyDict.setHeader(utils.appendKeyValue(adapter.getHeaders(), ":", "="));
-
- String responseString = null;
- if(!duplicateflag){
- actionPolicyDict.setUserModifiedBy(userInfo);
- if(actionPolicyDict.getId() == 0){
- actionPolicyDict.setUserCreatedBy(userInfo);
- commonClassDao.save(actionPolicyDict);
- }else{
- actionPolicyDict.setModifiedDate(new Date());
- commonClassDao.update(actionPolicyDict);
- }
- responseString = mapper.writeValueAsString(commonClassDao.getData(ActionPolicyDict.class));
- }else{
- responseString = "Duplicate";
- }
- if(fromAPI){
- return utils.getResultForApi(responseString);
- }else{
- utils.setResponseData(response, actionDatas, responseString);
- }
- }catch(Exception e){
- utils.setErrorResponseData(response, e);
- }
- return null;
- }
-
- @RequestMapping(value={"/action_dictionary/remove_actionPolicyDict"}, method={RequestMethod.POST})
- public void removeActionPolicyDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException {
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.removeData(request, response, actionDatas, ActionPolicyDict.class);
- }
+
+ private static CommonClassDao commonClassDao;
+ private static String operation = "operation";
+ private static String attributeName = "attributeName";
+ private static String actionDatas = "actionPolicyDictionaryDatas";
+
+ @Autowired
+ public ActionPolicyDictionaryController(CommonClassDao commonClassDao){
+ ActionPolicyDictionaryController.commonClassDao = commonClassDao;
+ }
+
+ public void setCommonClassDao(CommonClassDao commonClassDao){
+ ActionPolicyDictionaryController.commonClassDao = commonClassDao;
+ }
+
+ public ActionPolicyDictionaryController(){
+ super();
+ }
+
+ private DictionaryUtils getDictionaryUtilsInstance(){
+ return DictionaryUtils.getDictionaryUtils();
+ }
+
+ @RequestMapping(value={"/get_ActionPolicyDictDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getActionEntitybyName(HttpServletResponse response){
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getDataByEntity(response, actionDatas, attributeName, ActionPolicyDict.class);
+ }
+
+ @RequestMapping(value={"/get_ActionPolicyDictData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getActionPolicyDictionaryEntityData(HttpServletResponse response){
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getData(response, actionDatas, ActionPolicyDict.class);
+ }
+
+ @RequestMapping(value={"/action_dictionary/save_ActionDict"}, method={RequestMethod.POST})
+ public ModelAndView saveActionPolicyDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ try {
+ boolean fromAPI = utils.isRequestFromAPI(request);
+ ObjectMapper mapper = new ObjectMapper();
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ JsonNode root = mapper.readTree(request.getReader());
+ ActionPolicyDict actionPolicyDict = null;
+ ActionAdapter adapter = null;
+ String userId = null;
+ if(fromAPI){
+ actionPolicyDict = mapper.readValue(root.get("dictionaryFields").toString(), ActionPolicyDict.class);
+ adapter = mapper.readValue(root.get("dictionaryFields").toString(), ActionAdapter.class);
+ userId = "API";
+ }else{
+ actionPolicyDict = mapper.readValue(root.get("actionPolicyDictionaryData").toString(), ActionPolicyDict.class);
+ adapter = mapper.readValue(root.get("actionPolicyDictionaryData").toString(), ActionAdapter.class);
+ userId = root.get("userid").textValue();
+ }
+ UserInfo userInfo = utils.getUserInfo(userId);
+
+ List<Object> duplicateData = commonClassDao.checkDuplicateEntry(actionPolicyDict.getAttributeName(), attributeName, ActionPolicyDict.class);
+ boolean duplicateflag = false;
+ if(!duplicateData.isEmpty()){
+ ActionPolicyDict data = (ActionPolicyDict) duplicateData.get(0);
+ if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
+ actionPolicyDict.setId(data.getId());
+ }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
+ (request.getParameter(operation) == null && (data.getId() != actionPolicyDict.getId()))){
+ duplicateflag = true;
+ }
+ }
+ actionPolicyDict.setHeader(utils.appendKeyValue(adapter.getHeaders(), ":", "="));
+
+ String responseString = null;
+ if(!duplicateflag){
+ actionPolicyDict.setUserModifiedBy(userInfo);
+ if(actionPolicyDict.getId() == 0){
+ actionPolicyDict.setUserCreatedBy(userInfo);
+ commonClassDao.save(actionPolicyDict);
+ }else{
+ actionPolicyDict.setModifiedDate(new Date());
+ commonClassDao.update(actionPolicyDict);
+ }
+ responseString = mapper.writeValueAsString(commonClassDao.getData(ActionPolicyDict.class));
+ }else{
+ responseString = "Duplicate";
+ }
+ if(fromAPI){
+ return utils.getResultForApi(responseString);
+ }else{
+ utils.setResponseData(response, actionDatas, responseString);
+ }
+ }catch(Exception e){
+ utils.setErrorResponseData(response, e);
+ }
+ return null;
+ }
+
+ @RequestMapping(value={"/action_dictionary/remove_actionPolicyDict"}, method={RequestMethod.POST})
+ public void removeActionPolicyDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException {
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.removeData(request, response, actionDatas, ActionPolicyDict.class);
+ }
}
class ActionAdapter{
- private List<Object> headers;
+ private List<Object> headers;
- public List<Object> getHeaders() {
- return headers;
- }
+ public List<Object> getHeaders() {
+ return headers;
+ }
- public void setHeaders(List<Object> headers) {
- this.headers = headers;
- }
+ public void setHeaders(List<Object> headers) {
+ this.headers = headers;
+ }
}
diff --git a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/BRMSDictionaryController.java b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/BRMSDictionaryController.java
index 0ab5cf935..a0044d26b 100644
--- a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/BRMSDictionaryController.java
+++ b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/BRMSDictionaryController.java
@@ -57,321 +57,321 @@ import com.fasterxml.jackson.databind.ObjectMapper;
@Controller
public class BRMSDictionaryController{
-
- private static final Logger LOGGER = FlexLogger.getLogger(BRMSDictionaryController.class);
- private static final String VALIDATIONRESPONSE = "Validation";
+ private static final Logger LOGGER = FlexLogger.getLogger(BRMSDictionaryController.class);
- private static CommonClassDao commonClassDao;
- private static String rule;
- private static String successMsg = "Success";
- private static String duplicateResponseString = "Duplicate";
- private static String ruleName = "ruleName";
- private static String errorMessage = "Error";
- private static String operation = "operation";
- private static String dictionaryFields ="dictionaryFields";
- private static String userid = "userid";
- private static String dependencyName = "dependencyName";
- private static String controllerName = "controllerName";
- private static String brmsParamDatas = "brmsParamDictionaryDatas";
- private static String brmsDependencyDatas = "brmsDependencyDictionaryDatas";
- private static String brmsControllerDatas = "brmsControllerDictionaryDatas";
-
- @Autowired
- public BRMSDictionaryController(CommonClassDao commonClassDao){
- BRMSDictionaryController.commonClassDao = commonClassDao;
- }
-
- public static void setCommonClassDao(CommonClassDao commonClassDao2) {
- BRMSDictionaryController.commonClassDao = commonClassDao2;
- }
+ private static final String VALIDATIONRESPONSE = "Validation";
- public BRMSDictionaryController() {
- super();
- }
-
- private DictionaryUtils getDictionaryUtilsInstance(){
- return DictionaryUtils.getDictionaryUtils();
- }
+ private static CommonClassDao commonClassDao;
+ private static String rule;
+ private static String successMsg = "Success";
+ private static String duplicateResponseString = "Duplicate";
+ private static String ruleName = "ruleName";
+ private static String errorMessage = "Error";
+ private static String operation = "operation";
+ private static String dictionaryFields ="dictionaryFields";
+ private static String userid = "userid";
+ private static String dependencyName = "dependencyName";
+ private static String controllerName = "controllerName";
+ private static String brmsParamDatas = "brmsParamDictionaryDatas";
+ private static String brmsDependencyDatas = "brmsDependencyDictionaryDatas";
+ private static String brmsControllerDatas = "brmsControllerDictionaryDatas";
+
+ @Autowired
+ public BRMSDictionaryController(CommonClassDao commonClassDao){
+ BRMSDictionaryController.commonClassDao = commonClassDao;
+ }
+
+ public static void setCommonClassDao(CommonClassDao commonClassDao2) {
+ BRMSDictionaryController.commonClassDao = commonClassDao2;
+ }
+
+ public BRMSDictionaryController() {
+ super();
+ }
+
+ private DictionaryUtils getDictionaryUtilsInstance(){
+ return DictionaryUtils.getDictionaryUtils();
+ }
+
+ @RequestMapping(value={"/get_BRMSParamDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getBRMSParamDictionaryByNameEntityData(HttpServletResponse response){
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getDataByEntity(response, brmsParamDatas, ruleName, BRMSParamTemplate.class);
+ }
+
+ @RequestMapping(value={"/get_BRMSParamData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getBRMSParamDictionaryEntityData(HttpServletResponse response){
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getData(response, brmsParamDatas, BRMSParamTemplate.class);
+ }
+
+ @RequestMapping(value={"/brms_dictionary/set_BRMSParamData"}, method={RequestMethod.POST})
+ public static void setRuleData(HttpServletRequest request) throws IOException{
+ StringWriter writer = new StringWriter();
+ IOUtils.copy(request.getInputStream() , writer, StandardCharsets.UTF_8);
+ String cleanStreamBoundary = writer.toString().replaceFirst("------(.*)(?s).*octet-stream", "");
+ rule = cleanStreamBoundary.substring(0, cleanStreamBoundary.lastIndexOf("end")+4);
+ }
+
+ @RequestMapping(value={"/brms_dictionary/save_BRMSParam"}, method={RequestMethod.POST})
+ public ModelAndView saveBRMSParamDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException {
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ try {
+ boolean fromAPI = utils.isRequestFromAPI(request);
+ ObjectMapper mapper = new ObjectMapper();
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ JsonNode root = mapper.readTree(request.getReader());
- @RequestMapping(value={"/get_BRMSParamDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getBRMSParamDictionaryByNameEntityData(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getDataByEntity(response, brmsParamDatas, ruleName, BRMSParamTemplate.class);
- }
-
- @RequestMapping(value={"/get_BRMSParamData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getBRMSParamDictionaryEntityData(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getData(response, brmsParamDatas, BRMSParamTemplate.class);
- }
-
- @RequestMapping(value={"/brms_dictionary/set_BRMSParamData"}, method={RequestMethod.POST})
- public static void setRuleData(HttpServletRequest request) throws IOException{
- StringWriter writer = new StringWriter();
- IOUtils.copy(request.getInputStream() , writer, StandardCharsets.UTF_8);
- String cleanStreamBoundary = writer.toString().replaceFirst("------(.*)(?s).*octet-stream", "");
- rule = cleanStreamBoundary.substring(0, cleanStreamBoundary.lastIndexOf("end")+4);
- }
-
- @RequestMapping(value={"/brms_dictionary/save_BRMSParam"}, method={RequestMethod.POST})
- public ModelAndView saveBRMSParamDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException {
- DictionaryUtils utils = getDictionaryUtilsInstance();
- try {
- boolean fromAPI = utils.isRequestFromAPI(request);
- ObjectMapper mapper = new ObjectMapper();
- mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- JsonNode root = mapper.readTree(request.getReader());
-
BRMSParamTemplate bRMSParamTemplateData;
String userId = null;
if(fromAPI){
- bRMSParamTemplateData = mapper.readValue(root.get(dictionaryFields).toString(), BRMSParamTemplate.class);
- userId = "API";
- }else{
- bRMSParamTemplateData = mapper.readValue(root.get("brmsParamDictionaryData").toString(), BRMSParamTemplate.class);
- userId = root.get(userid).textValue();
- }
- UserInfo userInfo = utils.getUserInfo(userId);
-
- List<Object> duplicateData = commonClassDao.checkDuplicateEntry(bRMSParamTemplateData.getRuleName(), ruleName, BRMSParamTemplate.class);
- boolean duplicateflag = false;
- if(!duplicateData.isEmpty()){
- BRMSParamTemplate data = (BRMSParamTemplate) duplicateData.get(0);
- if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
- bRMSParamTemplateData.setId(data.getId());
- }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
- (request.getParameter(operation) == null && (data.getId() != bRMSParamTemplateData.getId()))){
- duplicateflag = true;
- }
- }
- String responseString = null;
+ bRMSParamTemplateData = mapper.readValue(root.get(dictionaryFields).toString(), BRMSParamTemplate.class);
+ userId = "API";
+ }else{
+ bRMSParamTemplateData = mapper.readValue(root.get("brmsParamDictionaryData").toString(), BRMSParamTemplate.class);
+ userId = root.get(userid).textValue();
+ }
+ UserInfo userInfo = utils.getUserInfo(userId);
+
+ List<Object> duplicateData = commonClassDao.checkDuplicateEntry(bRMSParamTemplateData.getRuleName(), ruleName, BRMSParamTemplate.class);
+ boolean duplicateflag = false;
+ if(!duplicateData.isEmpty()){
+ BRMSParamTemplate data = (BRMSParamTemplate) duplicateData.get(0);
+ if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
+ bRMSParamTemplateData.setId(data.getId());
+ }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
+ (request.getParameter(operation) == null && (data.getId() != bRMSParamTemplateData.getId()))){
+ duplicateflag = true;
+ }
+ }
+ String responseString = null;
boolean validation = false;
if(rule != null && CreateBRMSRuleTemplate.validateRuleParams(rule)){
- bRMSParamTemplateData.setRule(rule);
- validation = true;
- if(!duplicateflag){
- if(bRMSParamTemplateData.getId() == 0){
- bRMSParamTemplateData.setUserCreatedBy(userInfo);
- commonClassDao.save(bRMSParamTemplateData);
- }else{
- commonClassDao.update(bRMSParamTemplateData);
- }
- responseString = mapper.writeValueAsString(commonClassDao.getData(BRMSParamTemplate.class));
- }else{
- responseString = duplicateResponseString;
- }
+ bRMSParamTemplateData.setRule(rule);
+ validation = true;
+ if(!duplicateflag){
+ if(bRMSParamTemplateData.getId() == 0){
+ bRMSParamTemplateData.setUserCreatedBy(userInfo);
+ commonClassDao.save(bRMSParamTemplateData);
+ }else{
+ commonClassDao.update(bRMSParamTemplateData);
+ }
+ responseString = mapper.writeValueAsString(commonClassDao.getData(BRMSParamTemplate.class));
+ }else{
+ responseString = duplicateResponseString;
+ }
+ }
+
+ if(!validation){
+ responseString = VALIDATIONRESPONSE;
}
-
- if(!validation){
- responseString = VALIDATIONRESPONSE;
- }
- if(fromAPI){
- if (responseString!=null && !(duplicateResponseString).equals(responseString) && !VALIDATIONRESPONSE.equals(responseString)) {
+ if(fromAPI){
+ if (responseString!=null && !(duplicateResponseString).equals(responseString) && !VALIDATIONRESPONSE.equals(responseString)) {
responseString = successMsg;
}
ModelAndView result = new ModelAndView();
result.setViewName(responseString);
return result;
- }else{
- utils.setResponseData(response, brmsParamDatas, responseString);
- }
- }catch(Exception e){
- utils.setErrorResponseData(response, e);
- }
- return null;
- }
+ }else{
+ utils.setResponseData(response, brmsParamDatas, responseString);
+ }
+ }catch(Exception e){
+ utils.setErrorResponseData(response, e);
+ }
+ return null;
+ }
+
+ @RequestMapping(value={"/brms_dictionary/remove_brmsParam"}, method={RequestMethod.POST})
+ public void removeBRMSParamDictionary(HttpServletRequest request, HttpServletResponse response)throws IOException {
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.removeData(request, response, brmsParamDatas, BRMSParamTemplate.class);
+ }
- @RequestMapping(value={"/brms_dictionary/remove_brmsParam"}, method={RequestMethod.POST})
- public void removeBRMSParamDictionary(HttpServletRequest request, HttpServletResponse response)throws IOException {
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.removeData(request, response, brmsParamDatas, BRMSParamTemplate.class);
- }
-
@RequestMapping(value={"/get_BRMSDependencyDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
public void getBRMSDependencyDictionaryByNameEntityData(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getDataByEntity(response, brmsDependencyDatas, dependencyName, BRMSDependency.class);
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getDataByEntity(response, brmsDependencyDatas, dependencyName, BRMSDependency.class);
}
@RequestMapping(value={"/get_BRMSDependencyData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
public void getBRMSDependencyDictionaryEntityData(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getData(response, brmsDependencyDatas, BRMSDependency.class);
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getData(response, brmsDependencyDatas, BRMSDependency.class);
}
@RequestMapping(value={"/brms_dictionary/save_BRMSDependencyData"}, method={RequestMethod.POST})
public ModelAndView saveBRMSDependencyDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException {
- DictionaryUtils utils = getDictionaryUtilsInstance();
- try {
- LOGGER.debug("DictionaryController: saveBRMSDependencyDictionary() is called");
- boolean fromAPI = utils.isRequestFromAPI(request);
- ObjectMapper mapper = new ObjectMapper();
- mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- JsonNode root = mapper.readTree(request.getReader());
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ try {
+ LOGGER.debug("DictionaryController: saveBRMSDependencyDictionary() is called");
+ boolean fromAPI = utils.isRequestFromAPI(request);
+ ObjectMapper mapper = new ObjectMapper();
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ JsonNode root = mapper.readTree(request.getReader());
- BRMSDependency brmsDependency;
- String userId = null;
- if(fromAPI){
- brmsDependency = mapper.readValue(root.get(dictionaryFields).toString(), BRMSDependency.class);
- userId = "API";
- }else{
- brmsDependency = mapper.readValue(root.get("brmsDependencyDictionaryData").toString(), BRMSDependency.class);
- userId = root.get(userid).textValue();
- }
- UserInfo userInfo = utils.getUserInfo(userId);
+ BRMSDependency brmsDependency;
+ String userId = null;
+ if(fromAPI){
+ brmsDependency = mapper.readValue(root.get(dictionaryFields).toString(), BRMSDependency.class);
+ userId = "API";
+ }else{
+ brmsDependency = mapper.readValue(root.get("brmsDependencyDictionaryData").toString(), BRMSDependency.class);
+ userId = root.get(userid).textValue();
+ }
+ UserInfo userInfo = utils.getUserInfo(userId);
- List<Object> duplicateData = commonClassDao.checkDuplicateEntry(brmsDependency.getDependencyName(), dependencyName, BRMSDependency.class);
- boolean duplicateflag = false;
- if(!duplicateData.isEmpty()){
- BRMSDependency data = (BRMSDependency) duplicateData.get(0);
- if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
- brmsDependency.setId(data.getId());
- }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
- (request.getParameter(operation) == null && (data.getId() != brmsDependency.getId()))){
- duplicateflag = true;
- }
- }
- LOGGER.audit("the userId from the onap portal is: " + userId);
- String responseString = null;
- if(brmsDependency.getDependency()!=null && !("").equals(brmsDependency.getDependency().trim())){
- PEDependency dependency = null;
- try{
- dependency = PolicyUtils.jsonStringToObject(brmsDependency.getDependency(), PEDependency.class);
- }catch(Exception e){
- LOGGER.error(XACMLErrorConstants.ERROR_SCHEMA_INVALID + "wrong data given for BRMS PEDependency Dictionary : " + brmsDependency.getDependency(),e);
- }
- if(dependency==null){
- responseString = errorMessage;
- }else{
- if(!duplicateflag){
- brmsDependency.setUserModifiedBy(userInfo);
- if(brmsDependency.getId() == 0){
- brmsDependency.setUserCreatedBy(userInfo);
- commonClassDao.save(brmsDependency);
- }else{
- brmsDependency.setModifiedDate(new Date());
- commonClassDao.update(brmsDependency);
- }
- responseString = mapper.writeValueAsString(commonClassDao.getData(BRMSDependency.class));
- }else{
- responseString = duplicateResponseString;
- }
- }
- }
+ List<Object> duplicateData = commonClassDao.checkDuplicateEntry(brmsDependency.getDependencyName(), dependencyName, BRMSDependency.class);
+ boolean duplicateflag = false;
+ if(!duplicateData.isEmpty()){
+ BRMSDependency data = (BRMSDependency) duplicateData.get(0);
+ if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
+ brmsDependency.setId(data.getId());
+ }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
+ (request.getParameter(operation) == null && (data.getId() != brmsDependency.getId()))){
+ duplicateflag = true;
+ }
+ }
+ LOGGER.audit("the userId from the onap portal is: " + userId);
+ String responseString = null;
+ if(brmsDependency.getDependency()!=null && !("").equals(brmsDependency.getDependency().trim())){
+ PEDependency dependency = null;
+ try{
+ dependency = PolicyUtils.jsonStringToObject(brmsDependency.getDependency(), PEDependency.class);
+ }catch(Exception e){
+ LOGGER.error(XACMLErrorConstants.ERROR_SCHEMA_INVALID + "wrong data given for BRMS PEDependency Dictionary : " + brmsDependency.getDependency(),e);
+ }
+ if(dependency==null){
+ responseString = errorMessage;
+ }else{
+ if(!duplicateflag){
+ brmsDependency.setUserModifiedBy(userInfo);
+ if(brmsDependency.getId() == 0){
+ brmsDependency.setUserCreatedBy(userInfo);
+ commonClassDao.save(brmsDependency);
+ }else{
+ brmsDependency.setModifiedDate(new Date());
+ commonClassDao.update(brmsDependency);
+ }
+ responseString = mapper.writeValueAsString(commonClassDao.getData(BRMSDependency.class));
+ }else{
+ responseString = duplicateResponseString;
+ }
+ }
+ }
- if(fromAPI){
- if(responseString!=null && !duplicateResponseString.equals(responseString) && !errorMessage.equals(responseString)){
- responseString = successMsg;
- }
- ModelAndView result = new ModelAndView();
- result.setViewName(responseString);
- return result;
- }else{
- utils.setResponseData(response, brmsDependencyDatas, responseString);
- }
- } catch (Exception e){
- utils.setErrorResponseData(response, e);
- }
- return null;
+ if(fromAPI){
+ if(responseString!=null && !duplicateResponseString.equals(responseString) && !errorMessage.equals(responseString)){
+ responseString = successMsg;
+ }
+ ModelAndView result = new ModelAndView();
+ result.setViewName(responseString);
+ return result;
+ }else{
+ utils.setResponseData(response, brmsDependencyDatas, responseString);
+ }
+ } catch (Exception e){
+ utils.setErrorResponseData(response, e);
+ }
+ return null;
}
@RequestMapping(value={"/brms_dictionary/remove_brmsDependency"}, method={RequestMethod.POST})
public void removeBRMSDependencyDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException {
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.removeData(request, response, brmsDependencyDatas, BRMSDependency.class);
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.removeData(request, response, brmsDependencyDatas, BRMSDependency.class);
}
@RequestMapping(value={"/get_BRMSControllerDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
public void getBRMSControllerDictionaryByNameEntityData(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getDataByEntity(response, brmsControllerDatas, controllerName, BRMSController.class);
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getDataByEntity(response, brmsControllerDatas, controllerName, BRMSController.class);
}
@RequestMapping(value={"/get_BRMSControllerData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
public void getBRMSControllerDictionaryEntityData(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getData(response, brmsControllerDatas, BRMSController.class);
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getData(response, brmsControllerDatas, BRMSController.class);
}
@RequestMapping(value={"/brms_dictionary/save_BRMSControllerData"}, method={RequestMethod.POST})
public ModelAndView saveBRMSControllerDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
- DictionaryUtils utils = getDictionaryUtilsInstance();
- try {
- LOGGER.debug("DictionaryController: saveBRMSControllerDictionary() is called");
- boolean fromAPI = utils.isRequestFromAPI(request);
- ObjectMapper mapper = new ObjectMapper();
- mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- JsonNode root = mapper.readTree(request.getReader());
- BRMSController brmsController;
- String userId = null;
- if(fromAPI){
- brmsController = mapper.readValue(root.get(dictionaryFields).toString(), BRMSController.class);
- userId = "API";
- }else{
- brmsController = mapper.readValue(root.get("brmsControllerDictionaryData").toString(), BRMSController.class);
- userId = root.get(userid).textValue();
- }
- UserInfo userInfo = utils.getUserInfo(userId);
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ try {
+ LOGGER.debug("DictionaryController: saveBRMSControllerDictionary() is called");
+ boolean fromAPI = utils.isRequestFromAPI(request);
+ ObjectMapper mapper = new ObjectMapper();
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ JsonNode root = mapper.readTree(request.getReader());
+ BRMSController brmsController;
+ String userId = null;
+ if(fromAPI){
+ brmsController = mapper.readValue(root.get(dictionaryFields).toString(), BRMSController.class);
+ userId = "API";
+ }else{
+ brmsController = mapper.readValue(root.get("brmsControllerDictionaryData").toString(), BRMSController.class);
+ userId = root.get(userid).textValue();
+ }
+ UserInfo userInfo = utils.getUserInfo(userId);
- List<Object> duplicateData = commonClassDao.checkDuplicateEntry(brmsController.getControllerName(), controllerName, BRMSController.class);
- boolean duplicateflag = false;
- if(!duplicateData.isEmpty()){
- BRMSController data = (BRMSController) duplicateData.get(0);
- if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
- brmsController.setId(data.getId());
- }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
- (request.getParameter(operation) == null && (data.getId() != brmsController.getId()))){
- duplicateflag = true;
- }
- }
- String responseString = null;
- if(brmsController.getController()!=null && !("").equals(brmsController.getController().trim())){
- PEDependency dependency = null;
- try{
- dependency = PolicyUtils.jsonStringToObject(brmsController.getController(), PEDependency.class);
- }catch(Exception e){
- LOGGER.error(XACMLErrorConstants.ERROR_SCHEMA_INVALID + "wrong data given for BRMS Controller Dictionary : " + brmsController.getController(),e);
- }
- if(dependency==null){
- responseString = errorMessage;
- }else{
- if(!duplicateflag){
- brmsController.setUserModifiedBy(userInfo);
- if(brmsController.getId() == 0){
- brmsController.setUserCreatedBy(userInfo);
- commonClassDao.save(brmsController);
- }else{
- brmsController.setModifiedDate(new Date());
- commonClassDao.update(brmsController);
- }
- responseString = mapper.writeValueAsString(commonClassDao.getData(OnapName.class));
- }else{
- responseString = duplicateResponseString;
- }
- }
- }
- if(fromAPI){
- if (responseString!=null && !(duplicateResponseString).equals(responseString) && !(errorMessage).equals(responseString)) {
- responseString = successMsg;
- }
- ModelAndView result = new ModelAndView();
- result.setViewName(responseString);
- return result;
- }else{
- utils.setResponseData(response, brmsControllerDatas, responseString);
- }
- } catch (Exception e){
- utils.setErrorResponseData(response, e);
- }
- return null;
+ List<Object> duplicateData = commonClassDao.checkDuplicateEntry(brmsController.getControllerName(), controllerName, BRMSController.class);
+ boolean duplicateflag = false;
+ if(!duplicateData.isEmpty()){
+ BRMSController data = (BRMSController) duplicateData.get(0);
+ if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
+ brmsController.setId(data.getId());
+ }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
+ (request.getParameter(operation) == null && (data.getId() != brmsController.getId()))){
+ duplicateflag = true;
+ }
+ }
+ String responseString = null;
+ if(brmsController.getController()!=null && !("").equals(brmsController.getController().trim())){
+ PEDependency dependency = null;
+ try{
+ dependency = PolicyUtils.jsonStringToObject(brmsController.getController(), PEDependency.class);
+ }catch(Exception e){
+ LOGGER.error(XACMLErrorConstants.ERROR_SCHEMA_INVALID + "wrong data given for BRMS Controller Dictionary : " + brmsController.getController(),e);
+ }
+ if(dependency==null){
+ responseString = errorMessage;
+ }else{
+ if(!duplicateflag){
+ brmsController.setUserModifiedBy(userInfo);
+ if(brmsController.getId() == 0){
+ brmsController.setUserCreatedBy(userInfo);
+ commonClassDao.save(brmsController);
+ }else{
+ brmsController.setModifiedDate(new Date());
+ commonClassDao.update(brmsController);
+ }
+ responseString = mapper.writeValueAsString(commonClassDao.getData(OnapName.class));
+ }else{
+ responseString = duplicateResponseString;
+ }
+ }
+ }
+ if(fromAPI){
+ if (responseString!=null && !(duplicateResponseString).equals(responseString) && !(errorMessage).equals(responseString)) {
+ responseString = successMsg;
+ }
+ ModelAndView result = new ModelAndView();
+ result.setViewName(responseString);
+ return result;
+ }else{
+ utils.setResponseData(response, brmsControllerDatas, responseString);
+ }
+ } catch (Exception e){
+ utils.setErrorResponseData(response, e);
+ }
+ return null;
}
@RequestMapping(value={"/brms_dictionary/remove_brmsController"}, method={RequestMethod.POST})
public void removeBRMSControllerDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.removeData(request, response, brmsControllerDatas, BRMSController.class);
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.removeData(request, response, brmsControllerDatas, BRMSController.class);
}
public BRMSDependency getDependencyDataByID(String dependencyName){
diff --git a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/ClosedLoopDictionaryController.java b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/ClosedLoopDictionaryController.java
index 5d28c82e7..5e7113ad8 100644
--- a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/ClosedLoopDictionaryController.java
+++ b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/ClosedLoopDictionaryController.java
@@ -53,250 +53,250 @@ import com.fasterxml.jackson.databind.ObjectMapper;
@Controller
public class ClosedLoopDictionaryController{
- private static CommonClassDao commonClassDao;
- private static String vsclaction = "vsclaction";
- private static String operation = "operation";
- private static String vnftype = "vnftype";
- private static String pepName = "pepName";
- private static String varbindName = "varbindName";
- private static String serviceName = "serviceName";
- private static String siteName = "siteName";
- private static String dictionaryFields = "dictionaryFields";
- private static String duplicateResponseString = "Duplicate";
- private static String userid = "userid";
- private static String vsclActionDatas = "vsclActionDictionaryDatas";
- private static String vnfTypeDatas = "vnfTypeDictionaryDatas";
- private static String pepOptionDatas = "pepOptionsDictionaryDatas";
- private static String varbindDatas = "varbindDictionaryDatas";
- private static String closedLoopDatas = "closedLoopServiceDictionaryDatas";
- private static String closedLoopSiteDatas = "closedLoopSiteDictionaryDatas";
-
- @Autowired
- public ClosedLoopDictionaryController(CommonClassDao commonClassDao){
- ClosedLoopDictionaryController.commonClassDao = commonClassDao;
- }
-
- public void setCommonClassDao(CommonClassDao commonClassDao){
- ClosedLoopDictionaryController.commonClassDao = commonClassDao;
- }
-
- public static void setCommonClassDao(CommonClassDaoImpl commonClassDaoImpl) {
+ private static CommonClassDao commonClassDao;
+ private static String vsclaction = "vsclaction";
+ private static String operation = "operation";
+ private static String vnftype = "vnftype";
+ private static String pepName = "pepName";
+ private static String varbindName = "varbindName";
+ private static String serviceName = "serviceName";
+ private static String siteName = "siteName";
+ private static String dictionaryFields = "dictionaryFields";
+ private static String duplicateResponseString = "Duplicate";
+ private static String userid = "userid";
+ private static String vsclActionDatas = "vsclActionDictionaryDatas";
+ private static String vnfTypeDatas = "vnfTypeDictionaryDatas";
+ private static String pepOptionDatas = "pepOptionsDictionaryDatas";
+ private static String varbindDatas = "varbindDictionaryDatas";
+ private static String closedLoopDatas = "closedLoopServiceDictionaryDatas";
+ private static String closedLoopSiteDatas = "closedLoopSiteDictionaryDatas";
+
+ @Autowired
+ public ClosedLoopDictionaryController(CommonClassDao commonClassDao){
+ ClosedLoopDictionaryController.commonClassDao = commonClassDao;
+ }
+
+ public void setCommonClassDao(CommonClassDao commonClassDao){
+ ClosedLoopDictionaryController.commonClassDao = commonClassDao;
+ }
+
+ public static void setCommonClassDao(CommonClassDaoImpl commonClassDaoImpl) {
commonClassDao = commonClassDaoImpl;
}
-
- public ClosedLoopDictionaryController(){
- super();
- }
-
- private DictionaryUtils getDictionaryUtilsInstance(){
- return DictionaryUtils.getDictionaryUtils();
- }
-
- @RequestMapping(value={"/get_VSCLActionDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getVSCLActionDictionaryByNameEntityData(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getDataByEntity(response, vsclActionDatas, vsclaction, VSCLAction.class);
- }
-
-
- @RequestMapping(value={"/get_VSCLActionData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getVSCLActionDictionaryEntityData(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getData(response, vsclActionDatas, VSCLAction.class);
- }
-
- @RequestMapping(value={"/get_VNFTypeDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getVNFTypeDictionaryByNameEntityData(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getDataByEntity(response, vnfTypeDatas, vnftype, VNFType.class);
- }
-
- @RequestMapping(value={"/get_VNFTypeData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getVNFTypeDictionaryEntityData(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getData(response, vnfTypeDatas, VNFType.class);
- }
-
- @RequestMapping(value={"/get_PEPOptionsDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getPEPOptionsDictionaryByNameEntityData(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getDataByEntity(response, pepOptionDatas, pepName, PEPOptions.class);
- }
-
- @RequestMapping(value={"/get_PEPOptionsData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getPEPOptionsDictionaryEntityData(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getData(response, pepOptionDatas, PEPOptions.class);
- }
-
- @RequestMapping(value={"/get_VarbindDictionaryDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getVarbindDictionaryByNameEntityData(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getDataByEntity(response, varbindDatas, varbindName, VarbindDictionary.class);
- }
-
- @RequestMapping(value={"/get_VarbindDictionaryData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getVarbindDictionaryEntityData(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getData(response, varbindDatas, VarbindDictionary.class);
- }
-
- @RequestMapping(value={"/get_ClosedLoopServicesDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getClosedLoopServiceDictionaryByNameEntityData(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getDataByEntity(response, closedLoopDatas, serviceName, ClosedLoopD2Services.class);
- }
-
- @RequestMapping(value={"/get_ClosedLoopServicesData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getClosedLoopServiceDictionaryEntityData(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getData(response, closedLoopDatas, ClosedLoopD2Services.class);
- }
-
- @RequestMapping(value={"/get_ClosedLoopSiteDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getClosedLoopSiteDictionaryByNameEntityData(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getDataByEntity(response, closedLoopSiteDatas, siteName, ClosedLoopSite.class);
- }
-
- @RequestMapping(value={"/get_ClosedLoopSiteData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getClosedLoopSiteDictionaryEntityData(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getData(response, closedLoopSiteDatas, ClosedLoopSite.class);
- }
-
- @RequestMapping(value={"/cl_dictionary/save_vsclAction"}, method={RequestMethod.POST})
- public ModelAndView saveVSCLAction(HttpServletRequest request, HttpServletResponse response)throws IOException{
- DictionaryUtils utils = getDictionaryUtilsInstance();
- try {
- boolean fromAPI = utils.isRequestFromAPI(request);
- ObjectMapper mapper = new ObjectMapper();
- mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- JsonNode root = mapper.readTree(request.getReader());
- VSCLAction vSCLAction;
- String userId = null;
- if (fromAPI) {
- vSCLAction = mapper.readValue(root.get(dictionaryFields).toString(), VSCLAction.class);
- userId = "API";
- } else {
- vSCLAction = mapper.readValue(root.get("vsclActionDictionaryData").toString(), VSCLAction.class);
- userId = root.get(userid).textValue();
- }
- UserInfo userInfo = utils.getUserInfo(userId);
-
- List<Object> duplicateData = commonClassDao.checkDuplicateEntry(vSCLAction.getVsclaction(), vsclaction, VSCLAction.class);
- boolean duplicateflag = false;
- if(!duplicateData.isEmpty()){
- VSCLAction data = (VSCLAction) duplicateData.get(0);
- if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
- vSCLAction.setId(data.getId());
- }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
- (request.getParameter(operation) == null && (data.getId() != vSCLAction.getId()))){
- duplicateflag = true;
- }
- }
- String responseString = null;
- if(!duplicateflag){
- vSCLAction.setUserModifiedBy(userInfo);
- if(vSCLAction.getId() == 0){
- vSCLAction.setUserCreatedBy(userInfo);
- commonClassDao.save(vSCLAction);
- }else{
- vSCLAction.setModifiedDate(new Date());
- commonClassDao.update(vSCLAction);
- }
- responseString = mapper.writeValueAsString(commonClassDao.getData(VSCLAction.class));
- }else{
- responseString = duplicateResponseString;
- }
-
- if(fromAPI){
- return utils.getResultForApi(responseString);
- }else{
- utils.setResponseData(response, vsclActionDatas, responseString);
- }
- }catch(Exception e){
- utils.setErrorResponseData(response, e);
- }
- return null;
- }
-
- @RequestMapping(value={"/cl_dictionary/remove_VsclAction"}, method={RequestMethod.POST})
- public void removeVSCLAction(HttpServletRequest request, HttpServletResponse response) throws IOException {
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.removeData(request, response, vsclActionDatas, OnapName.class);
- }
-
- @RequestMapping(value={"/cl_dictionary/save_vnfType"}, method={RequestMethod.POST})
- public ModelAndView saveVnfType(HttpServletRequest request, HttpServletResponse response) throws IOException{
- DictionaryUtils utils = getDictionaryUtilsInstance();
- try {
- boolean fromAPI = utils.isRequestFromAPI(request);
- ObjectMapper mapper = new ObjectMapper();
- mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- JsonNode root = mapper.readTree(request.getReader());
- VNFType vNFType;
- String userId = null;
- if (fromAPI) {
- vNFType = mapper.readValue(root.get(dictionaryFields).toString(), VNFType.class);
- userId = "API";
- } else {
- vNFType = mapper.readValue(root.get("vnfTypeDictionaryData").toString(), VNFType.class);
- userId = root.get(userid).textValue();
- }
- UserInfo userInfo = utils.getUserInfo(userId);
-
- List<Object> duplicateData = commonClassDao.checkDuplicateEntry(vNFType.getVnftype(), vnftype, VNFType.class);
- boolean duplicateflag = false;
- if(!duplicateData.isEmpty()){
- VNFType data = (VNFType) duplicateData.get(0);
- if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
- vNFType.setId(data.getId());
- }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
- (request.getParameter(operation) == null && (data.getId() != vNFType.getId()))){
- duplicateflag = true;
- }
- }
- String responseString = null;
- if(!duplicateflag){
- vNFType.setUserModifiedBy(userInfo);
- if(vNFType.getId() == 0){
- vNFType.setUserCreatedBy(userInfo);
- commonClassDao.save(vNFType);
- }else{
- vNFType.setModifiedDate(new Date());
- commonClassDao.update(vNFType);
- }
- responseString = mapper.writeValueAsString(commonClassDao.getData(VNFType.class));
- }else{
- responseString = duplicateResponseString;
- }
-
- if(fromAPI){
- return utils.getResultForApi(responseString);
- }else{
- utils.setResponseData(response, vnfTypeDatas, responseString);
- }
- }catch(Exception e){
- utils.setErrorResponseData(response, e);
- }
- return null;
- }
-
- @RequestMapping(value={"/cl_dictionary/remove_vnfType"}, method={RequestMethod.POST})
- public void removeVnfType(HttpServletRequest request, HttpServletResponse response) throws IOException {
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.removeData(request, response, vnfTypeDatas, VNFType.class);
- }
-
- @RequestMapping(value={"/cl_dictionary/save_pepOptions"}, method={RequestMethod.POST})
- public ModelAndView savePEPOptions(HttpServletRequest request, HttpServletResponse response) throws IOException{
- DictionaryUtils utils = getDictionaryUtilsInstance();
- try {
- boolean fromAPI = utils.isRequestFromAPI(request);
- ObjectMapper mapper = new ObjectMapper();
- mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- JsonNode root = mapper.readTree(request.getReader());
+
+ public ClosedLoopDictionaryController(){
+ super();
+ }
+
+ private DictionaryUtils getDictionaryUtilsInstance(){
+ return DictionaryUtils.getDictionaryUtils();
+ }
+
+ @RequestMapping(value={"/get_VSCLActionDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getVSCLActionDictionaryByNameEntityData(HttpServletResponse response){
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getDataByEntity(response, vsclActionDatas, vsclaction, VSCLAction.class);
+ }
+
+
+ @RequestMapping(value={"/get_VSCLActionData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getVSCLActionDictionaryEntityData(HttpServletResponse response){
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getData(response, vsclActionDatas, VSCLAction.class);
+ }
+
+ @RequestMapping(value={"/get_VNFTypeDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getVNFTypeDictionaryByNameEntityData(HttpServletResponse response){
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getDataByEntity(response, vnfTypeDatas, vnftype, VNFType.class);
+ }
+
+ @RequestMapping(value={"/get_VNFTypeData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getVNFTypeDictionaryEntityData(HttpServletResponse response){
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getData(response, vnfTypeDatas, VNFType.class);
+ }
+
+ @RequestMapping(value={"/get_PEPOptionsDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getPEPOptionsDictionaryByNameEntityData(HttpServletResponse response){
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getDataByEntity(response, pepOptionDatas, pepName, PEPOptions.class);
+ }
+
+ @RequestMapping(value={"/get_PEPOptionsData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getPEPOptionsDictionaryEntityData(HttpServletResponse response){
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getData(response, pepOptionDatas, PEPOptions.class);
+ }
+
+ @RequestMapping(value={"/get_VarbindDictionaryDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getVarbindDictionaryByNameEntityData(HttpServletResponse response){
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getDataByEntity(response, varbindDatas, varbindName, VarbindDictionary.class);
+ }
+
+ @RequestMapping(value={"/get_VarbindDictionaryData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getVarbindDictionaryEntityData(HttpServletResponse response){
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getData(response, varbindDatas, VarbindDictionary.class);
+ }
+
+ @RequestMapping(value={"/get_ClosedLoopServicesDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getClosedLoopServiceDictionaryByNameEntityData(HttpServletResponse response){
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getDataByEntity(response, closedLoopDatas, serviceName, ClosedLoopD2Services.class);
+ }
+
+ @RequestMapping(value={"/get_ClosedLoopServicesData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getClosedLoopServiceDictionaryEntityData(HttpServletResponse response){
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getData(response, closedLoopDatas, ClosedLoopD2Services.class);
+ }
+
+ @RequestMapping(value={"/get_ClosedLoopSiteDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getClosedLoopSiteDictionaryByNameEntityData(HttpServletResponse response){
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getDataByEntity(response, closedLoopSiteDatas, siteName, ClosedLoopSite.class);
+ }
+
+ @RequestMapping(value={"/get_ClosedLoopSiteData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getClosedLoopSiteDictionaryEntityData(HttpServletResponse response){
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getData(response, closedLoopSiteDatas, ClosedLoopSite.class);
+ }
+
+ @RequestMapping(value={"/cl_dictionary/save_vsclAction"}, method={RequestMethod.POST})
+ public ModelAndView saveVSCLAction(HttpServletRequest request, HttpServletResponse response)throws IOException{
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ try {
+ boolean fromAPI = utils.isRequestFromAPI(request);
+ ObjectMapper mapper = new ObjectMapper();
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ JsonNode root = mapper.readTree(request.getReader());
+ VSCLAction vSCLAction;
+ String userId = null;
+ if (fromAPI) {
+ vSCLAction = mapper.readValue(root.get(dictionaryFields).toString(), VSCLAction.class);
+ userId = "API";
+ } else {
+ vSCLAction = mapper.readValue(root.get("vsclActionDictionaryData").toString(), VSCLAction.class);
+ userId = root.get(userid).textValue();
+ }
+ UserInfo userInfo = utils.getUserInfo(userId);
+
+ List<Object> duplicateData = commonClassDao.checkDuplicateEntry(vSCLAction.getVsclaction(), vsclaction, VSCLAction.class);
+ boolean duplicateflag = false;
+ if(!duplicateData.isEmpty()){
+ VSCLAction data = (VSCLAction) duplicateData.get(0);
+ if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
+ vSCLAction.setId(data.getId());
+ }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
+ (request.getParameter(operation) == null && (data.getId() != vSCLAction.getId()))){
+ duplicateflag = true;
+ }
+ }
+ String responseString = null;
+ if(!duplicateflag){
+ vSCLAction.setUserModifiedBy(userInfo);
+ if(vSCLAction.getId() == 0){
+ vSCLAction.setUserCreatedBy(userInfo);
+ commonClassDao.save(vSCLAction);
+ }else{
+ vSCLAction.setModifiedDate(new Date());
+ commonClassDao.update(vSCLAction);
+ }
+ responseString = mapper.writeValueAsString(commonClassDao.getData(VSCLAction.class));
+ }else{
+ responseString = duplicateResponseString;
+ }
+
+ if(fromAPI){
+ return utils.getResultForApi(responseString);
+ }else{
+ utils.setResponseData(response, vsclActionDatas, responseString);
+ }
+ }catch(Exception e){
+ utils.setErrorResponseData(response, e);
+ }
+ return null;
+ }
+
+ @RequestMapping(value={"/cl_dictionary/remove_VsclAction"}, method={RequestMethod.POST})
+ public void removeVSCLAction(HttpServletRequest request, HttpServletResponse response) throws IOException {
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.removeData(request, response, vsclActionDatas, OnapName.class);
+ }
+
+ @RequestMapping(value={"/cl_dictionary/save_vnfType"}, method={RequestMethod.POST})
+ public ModelAndView saveVnfType(HttpServletRequest request, HttpServletResponse response) throws IOException{
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ try {
+ boolean fromAPI = utils.isRequestFromAPI(request);
+ ObjectMapper mapper = new ObjectMapper();
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ JsonNode root = mapper.readTree(request.getReader());
+ VNFType vNFType;
+ String userId = null;
+ if (fromAPI) {
+ vNFType = mapper.readValue(root.get(dictionaryFields).toString(), VNFType.class);
+ userId = "API";
+ } else {
+ vNFType = mapper.readValue(root.get("vnfTypeDictionaryData").toString(), VNFType.class);
+ userId = root.get(userid).textValue();
+ }
+ UserInfo userInfo = utils.getUserInfo(userId);
+
+ List<Object> duplicateData = commonClassDao.checkDuplicateEntry(vNFType.getVnftype(), vnftype, VNFType.class);
+ boolean duplicateflag = false;
+ if(!duplicateData.isEmpty()){
+ VNFType data = (VNFType) duplicateData.get(0);
+ if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
+ vNFType.setId(data.getId());
+ }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
+ (request.getParameter(operation) == null && (data.getId() != vNFType.getId()))){
+ duplicateflag = true;
+ }
+ }
+ String responseString = null;
+ if(!duplicateflag){
+ vNFType.setUserModifiedBy(userInfo);
+ if(vNFType.getId() == 0){
+ vNFType.setUserCreatedBy(userInfo);
+ commonClassDao.save(vNFType);
+ }else{
+ vNFType.setModifiedDate(new Date());
+ commonClassDao.update(vNFType);
+ }
+ responseString = mapper.writeValueAsString(commonClassDao.getData(VNFType.class));
+ }else{
+ responseString = duplicateResponseString;
+ }
+
+ if(fromAPI){
+ return utils.getResultForApi(responseString);
+ }else{
+ utils.setResponseData(response, vnfTypeDatas, responseString);
+ }
+ }catch(Exception e){
+ utils.setErrorResponseData(response, e);
+ }
+ return null;
+ }
+
+ @RequestMapping(value={"/cl_dictionary/remove_vnfType"}, method={RequestMethod.POST})
+ public void removeVnfType(HttpServletRequest request, HttpServletResponse response) throws IOException {
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.removeData(request, response, vnfTypeDatas, VNFType.class);
+ }
+
+ @RequestMapping(value={"/cl_dictionary/save_pepOptions"}, method={RequestMethod.POST})
+ public ModelAndView savePEPOptions(HttpServletRequest request, HttpServletResponse response) throws IOException{
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ try {
+ boolean fromAPI = utils.isRequestFromAPI(request);
+ ObjectMapper mapper = new ObjectMapper();
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ JsonNode root = mapper.readTree(request.getReader());
PEPOptions pEPOptions;
GridData gridData;
String userId = null;
@@ -305,240 +305,240 @@ public class ClosedLoopDictionaryController{
gridData = mapper.readValue(root.get(dictionaryFields).toString(), GridData.class);
userId = "API";
}else{
- pEPOptions = mapper.readValue(root.get("pepOptionsDictionaryData").toString(), PEPOptions.class);
- gridData = mapper.readValue(root.get("pepOptionsDictionaryData").toString(), GridData.class);
- userId = root.get(userid).textValue();
+ pEPOptions = mapper.readValue(root.get("pepOptionsDictionaryData").toString(), PEPOptions.class);
+ gridData = mapper.readValue(root.get("pepOptionsDictionaryData").toString(), GridData.class);
+ userId = root.get(userid).textValue();
}
UserInfo userInfo = utils.getUserInfo(userId);
- if(!gridData.getAttributes().isEmpty()){
- pEPOptions.setActions(utils.appendKeyValue(gridData.getAttributes(), ":#@", "=#@"));
- }
-
- List<Object> duplicateData = commonClassDao.checkDuplicateEntry(pEPOptions.getPepName(), pepName, PEPOptions.class);
- boolean duplicateflag = false;
- if(!duplicateData.isEmpty()){
- PEPOptions data = (PEPOptions) duplicateData.get(0);
- if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
- pEPOptions.setId(data.getId());
- }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
- (request.getParameter(operation) == null && (data.getId() != pEPOptions.getId()))){
- duplicateflag = true;
- }
- }
- String responseString = null;
- if(!duplicateflag){
- pEPOptions.setUserModifiedBy(userInfo);
- if(pEPOptions.getId() == 0){
- pEPOptions.setUserCreatedBy(userInfo);
- commonClassDao.save(pEPOptions);
- }else{
- pEPOptions.setModifiedDate(new Date());
- commonClassDao.update(pEPOptions);
- }
- responseString = mapper.writeValueAsString(commonClassDao.getData(PEPOptions.class));
- }else{
- responseString = duplicateResponseString;
- }
-
- if(fromAPI){
- return utils.getResultForApi(responseString);
- }else{
- utils.setResponseData(response, pepOptionDatas, responseString);
- }
+ if(!gridData.getAttributes().isEmpty()){
+ pEPOptions.setActions(utils.appendKeyValue(gridData.getAttributes(), ":#@", "=#@"));
+ }
+
+ List<Object> duplicateData = commonClassDao.checkDuplicateEntry(pEPOptions.getPepName(), pepName, PEPOptions.class);
+ boolean duplicateflag = false;
+ if(!duplicateData.isEmpty()){
+ PEPOptions data = (PEPOptions) duplicateData.get(0);
+ if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
+ pEPOptions.setId(data.getId());
+ }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
+ (request.getParameter(operation) == null && (data.getId() != pEPOptions.getId()))){
+ duplicateflag = true;
+ }
+ }
+ String responseString = null;
+ if(!duplicateflag){
+ pEPOptions.setUserModifiedBy(userInfo);
+ if(pEPOptions.getId() == 0){
+ pEPOptions.setUserCreatedBy(userInfo);
+ commonClassDao.save(pEPOptions);
+ }else{
+ pEPOptions.setModifiedDate(new Date());
+ commonClassDao.update(pEPOptions);
+ }
+ responseString = mapper.writeValueAsString(commonClassDao.getData(PEPOptions.class));
+ }else{
+ responseString = duplicateResponseString;
+ }
+
+ if(fromAPI){
+ return utils.getResultForApi(responseString);
+ }else{
+ utils.setResponseData(response, pepOptionDatas, responseString);
+ }
}catch(Exception e){
- utils.setErrorResponseData(response, e);
- }
- return null;
- }
-
- @RequestMapping(value={"/cl_dictionary/remove_pepOptions"}, method={RequestMethod.POST})
- public void removePEPOptions(HttpServletRequest request, HttpServletResponse response) throws IOException {
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.removeData(request, response, pepOptionDatas, VNFType.class);
- }
-
- @RequestMapping(value={"/cl_dictionary/save_service"}, method={RequestMethod.POST})
- public ModelAndView saveServiceType(HttpServletRequest request, HttpServletResponse response) throws IOException{
- DictionaryUtils utils = getDictionaryUtilsInstance();
- try {
- boolean fromAPI = utils.isRequestFromAPI(request);
- ObjectMapper mapper = new ObjectMapper();
- mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- JsonNode root = mapper.readTree(request.getReader());
+ utils.setErrorResponseData(response, e);
+ }
+ return null;
+ }
+
+ @RequestMapping(value={"/cl_dictionary/remove_pepOptions"}, method={RequestMethod.POST})
+ public void removePEPOptions(HttpServletRequest request, HttpServletResponse response) throws IOException {
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.removeData(request, response, pepOptionDatas, VNFType.class);
+ }
+
+ @RequestMapping(value={"/cl_dictionary/save_service"}, method={RequestMethod.POST})
+ public ModelAndView saveServiceType(HttpServletRequest request, HttpServletResponse response) throws IOException{
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ try {
+ boolean fromAPI = utils.isRequestFromAPI(request);
+ ObjectMapper mapper = new ObjectMapper();
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ JsonNode root = mapper.readTree(request.getReader());
ClosedLoopD2Services serviceData;
String userId = null;
if(fromAPI){
serviceData = mapper.readValue(root.get(dictionaryFields).toString(), ClosedLoopD2Services.class);
userId = "API";
} else {
- serviceData = mapper.readValue(root.get("closedLoopServiceDictionaryData").toString(), ClosedLoopD2Services.class);
- userId = root.get(userid).textValue();
+ serviceData = mapper.readValue(root.get("closedLoopServiceDictionaryData").toString(), ClosedLoopD2Services.class);
+ userId = root.get(userid).textValue();
}
UserInfo userInfo = utils.getUserInfo(userId);
-
- List<Object> duplicateData = commonClassDao.checkDuplicateEntry(serviceData.getServiceName(), serviceName, ClosedLoopD2Services.class);
- boolean duplicateflag = false;
- if(!duplicateData.isEmpty()){
- ClosedLoopD2Services data = (ClosedLoopD2Services) duplicateData.get(0);
- if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
- serviceData.setId(data.getId());
- }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
- (request.getParameter(operation) == null && (data.getId() != serviceData.getId()))){
- duplicateflag = true;
- }
- }
- String responseString = null;
- if(!duplicateflag){
- serviceData.setUserModifiedBy(userInfo);
- if(serviceData.getId() == 0){
- serviceData.setUserCreatedBy(userInfo);
- commonClassDao.save(serviceData);
- }else{
- serviceData.setModifiedDate(new Date());
- commonClassDao.update(serviceData);
- }
- responseString = mapper.writeValueAsString(commonClassDao.getData(ClosedLoopD2Services.class));
- }else{
- responseString = duplicateResponseString;
- }
+
+ List<Object> duplicateData = commonClassDao.checkDuplicateEntry(serviceData.getServiceName(), serviceName, ClosedLoopD2Services.class);
+ boolean duplicateflag = false;
+ if(!duplicateData.isEmpty()){
+ ClosedLoopD2Services data = (ClosedLoopD2Services) duplicateData.get(0);
+ if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
+ serviceData.setId(data.getId());
+ }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
+ (request.getParameter(operation) == null && (data.getId() != serviceData.getId()))){
+ duplicateflag = true;
+ }
+ }
+ String responseString = null;
+ if(!duplicateflag){
+ serviceData.setUserModifiedBy(userInfo);
+ if(serviceData.getId() == 0){
+ serviceData.setUserCreatedBy(userInfo);
+ commonClassDao.save(serviceData);
+ }else{
+ serviceData.setModifiedDate(new Date());
+ commonClassDao.update(serviceData);
+ }
+ responseString = mapper.writeValueAsString(commonClassDao.getData(ClosedLoopD2Services.class));
+ }else{
+ responseString = duplicateResponseString;
+ }
if(fromAPI){
- return utils.getResultForApi(responseString);
- }else{
- utils.setResponseData(response, closedLoopDatas, responseString);
- }
+ return utils.getResultForApi(responseString);
+ }else{
+ utils.setResponseData(response, closedLoopDatas, responseString);
+ }
}catch(Exception e){
- utils.setErrorResponseData(response, e);
- }
- return null;
- }
-
- @RequestMapping(value={"/cl_dictionary/remove_Service"}, method={RequestMethod.POST})
- public void removeServiceType(HttpServletRequest request, HttpServletResponse response) throws IOException {
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.removeData(request, response, closedLoopDatas, VNFType.class);
- }
-
- @RequestMapping(value={"/cl_dictionary/save_siteName"}, method={RequestMethod.POST})
- public ModelAndView saveSiteType(HttpServletRequest request, HttpServletResponse response) throws IOException{
- DictionaryUtils utils = getDictionaryUtilsInstance();
- try {
- boolean fromAPI = utils.isRequestFromAPI(request);
- ObjectMapper mapper = new ObjectMapper();
- mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- JsonNode root = mapper.readTree(request.getReader());
+ utils.setErrorResponseData(response, e);
+ }
+ return null;
+ }
+
+ @RequestMapping(value={"/cl_dictionary/remove_Service"}, method={RequestMethod.POST})
+ public void removeServiceType(HttpServletRequest request, HttpServletResponse response) throws IOException {
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.removeData(request, response, closedLoopDatas, VNFType.class);
+ }
+
+ @RequestMapping(value={"/cl_dictionary/save_siteName"}, method={RequestMethod.POST})
+ public ModelAndView saveSiteType(HttpServletRequest request, HttpServletResponse response) throws IOException{
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ try {
+ boolean fromAPI = utils.isRequestFromAPI(request);
+ ObjectMapper mapper = new ObjectMapper();
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ JsonNode root = mapper.readTree(request.getReader());
ClosedLoopSite siteData;
String userId = null;
if(fromAPI){
siteData = mapper.readValue(root.get(dictionaryFields).toString(), ClosedLoopSite.class);
userId = "API";
}else{
- siteData = mapper.readValue(root.get("closedLoopSiteDictionaryData").toString(), ClosedLoopSite.class);
- userId = root.get(userid).textValue();
+ siteData = mapper.readValue(root.get("closedLoopSiteDictionaryData").toString(), ClosedLoopSite.class);
+ userId = root.get(userid).textValue();
}
UserInfo userInfo = utils.getUserInfo(userId);
List<Object> duplicateData = commonClassDao.checkDuplicateEntry(siteData.getSiteName(), siteName, ClosedLoopSite.class);
- boolean duplicateflag = false;
- if(!duplicateData.isEmpty()){
- ClosedLoopSite data = (ClosedLoopSite) duplicateData.get(0);
- if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
- siteData.setId(data.getId());
- }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
- (request.getParameter(operation) == null && (data.getId() != siteData.getId()))){
- duplicateflag = true;
- }
- }
+ boolean duplicateflag = false;
+ if(!duplicateData.isEmpty()){
+ ClosedLoopSite data = (ClosedLoopSite) duplicateData.get(0);
+ if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
+ siteData.setId(data.getId());
+ }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
+ (request.getParameter(operation) == null && (data.getId() != siteData.getId()))){
+ duplicateflag = true;
+ }
+ }
String responseString = null;
- if(!duplicateflag){
- siteData.setUserModifiedBy(userInfo);
- if(siteData.getId() == 0){
- siteData.setUserCreatedBy(userInfo);
- commonClassDao.save(siteData);
- }else{
- siteData.setModifiedDate(new Date());
- commonClassDao.update(siteData);
- }
- responseString = mapper.writeValueAsString(commonClassDao.getData(ClosedLoopSite.class));
- }else{
- responseString = duplicateResponseString;
- }
+ if(!duplicateflag){
+ siteData.setUserModifiedBy(userInfo);
+ if(siteData.getId() == 0){
+ siteData.setUserCreatedBy(userInfo);
+ commonClassDao.save(siteData);
+ }else{
+ siteData.setModifiedDate(new Date());
+ commonClassDao.update(siteData);
+ }
+ responseString = mapper.writeValueAsString(commonClassDao.getData(ClosedLoopSite.class));
+ }else{
+ responseString = duplicateResponseString;
+ }
if(fromAPI){
- return utils.getResultForApi(responseString);
- }else{
- utils.setResponseData(response, closedLoopSiteDatas, responseString);
- }
+ return utils.getResultForApi(responseString);
+ }else{
+ utils.setResponseData(response, closedLoopSiteDatas, responseString);
+ }
}catch (Exception e){
- utils.setErrorResponseData(response, e);
- }
- return null;
- }
-
- @RequestMapping(value={"/cl_dictionary/remove_site"}, method={RequestMethod.POST})
- public void removeSiteType(HttpServletRequest request, HttpServletResponse response) throws IOException {
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.removeData(request, response, closedLoopSiteDatas, VNFType.class);
- }
-
- @RequestMapping(value={"/cl_dictionary/save_varbind"}, method={RequestMethod.POST})
- public ModelAndView saveVarbind(HttpServletRequest request, HttpServletResponse response) throws IOException{
- DictionaryUtils utils = getDictionaryUtilsInstance();
- try {
- boolean fromAPI = utils.isRequestFromAPI(request);
- ObjectMapper mapper = new ObjectMapper();
- mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- JsonNode root = mapper.readTree(request.getReader());
+ utils.setErrorResponseData(response, e);
+ }
+ return null;
+ }
+
+ @RequestMapping(value={"/cl_dictionary/remove_site"}, method={RequestMethod.POST})
+ public void removeSiteType(HttpServletRequest request, HttpServletResponse response) throws IOException {
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.removeData(request, response, closedLoopSiteDatas, VNFType.class);
+ }
+
+ @RequestMapping(value={"/cl_dictionary/save_varbind"}, method={RequestMethod.POST})
+ public ModelAndView saveVarbind(HttpServletRequest request, HttpServletResponse response) throws IOException{
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ try {
+ boolean fromAPI = utils.isRequestFromAPI(request);
+ ObjectMapper mapper = new ObjectMapper();
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ JsonNode root = mapper.readTree(request.getReader());
VarbindDictionary varbindDictionary;
String userId = null;
if(fromAPI){
varbindDictionary = mapper.readValue(root.get(dictionaryFields).toString(), VarbindDictionary.class);
userId = "API";
}else{
- varbindDictionary = mapper.readValue(root.get("varbindDictionaryData").toString(), VarbindDictionary.class);
- userId = root.get(userid).textValue();
+ varbindDictionary = mapper.readValue(root.get("varbindDictionaryData").toString(), VarbindDictionary.class);
+ userId = root.get(userid).textValue();
}
UserInfo userInfo = utils.getUserInfo(userId);
-
- List<Object> duplicateData = commonClassDao.checkDuplicateEntry(varbindDictionary.getVarbindName(), varbindName, VarbindDictionary.class);
- boolean duplicateflag = false;
- if(!duplicateData.isEmpty()){
- VarbindDictionary data = (VarbindDictionary) duplicateData.get(0);
- if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
- varbindDictionary.setId(data.getId());
- }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
- (request.getParameter(operation) == null && (data.getId() != varbindDictionary.getId()))){
- duplicateflag = true;
- }
- }
-
- String responseString = null;
- if(!duplicateflag){
- varbindDictionary.setUserModifiedBy(userInfo);
- if(varbindDictionary.getId() == 0){
- varbindDictionary.setUserCreatedBy(userInfo);
- commonClassDao.save(varbindDictionary);
- }else{
- varbindDictionary.setModifiedDate(new Date());
- commonClassDao.update(varbindDictionary);
- }
- responseString = mapper.writeValueAsString(commonClassDao.getData(VarbindDictionary.class));
- }else{
- responseString = duplicateResponseString;
- }
+
+ List<Object> duplicateData = commonClassDao.checkDuplicateEntry(varbindDictionary.getVarbindName(), varbindName, VarbindDictionary.class);
+ boolean duplicateflag = false;
+ if(!duplicateData.isEmpty()){
+ VarbindDictionary data = (VarbindDictionary) duplicateData.get(0);
+ if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
+ varbindDictionary.setId(data.getId());
+ }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
+ (request.getParameter(operation) == null && (data.getId() != varbindDictionary.getId()))){
+ duplicateflag = true;
+ }
+ }
+
+ String responseString = null;
+ if(!duplicateflag){
+ varbindDictionary.setUserModifiedBy(userInfo);
+ if(varbindDictionary.getId() == 0){
+ varbindDictionary.setUserCreatedBy(userInfo);
+ commonClassDao.save(varbindDictionary);
+ }else{
+ varbindDictionary.setModifiedDate(new Date());
+ commonClassDao.update(varbindDictionary);
+ }
+ responseString = mapper.writeValueAsString(commonClassDao.getData(VarbindDictionary.class));
+ }else{
+ responseString = duplicateResponseString;
+ }
if(fromAPI){
- return utils.getResultForApi(responseString);
- }else{
- utils.setResponseData(response, varbindDatas, responseString);
- }
+ return utils.getResultForApi(responseString);
+ }else{
+ utils.setResponseData(response, varbindDatas, responseString);
+ }
}catch (Exception e){
- utils.setErrorResponseData(response, e);
- }
- return null;
- }
-
- @RequestMapping(value={"/cl_dictionary/remove_varbindDict"}, method={RequestMethod.POST})
- public void removeVarbind(HttpServletRequest request, HttpServletResponse response) throws IOException{
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.removeData(request, response, varbindDatas, VNFType.class);
- }
+ utils.setErrorResponseData(response, e);
+ }
+ return null;
+ }
+
+ @RequestMapping(value={"/cl_dictionary/remove_varbindDict"}, method={RequestMethod.POST})
+ public void removeVarbind(HttpServletRequest request, HttpServletResponse response) throws IOException{
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.removeData(request, response, varbindDatas, VNFType.class);
+ }
} \ No newline at end of file
diff --git a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/DecisionPolicyDictionaryController.java b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/DecisionPolicyDictionaryController.java
index 6e68d78d9..738a808f6 100644
--- a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/DecisionPolicyDictionaryController.java
+++ b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/DecisionPolicyDictionaryController.java
@@ -46,187 +46,187 @@ import com.fasterxml.jackson.databind.ObjectMapper;
@Controller
public class DecisionPolicyDictionaryController {
-
- private static CommonClassDao commonClassDao;
- private static String xacmlId = "xacmlId";
- private static String bbID = "bbid";
- private static String operation = "operation";
- private static String duplicateResponseString = "Duplicate";
- private static String settingDatas = "settingsDictionaryDatas";
- private static String rainDayDatas = "rainyDayDictionaryDatas";
- private static String dictionaryFields ="dictionaryFields";
-
- @Autowired
- public DecisionPolicyDictionaryController(CommonClassDao commonClassDao){
- DecisionPolicyDictionaryController.commonClassDao = commonClassDao;
- }
-
- public DecisionPolicyDictionaryController(){
- super();
- }
-
- private DictionaryUtils getDictionaryUtilsInstance(){
- return DictionaryUtils.getDictionaryUtils();
- }
-
- @RequestMapping(value={"/get_SettingsDictionaryDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getSettingsDictionaryByNameEntityData(HttpServletRequest request, HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getDataByEntity(response, settingDatas, xacmlId, DecisionSettings.class);
- }
-
-
- @RequestMapping(value={"/get_SettingsDictionaryData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getSettingsDictionaryEntityData(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getData(response, settingDatas, DecisionSettings.class);
- }
-
- @RequestMapping(value={"/decision_dictionary/save_Settings"}, method={RequestMethod.POST})
- public ModelAndView saveSettingsDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
- DictionaryUtils utils = getDictionaryUtilsInstance();
- try {
- boolean fromAPI = utils.isRequestFromAPI(request);
- ObjectMapper mapper = new ObjectMapper();
- mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- JsonNode root = mapper.readTree(request.getReader());
- DecisionSettings decisionSettings;
- String userId = null;
-
- if(fromAPI){
- decisionSettings = mapper.readValue(root.get(dictionaryFields).toString(), DecisionSettings.class);
- userId = "API";
- }else{
- decisionSettings = mapper.readValue(root.get("settingsDictionaryData").toString(), DecisionSettings.class);
- userId = root.get("userid").textValue();
- }
- UserInfo userInfo = utils.getUserInfo(userId);
- List<Object> duplicateData = commonClassDao.checkDuplicateEntry(decisionSettings.getXacmlId(), xacmlId, DecisionSettings.class);
- boolean duplicateflag = false;
- if(!duplicateData.isEmpty()){
- DecisionSettings data = (DecisionSettings) duplicateData.get(0);
- if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
- decisionSettings.setId(data.getId());
- }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
- (request.getParameter(operation) == null && (data.getId() != decisionSettings.getId()))){
- duplicateflag = true;
- }
- }
- if(decisionSettings.getDatatypeBean().getShortName() != null){
- String datatype = decisionSettings.getDatatypeBean().getShortName();
- decisionSettings.setDatatypeBean(utils.getDataType(datatype));
- }
- String responseString = null;
- if(!duplicateflag){
- decisionSettings.setUserModifiedBy(userInfo);
- if(decisionSettings.getId() == 0){
- decisionSettings.setUserCreatedBy(userInfo);
- commonClassDao.save(decisionSettings);
- }else{
- decisionSettings.setModifiedDate(new Date());
- commonClassDao.update(decisionSettings);
- }
- responseString = mapper.writeValueAsString(commonClassDao.getData(DecisionSettings.class));
- }else{
- responseString = duplicateResponseString;
- }
- if(fromAPI){
- return utils.getResultForApi(responseString);
- }else{
- utils.setResponseData(response, settingDatas, responseString);
- }
- }catch (Exception e){
- utils.setErrorResponseData(response, e);
- }
- return null;
- }
-
- @RequestMapping(value={"/settings_dictionary/remove_settings"}, method={RequestMethod.POST})
- public void removeSettingsDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException {
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.removeData(request, response, settingDatas, DecisionSettings.class);
- }
-
- @RequestMapping(value={"/get_RainyDayDictionaryDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getRainyDayDictionaryByNameEntityData(HttpServletRequest request, HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getDataByEntity(response, rainDayDatas, bbID, RainyDayTreatments.class);
- }
-
- @RequestMapping(value={"/get_RainyDayDictionaryData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getRainyDayDictionaryEntityData(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getData(response, rainDayDatas, RainyDayTreatments.class);
- }
-
- @RequestMapping(value={"/decision_dictionary/save_RainyDay"}, method={RequestMethod.POST})
- public ModelAndView saveRainyDayDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
- DictionaryUtils utils = getDictionaryUtilsInstance();
- try {
- boolean fromAPI = utils.isRequestFromAPI(request);
- ObjectMapper mapper = new ObjectMapper();
- mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- JsonNode root = mapper.readTree(request.getReader());
- RainyDayTreatments decisionRainyDay;
+
+ private static CommonClassDao commonClassDao;
+ private static String xacmlId = "xacmlId";
+ private static String bbID = "bbid";
+ private static String operation = "operation";
+ private static String duplicateResponseString = "Duplicate";
+ private static String settingDatas = "settingsDictionaryDatas";
+ private static String rainDayDatas = "rainyDayDictionaryDatas";
+ private static String dictionaryFields ="dictionaryFields";
+
+ @Autowired
+ public DecisionPolicyDictionaryController(CommonClassDao commonClassDao){
+ DecisionPolicyDictionaryController.commonClassDao = commonClassDao;
+ }
+
+ public DecisionPolicyDictionaryController(){
+ super();
+ }
+
+ private DictionaryUtils getDictionaryUtilsInstance(){
+ return DictionaryUtils.getDictionaryUtils();
+ }
+
+ @RequestMapping(value={"/get_SettingsDictionaryDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getSettingsDictionaryByNameEntityData(HttpServletRequest request, HttpServletResponse response){
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getDataByEntity(response, settingDatas, xacmlId, DecisionSettings.class);
+ }
+
+
+ @RequestMapping(value={"/get_SettingsDictionaryData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getSettingsDictionaryEntityData(HttpServletResponse response){
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getData(response, settingDatas, DecisionSettings.class);
+ }
+
+ @RequestMapping(value={"/decision_dictionary/save_Settings"}, method={RequestMethod.POST})
+ public ModelAndView saveSettingsDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ try {
+ boolean fromAPI = utils.isRequestFromAPI(request);
+ ObjectMapper mapper = new ObjectMapper();
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ JsonNode root = mapper.readTree(request.getReader());
+ DecisionSettings decisionSettings;
+ String userId = null;
+
+ if(fromAPI){
+ decisionSettings = mapper.readValue(root.get(dictionaryFields).toString(), DecisionSettings.class);
+ userId = "API";
+ }else{
+ decisionSettings = mapper.readValue(root.get("settingsDictionaryData").toString(), DecisionSettings.class);
+ userId = root.get("userid").textValue();
+ }
+ UserInfo userInfo = utils.getUserInfo(userId);
+ List<Object> duplicateData = commonClassDao.checkDuplicateEntry(decisionSettings.getXacmlId(), xacmlId, DecisionSettings.class);
+ boolean duplicateflag = false;
+ if(!duplicateData.isEmpty()){
+ DecisionSettings data = (DecisionSettings) duplicateData.get(0);
+ if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
+ decisionSettings.setId(data.getId());
+ }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
+ (request.getParameter(operation) == null && (data.getId() != decisionSettings.getId()))){
+ duplicateflag = true;
+ }
+ }
+ if(decisionSettings.getDatatypeBean().getShortName() != null){
+ String datatype = decisionSettings.getDatatypeBean().getShortName();
+ decisionSettings.setDatatypeBean(utils.getDataType(datatype));
+ }
+ String responseString = null;
+ if(!duplicateflag){
+ decisionSettings.setUserModifiedBy(userInfo);
+ if(decisionSettings.getId() == 0){
+ decisionSettings.setUserCreatedBy(userInfo);
+ commonClassDao.save(decisionSettings);
+ }else{
+ decisionSettings.setModifiedDate(new Date());
+ commonClassDao.update(decisionSettings);
+ }
+ responseString = mapper.writeValueAsString(commonClassDao.getData(DecisionSettings.class));
+ }else{
+ responseString = duplicateResponseString;
+ }
+ if(fromAPI){
+ return utils.getResultForApi(responseString);
+ }else{
+ utils.setResponseData(response, settingDatas, responseString);
+ }
+ }catch (Exception e){
+ utils.setErrorResponseData(response, e);
+ }
+ return null;
+ }
+
+ @RequestMapping(value={"/settings_dictionary/remove_settings"}, method={RequestMethod.POST})
+ public void removeSettingsDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException {
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.removeData(request, response, settingDatas, DecisionSettings.class);
+ }
+
+ @RequestMapping(value={"/get_RainyDayDictionaryDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getRainyDayDictionaryByNameEntityData(HttpServletRequest request, HttpServletResponse response){
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getDataByEntity(response, rainDayDatas, bbID, RainyDayTreatments.class);
+ }
+
+ @RequestMapping(value={"/get_RainyDayDictionaryData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getRainyDayDictionaryEntityData(HttpServletResponse response){
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getData(response, rainDayDatas, RainyDayTreatments.class);
+ }
+
+ @RequestMapping(value={"/decision_dictionary/save_RainyDay"}, method={RequestMethod.POST})
+ public ModelAndView saveRainyDayDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ try {
+ boolean fromAPI = utils.isRequestFromAPI(request);
+ ObjectMapper mapper = new ObjectMapper();
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ JsonNode root = mapper.readTree(request.getReader());
+ RainyDayTreatments decisionRainyDay;
TreatmentValues treatmentsData = null;
if(fromAPI){
- decisionRainyDay = mapper.readValue(root.get(dictionaryFields).toString(), RainyDayTreatments.class);
- treatmentsData = mapper.readValue(root.get(dictionaryFields).toString(), TreatmentValues.class);
+ decisionRainyDay = mapper.readValue(root.get(dictionaryFields).toString(), RainyDayTreatments.class);
+ treatmentsData = mapper.readValue(root.get(dictionaryFields).toString(), TreatmentValues.class);
+ }else{
+ decisionRainyDay = mapper.readValue(root.get("rainyDayDictionaryData").toString(), RainyDayTreatments.class);
+ treatmentsData = mapper.readValue(root.get("rainyDayDictionaryData").toString(), TreatmentValues.class);
+ }
+ decisionRainyDay.setTreatments(utils.appendKey(treatmentsData.getUserDataTypeValues(), "treatment", ","));
+
+ List<Object> duplicateData = commonClassDao.checkDuplicateEntry(decisionRainyDay.getBbid()+":"+decisionRainyDay.getWorkstep(), "bbid:workstep", RainyDayTreatments.class);
+ boolean duplicateflag = false;
+ if(!duplicateData.isEmpty()){
+ RainyDayTreatments data = (RainyDayTreatments) duplicateData.get(0);
+ if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
+ decisionRainyDay.setId(data.getId());
+ }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
+ (request.getParameter(operation) == null && (data.getId() != decisionRainyDay.getId()))){
+ duplicateflag = true;
+ }
+ }
+ String responseString = null;
+ if(!duplicateflag){
+ if(decisionRainyDay.getId() == 0){
+ commonClassDao.save(decisionRainyDay);
+ }else{
+ commonClassDao.update(decisionRainyDay);
+ }
+ responseString = mapper.writeValueAsString(commonClassDao.getData(RainyDayTreatments.class));
+ }else{
+ responseString = duplicateResponseString;
+ }
+ if(fromAPI){
+ return utils.getResultForApi(responseString);
}else{
- decisionRainyDay = mapper.readValue(root.get("rainyDayDictionaryData").toString(), RainyDayTreatments.class);
- treatmentsData = mapper.readValue(root.get("rainyDayDictionaryData").toString(), TreatmentValues.class);
+ utils.setResponseData(response, rainDayDatas, responseString);
}
- decisionRainyDay.setTreatments(utils.appendKey(treatmentsData.getUserDataTypeValues(), "treatment", ","));
-
- List<Object> duplicateData = commonClassDao.checkDuplicateEntry(decisionRainyDay.getBbid()+":"+decisionRainyDay.getWorkstep(), "bbid:workstep", RainyDayTreatments.class);
- boolean duplicateflag = false;
- if(!duplicateData.isEmpty()){
- RainyDayTreatments data = (RainyDayTreatments) duplicateData.get(0);
- if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
- decisionRainyDay.setId(data.getId());
- }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
- (request.getParameter(operation) == null && (data.getId() != decisionRainyDay.getId()))){
- duplicateflag = true;
- }
- }
- String responseString = null;
- if(!duplicateflag){
- if(decisionRainyDay.getId() == 0){
- commonClassDao.save(decisionRainyDay);
- }else{
- commonClassDao.update(decisionRainyDay);
- }
- responseString = mapper.writeValueAsString(commonClassDao.getData(RainyDayTreatments.class));
- }else{
- responseString = duplicateResponseString;
- }
- if(fromAPI){
- return utils.getResultForApi(responseString);
- }else{
- utils.setResponseData(response, rainDayDatas, responseString);
- }
}catch (Exception e){
- utils.setErrorResponseData(response, e);
- }
- return null;
- }
-
- @RequestMapping(value={"/decision_dictionary/remove_rainyDay"}, method={RequestMethod.POST})
- public void removeRainyDayDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException {
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.removeData(request, response, rainDayDatas, RainyDayTreatments.class);
- }
-
+ utils.setErrorResponseData(response, e);
+ }
+ return null;
+ }
+
+ @RequestMapping(value={"/decision_dictionary/remove_rainyDay"}, method={RequestMethod.POST})
+ public void removeRainyDayDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException {
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.removeData(request, response, rainDayDatas, RainyDayTreatments.class);
+ }
+
}
class TreatmentValues {
- private List<Object> userDataTypeValues = new ArrayList<>();
+ private List<Object> userDataTypeValues = new ArrayList<>();
- public List<Object> getUserDataTypeValues() {
- return userDataTypeValues;
- }
+ public List<Object> getUserDataTypeValues() {
+ return userDataTypeValues;
+ }
- public void setUserDataTypeValues(List<Object> userDataTypeValues) {
- this.userDataTypeValues = userDataTypeValues;
- }
+ public void setUserDataTypeValues(List<Object> userDataTypeValues) {
+ this.userDataTypeValues = userDataTypeValues;
+ }
}
diff --git a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/DescriptiveDictionaryController.java b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/DescriptiveDictionaryController.java
index db710961f..a1d1bc8ff 100644
--- a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/DescriptiveDictionaryController.java
+++ b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/DescriptiveDictionaryController.java
@@ -45,102 +45,102 @@ import com.fasterxml.jackson.databind.ObjectMapper;
@Controller
public class DescriptiveDictionaryController {
-
- private static CommonClassDao commonClassDao;
- private static String operation = "operation";
- private static String dScopeName = "descriptiveScopeName";
- private static String descriptiveDatas = "descriptiveScopeDictionaryDatas";
-
- @Autowired
- public DescriptiveDictionaryController(CommonClassDao commonClassDao){
- DescriptiveDictionaryController.commonClassDao = commonClassDao;
- }
-
- public void setCommonClassDao(CommonClassDao commonClassDao){
- DescriptiveDictionaryController.commonClassDao = commonClassDao;
- }
-
- public DescriptiveDictionaryController(){
- super();
- }
- private DictionaryUtils getDictionaryUtilsInstance(){
- return DictionaryUtils.getDictionaryUtils();
- }
-
- @RequestMapping(value={"/get_DescriptiveScopeByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getDescriptiveDictionaryByNameEntityData(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getDataByEntity(response, descriptiveDatas, dScopeName, DescriptiveScope.class);
- }
-
- @RequestMapping(value={"/get_DescriptiveScope"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getDescriptiveDictionaryEntityData(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getData(response, descriptiveDatas, DescriptiveScope.class);
- }
-
- @RequestMapping(value={"/descriptive_dictionary/save_descriptive"}, method={RequestMethod.POST})
- public ModelAndView saveDescriptiveDictionary(HttpServletRequest request, HttpServletResponse response)throws IOException{
- DictionaryUtils utils = getDictionaryUtilsInstance();
- try {
- boolean fromAPI = utils.isRequestFromAPI(request);
- ObjectMapper mapper = new ObjectMapper();
- mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- JsonNode root = mapper.readTree(request.getReader());
- DescriptiveScope descriptiveScope;
- GridData data;
- String userId = null;
- if(fromAPI){
- descriptiveScope = mapper.readValue(root.get("dictionaryFields").toString(), DescriptiveScope.class);
- data = mapper.readValue(root.get("dictionaryFields").toString(), GridData.class);
- userId = "API";
- }else{
- descriptiveScope = mapper.readValue(root.get("descriptiveScopeDictionaryData").toString(), DescriptiveScope.class);
- data = mapper.readValue(root.get("descriptiveScopeDictionaryData").toString(), GridData.class);
- userId = root.get("userid").textValue();
- }
- descriptiveScope.setSearch(utils.appendKeyValue(data.getAttributes(), "AND", ":"));
- UserInfo userInfo = utils.getUserInfo(userId);
- List<Object> duplicateData = commonClassDao.checkDuplicateEntry(descriptiveScope.getScopeName(), dScopeName, DescriptiveScope.class);
- boolean duplicateflag = false;
- if(!duplicateData.isEmpty()){
- DescriptiveScope data1 = (DescriptiveScope) duplicateData.get(0);
- if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
- descriptiveScope.setId(data1.getId());
- }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
- (request.getParameter(operation) == null && (data1.getId() != descriptiveScope.getId()))){
- duplicateflag = true;
- }
- }
- String responseString = null;
- if(!duplicateflag){
- descriptiveScope.setUserModifiedBy(userInfo);
- if(descriptiveScope.getId() == 0){
- descriptiveScope.setUserCreatedBy(userInfo);
- commonClassDao.save(descriptiveScope);
- }else{
- descriptiveScope.setModifiedDate(new Date());
- commonClassDao.update(descriptiveScope);
- }
- responseString = mapper.writeValueAsString(commonClassDao.getData(DescriptiveScope.class));
- }else{
- responseString = "Duplicate";
- }
- if(fromAPI){
- return utils.getResultForApi(responseString);
- }else{
- utils.setResponseData(response, descriptiveDatas, responseString);
- }
- }catch (Exception e){
- utils.setErrorResponseData(response, e);
- }
- return null;
- }
+ private static CommonClassDao commonClassDao;
+ private static String operation = "operation";
+ private static String dScopeName = "descriptiveScopeName";
+ private static String descriptiveDatas = "descriptiveScopeDictionaryDatas";
- @RequestMapping(value={"/descriptive_dictionary/remove_descriptiveScope"}, method={RequestMethod.POST})
- public void removeDescriptiveDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.removeData(request, response, descriptiveDatas, DescriptiveScope.class);
- }
+ @Autowired
+ public DescriptiveDictionaryController(CommonClassDao commonClassDao){
+ DescriptiveDictionaryController.commonClassDao = commonClassDao;
+ }
+
+ public void setCommonClassDao(CommonClassDao commonClassDao){
+ DescriptiveDictionaryController.commonClassDao = commonClassDao;
+ }
+
+ public DescriptiveDictionaryController(){
+ super();
+ }
+
+ private DictionaryUtils getDictionaryUtilsInstance(){
+ return DictionaryUtils.getDictionaryUtils();
+ }
+
+ @RequestMapping(value={"/get_DescriptiveScopeByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getDescriptiveDictionaryByNameEntityData(HttpServletResponse response){
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getDataByEntity(response, descriptiveDatas, dScopeName, DescriptiveScope.class);
+ }
+
+ @RequestMapping(value={"/get_DescriptiveScope"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getDescriptiveDictionaryEntityData(HttpServletResponse response){
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getData(response, descriptiveDatas, DescriptiveScope.class);
+ }
+
+ @RequestMapping(value={"/descriptive_dictionary/save_descriptive"}, method={RequestMethod.POST})
+ public ModelAndView saveDescriptiveDictionary(HttpServletRequest request, HttpServletResponse response)throws IOException{
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ try {
+ boolean fromAPI = utils.isRequestFromAPI(request);
+ ObjectMapper mapper = new ObjectMapper();
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ JsonNode root = mapper.readTree(request.getReader());
+ DescriptiveScope descriptiveScope;
+ GridData data;
+ String userId = null;
+ if(fromAPI){
+ descriptiveScope = mapper.readValue(root.get("dictionaryFields").toString(), DescriptiveScope.class);
+ data = mapper.readValue(root.get("dictionaryFields").toString(), GridData.class);
+ userId = "API";
+ }else{
+ descriptiveScope = mapper.readValue(root.get("descriptiveScopeDictionaryData").toString(), DescriptiveScope.class);
+ data = mapper.readValue(root.get("descriptiveScopeDictionaryData").toString(), GridData.class);
+ userId = root.get("userid").textValue();
+ }
+ descriptiveScope.setSearch(utils.appendKeyValue(data.getAttributes(), "AND", ":"));
+ UserInfo userInfo = utils.getUserInfo(userId);
+ List<Object> duplicateData = commonClassDao.checkDuplicateEntry(descriptiveScope.getScopeName(), dScopeName, DescriptiveScope.class);
+ boolean duplicateflag = false;
+ if(!duplicateData.isEmpty()){
+ DescriptiveScope data1 = (DescriptiveScope) duplicateData.get(0);
+ if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
+ descriptiveScope.setId(data1.getId());
+ }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
+ (request.getParameter(operation) == null && (data1.getId() != descriptiveScope.getId()))){
+ duplicateflag = true;
+ }
+ }
+ String responseString = null;
+ if(!duplicateflag){
+ descriptiveScope.setUserModifiedBy(userInfo);
+ if(descriptiveScope.getId() == 0){
+ descriptiveScope.setUserCreatedBy(userInfo);
+ commonClassDao.save(descriptiveScope);
+ }else{
+ descriptiveScope.setModifiedDate(new Date());
+ commonClassDao.update(descriptiveScope);
+ }
+ responseString = mapper.writeValueAsString(commonClassDao.getData(DescriptiveScope.class));
+ }else{
+ responseString = "Duplicate";
+ }
+ if(fromAPI){
+ return utils.getResultForApi(responseString);
+ }else{
+ utils.setResponseData(response, descriptiveDatas, responseString);
+ }
+ }catch (Exception e){
+ utils.setErrorResponseData(response, e);
+ }
+ return null;
+ }
+
+ @RequestMapping(value={"/descriptive_dictionary/remove_descriptiveScope"}, method={RequestMethod.POST})
+ public void removeDescriptiveDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.removeData(request, response, descriptiveDatas, DescriptiveScope.class);
+ }
} \ No newline at end of file
diff --git a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/DictionaryController.java b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/DictionaryController.java
index 0b7693c6f..72539880c 100644
--- a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/DictionaryController.java
+++ b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/DictionaryController.java
@@ -47,201 +47,201 @@ import com.fasterxml.jackson.databind.ObjectMapper;
@Controller
public class DictionaryController {
-
- private static final Log LOGGER = LogFactory.getLog(DictionaryController.class);
-
- private static CommonClassDao commonClassDao;
- private static String xacmlId = "xacmlId";
- private static String operation = "operation";
- private static String dictionaryFields ="dictionaryFields";
- private static String duplicateResponseString = "Duplicate";
- private static String onapName = "onapName";
- private static String attributeDatas = "attributeDictionaryDatas";
- private static String onapNameDatas = "onapNameDictionaryDatas";
-
- @Autowired
- public DictionaryController(CommonClassDao commonClassDao){
- DictionaryController.commonClassDao = commonClassDao;
- }
-
- public DictionaryController(){
- super();
- }
-
- private DictionaryUtils getDictionaryUtilsInstance(){
- return DictionaryUtils.getDictionaryUtils();
- }
-
- @RequestMapping(value={"/get_AttributeDatabyAttributeName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getAttributeDictionaryEntityDatabyAttributeName(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getDataByEntity(response, attributeDatas, xacmlId, Attribute.class);
- }
-
- //Attribute Dictionary
- @RequestMapping(value="/get_AttributeData", method= RequestMethod.GET , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getAttributeDictionaryEntityData(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getData(response, attributeDatas, Attribute.class);
- }
-
- @RequestMapping(value={"/attribute_dictionary/save_attribute"}, method={RequestMethod.POST})
- public ModelAndView saveAttributeDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
- DictionaryUtils utils = getDictionaryUtilsInstance();
- try {
- boolean fromAPI = utils.isRequestFromAPI(request);
- ObjectMapper mapper = new ObjectMapper();
- mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- JsonNode root = mapper.readTree(request.getReader());
- Attribute attributeData = null;
- AttributeValues attributeValueData = null;
- String userId = null;
- if(fromAPI){
- attributeData = mapper.readValue(root.get(dictionaryFields).toString(), Attribute.class);
- attributeValueData = mapper.readValue(root.get(dictionaryFields).toString(), AttributeValues.class);
- userId = "API";
- }else{
- attributeData = mapper.readValue(root.get("attributeDictionaryData").toString(), Attribute.class);
- attributeValueData = mapper.readValue(root.get("attributeDictionaryData").toString(), AttributeValues.class);
- userId = root.get("userid").textValue();
- }
- UserInfo userInfo = utils.getUserInfo(userId);
- List<Object> duplicateData = commonClassDao.checkDuplicateEntry(attributeData.getXacmlId(), xacmlId, Attribute.class);
- boolean duplicateflag = false;
- if(!duplicateData.isEmpty()){
- Attribute data = (Attribute) duplicateData.get(0);
- if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
- attributeData.setId(data.getId());
- }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
- (request.getParameter(operation) == null && (data.getId() != attributeData.getId()))){
- duplicateflag = true;
- }
- }
- if(attributeValueData.getUserDataTypeValues() != null && !attributeValueData.getUserDataTypeValues().isEmpty()){
- attributeData.setAttributeValue(utils.appendKey(attributeValueData.getUserDataTypeValues(), "attributeValues", ","));
- }
-
- if(attributeData.getDatatypeBean().getShortName() != null){
- String datatype = attributeData.getDatatypeBean().getShortName();
- attributeData.setDatatypeBean(utils.getDataType(datatype));
- }
-
- String responseString = null;
- if(!duplicateflag){
- attributeData.setUserModifiedBy(userInfo);
- if(attributeData.getId() == 0){
- attributeData.setCategoryBean(utils.getCategory());
- attributeData.setUserCreatedBy(userInfo);
- commonClassDao.save(attributeData);
- }else{
- attributeData.setModifiedDate(new Date());
- commonClassDao.update(attributeData);
- }
- responseString = mapper.writeValueAsString(commonClassDao.getData(Attribute.class));
- }else{
- responseString = duplicateResponseString;
- }
- if(fromAPI){
- return utils.getResultForApi(responseString);
- }else{
- utils.setResponseData(response, attributeDatas, responseString);
- }
- }catch (Exception e){
- utils.setErrorResponseData(response, e);
- }
- return null;
- }
-
- @RequestMapping(value={"/attribute_dictionary/remove_attribute"}, method={RequestMethod.POST})
- public void removeAttributeDictionary(HttpServletRequest request, HttpServletResponse response)throws IOException {
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.removeData(request, response, attributeDatas, Attribute.class);
- }
-
- //OnapName Dictionary
- @RequestMapping(value={"/get_OnapNameDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getOnapNameDictionaryByNameEntityData(HttpServletResponse response){
- LOGGER.info("get_OnapNameDataByName is called");
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getDataByEntity(response, onapNameDatas, onapName, OnapName.class);
- }
-
- @RequestMapping(value={"/get_OnapNameData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getOnapNameDictionaryEntityData(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getData(response, onapNameDatas, OnapName.class);
- }
-
- @RequestMapping(value={"/onap_dictionary/save_onapName"}, method={RequestMethod.POST})
- public ModelAndView saveOnapDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
- DictionaryUtils utils = getDictionaryUtilsInstance();
- try {
- boolean fromAPI = utils.isRequestFromAPI(request);
- ObjectMapper mapper = new ObjectMapper();
- mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- JsonNode root = mapper.readTree(request.getReader());
- OnapName onapData;
- String userId = null;
- if(fromAPI){
- onapData = mapper.readValue(root.get(dictionaryFields).toString(), OnapName.class);
- userId = "API";
- }else{
- onapData = mapper.readValue(root.get("onapNameDictionaryData").toString(), OnapName.class);
- userId = root.get("userid").textValue();
- }
- UserInfo userInfo = utils.getUserInfo(userId);
-
- List<Object> duplicateData = commonClassDao.checkDuplicateEntry(onapData.getOnapName(), onapName, OnapName.class);
- boolean duplicateflag = false;
- if(!duplicateData.isEmpty()){
- OnapName data = (OnapName) duplicateData.get(0);
- if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
- onapData.setId(data.getId());
- }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
- (request.getParameter(operation) == null && (data.getId() != onapData.getId()))){
- duplicateflag = true;
- }
- }
- String responseString = null;
- if(!duplicateflag){
- onapData.setUserModifiedBy(userInfo);
- if(onapData.getId() == 0){
- onapData.setUserCreatedBy(userInfo);
- commonClassDao.save(onapData);
- }else{
- onapData.setModifiedDate(new Date());
- commonClassDao.update(onapData);
- }
- responseString = mapper.writeValueAsString(commonClassDao.getData(OnapName.class));
- }else{
- responseString = duplicateResponseString;
- }
- if(fromAPI){
- return utils.getResultForApi(responseString);
- }else{
- utils.setResponseData(response, onapNameDatas, responseString);
- }
- }catch (Exception e){
- utils.setErrorResponseData(response, e);
- }
- return null;
- }
-
- @RequestMapping(value={"/onap_dictionary/remove_onap"}, method={RequestMethod.POST})
- public void removeOnapDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException {
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.removeData(request, response, onapNameDatas, OnapName.class);
- }
+
+ private static final Log LOGGER = LogFactory.getLog(DictionaryController.class);
+
+ private static CommonClassDao commonClassDao;
+ private static String xacmlId = "xacmlId";
+ private static String operation = "operation";
+ private static String dictionaryFields ="dictionaryFields";
+ private static String duplicateResponseString = "Duplicate";
+ private static String onapName = "onapName";
+ private static String attributeDatas = "attributeDictionaryDatas";
+ private static String onapNameDatas = "onapNameDictionaryDatas";
+
+ @Autowired
+ public DictionaryController(CommonClassDao commonClassDao){
+ DictionaryController.commonClassDao = commonClassDao;
+ }
+
+ public DictionaryController(){
+ super();
+ }
+
+ private DictionaryUtils getDictionaryUtilsInstance(){
+ return DictionaryUtils.getDictionaryUtils();
+ }
+
+ @RequestMapping(value={"/get_AttributeDatabyAttributeName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getAttributeDictionaryEntityDatabyAttributeName(HttpServletResponse response){
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getDataByEntity(response, attributeDatas, xacmlId, Attribute.class);
+ }
+
+ //Attribute Dictionary
+ @RequestMapping(value="/get_AttributeData", method= RequestMethod.GET , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getAttributeDictionaryEntityData(HttpServletResponse response){
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getData(response, attributeDatas, Attribute.class);
+ }
+
+ @RequestMapping(value={"/attribute_dictionary/save_attribute"}, method={RequestMethod.POST})
+ public ModelAndView saveAttributeDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ try {
+ boolean fromAPI = utils.isRequestFromAPI(request);
+ ObjectMapper mapper = new ObjectMapper();
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ JsonNode root = mapper.readTree(request.getReader());
+ Attribute attributeData = null;
+ AttributeValues attributeValueData = null;
+ String userId = null;
+ if(fromAPI){
+ attributeData = mapper.readValue(root.get(dictionaryFields).toString(), Attribute.class);
+ attributeValueData = mapper.readValue(root.get(dictionaryFields).toString(), AttributeValues.class);
+ userId = "API";
+ }else{
+ attributeData = mapper.readValue(root.get("attributeDictionaryData").toString(), Attribute.class);
+ attributeValueData = mapper.readValue(root.get("attributeDictionaryData").toString(), AttributeValues.class);
+ userId = root.get("userid").textValue();
+ }
+ UserInfo userInfo = utils.getUserInfo(userId);
+ List<Object> duplicateData = commonClassDao.checkDuplicateEntry(attributeData.getXacmlId(), xacmlId, Attribute.class);
+ boolean duplicateflag = false;
+ if(!duplicateData.isEmpty()){
+ Attribute data = (Attribute) duplicateData.get(0);
+ if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
+ attributeData.setId(data.getId());
+ }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
+ (request.getParameter(operation) == null && (data.getId() != attributeData.getId()))){
+ duplicateflag = true;
+ }
+ }
+ if(attributeValueData.getUserDataTypeValues() != null && !attributeValueData.getUserDataTypeValues().isEmpty()){
+ attributeData.setAttributeValue(utils.appendKey(attributeValueData.getUserDataTypeValues(), "attributeValues", ","));
+ }
+
+ if(attributeData.getDatatypeBean().getShortName() != null){
+ String datatype = attributeData.getDatatypeBean().getShortName();
+ attributeData.setDatatypeBean(utils.getDataType(datatype));
+ }
+
+ String responseString = null;
+ if(!duplicateflag){
+ attributeData.setUserModifiedBy(userInfo);
+ if(attributeData.getId() == 0){
+ attributeData.setCategoryBean(utils.getCategory());
+ attributeData.setUserCreatedBy(userInfo);
+ commonClassDao.save(attributeData);
+ }else{
+ attributeData.setModifiedDate(new Date());
+ commonClassDao.update(attributeData);
+ }
+ responseString = mapper.writeValueAsString(commonClassDao.getData(Attribute.class));
+ }else{
+ responseString = duplicateResponseString;
+ }
+ if(fromAPI){
+ return utils.getResultForApi(responseString);
+ }else{
+ utils.setResponseData(response, attributeDatas, responseString);
+ }
+ }catch (Exception e){
+ utils.setErrorResponseData(response, e);
+ }
+ return null;
+ }
+
+ @RequestMapping(value={"/attribute_dictionary/remove_attribute"}, method={RequestMethod.POST})
+ public void removeAttributeDictionary(HttpServletRequest request, HttpServletResponse response)throws IOException {
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.removeData(request, response, attributeDatas, Attribute.class);
+ }
+
+ //OnapName Dictionary
+ @RequestMapping(value={"/get_OnapNameDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getOnapNameDictionaryByNameEntityData(HttpServletResponse response){
+ LOGGER.info("get_OnapNameDataByName is called");
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getDataByEntity(response, onapNameDatas, onapName, OnapName.class);
+ }
+
+ @RequestMapping(value={"/get_OnapNameData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getOnapNameDictionaryEntityData(HttpServletResponse response){
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getData(response, onapNameDatas, OnapName.class);
+ }
+
+ @RequestMapping(value={"/onap_dictionary/save_onapName"}, method={RequestMethod.POST})
+ public ModelAndView saveOnapDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ try {
+ boolean fromAPI = utils.isRequestFromAPI(request);
+ ObjectMapper mapper = new ObjectMapper();
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ JsonNode root = mapper.readTree(request.getReader());
+ OnapName onapData;
+ String userId = null;
+ if(fromAPI){
+ onapData = mapper.readValue(root.get(dictionaryFields).toString(), OnapName.class);
+ userId = "API";
+ }else{
+ onapData = mapper.readValue(root.get("onapNameDictionaryData").toString(), OnapName.class);
+ userId = root.get("userid").textValue();
+ }
+ UserInfo userInfo = utils.getUserInfo(userId);
+
+ List<Object> duplicateData = commonClassDao.checkDuplicateEntry(onapData.getOnapName(), onapName, OnapName.class);
+ boolean duplicateflag = false;
+ if(!duplicateData.isEmpty()){
+ OnapName data = (OnapName) duplicateData.get(0);
+ if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
+ onapData.setId(data.getId());
+ }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
+ (request.getParameter(operation) == null && (data.getId() != onapData.getId()))){
+ duplicateflag = true;
+ }
+ }
+ String responseString = null;
+ if(!duplicateflag){
+ onapData.setUserModifiedBy(userInfo);
+ if(onapData.getId() == 0){
+ onapData.setUserCreatedBy(userInfo);
+ commonClassDao.save(onapData);
+ }else{
+ onapData.setModifiedDate(new Date());
+ commonClassDao.update(onapData);
+ }
+ responseString = mapper.writeValueAsString(commonClassDao.getData(OnapName.class));
+ }else{
+ responseString = duplicateResponseString;
+ }
+ if(fromAPI){
+ return utils.getResultForApi(responseString);
+ }else{
+ utils.setResponseData(response, onapNameDatas, responseString);
+ }
+ }catch (Exception e){
+ utils.setErrorResponseData(response, e);
+ }
+ return null;
+ }
+
+ @RequestMapping(value={"/onap_dictionary/remove_onap"}, method={RequestMethod.POST})
+ public void removeOnapDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException {
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.removeData(request, response, onapNameDatas, OnapName.class);
+ }
}
class AttributeValues{
- private List<Object> userDataTypeValues;
+ private List<Object> userDataTypeValues;
- public List<Object> getUserDataTypeValues() {
- return userDataTypeValues;
- }
+ public List<Object> getUserDataTypeValues() {
+ return userDataTypeValues;
+ }
- public void setUserDataTypeValues(List<Object> userDataTypeValues) {
- this.userDataTypeValues = userDataTypeValues;
- }
+ public void setUserDataTypeValues(List<Object> userDataTypeValues) {
+ this.userDataTypeValues = userDataTypeValues;
+ }
} \ No newline at end of file
diff --git a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/DictionaryImportController.java b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/DictionaryImportController.java
index 9423017c3..7093cd514 100644
--- a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/DictionaryImportController.java
+++ b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/DictionaryImportController.java
@@ -75,704 +75,704 @@ import au.com.bytecode.opencsv.CSVReader;
@Controller
public class DictionaryImportController {
- private static final Logger LOGGER = FlexLogger.getLogger(DictionaryImportController.class);
-
- private static CommonClassDao commonClassDao;
- private static final String DESCRIPTION= "description";
- private static final String ERROR= "Error";
- private static final String DEPENDENCY= "dependency";
-
- @Autowired
- public DictionaryImportController(CommonClassDao commonClassDao){
- setCommonClassDao(commonClassDao);
- }
-
- public static void setCommonClassDao(CommonClassDao commonClassDao) {
- DictionaryImportController.commonClassDao = commonClassDao;
- }
-
- public DictionaryImportController(){
- super();
- }
+ private static final Logger LOGGER = FlexLogger.getLogger(DictionaryImportController.class);
- @RequestMapping(value={"/dictionary/import_dictionary"}, method={RequestMethod.POST})
- public void importDictionaryData(HttpServletRequest request, HttpServletResponse response) throws IOException{
- ObjectMapper mapper = new ObjectMapper();
- mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- String userId = request.getParameter("userId");
- String dictionaryName = request.getParameter("dictionaryName");
-
- if(dictionaryName == null || dictionaryName.isEmpty()){
- LOGGER.error("dictionaryName is null/empty");
- response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
- response.getWriter().write(ERROR);
- return;
- }
-
- // fix Fortify Path Manipulation issue
- if(!isValidDictionaryName(dictionaryName)){
- LOGGER.error("dictionaryName is invalid");
- response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
- response.getWriter().write(ERROR);
- return;
- }
- File file = new File(dictionaryName);
- try(OutputStream outputStream = new FileOutputStream(file); FileReader fileReader = new FileReader(file.toString())){
- IOUtils.copy(request.getInputStream(), outputStream);
- CSVReader csvReader = new CSVReader(fileReader);
- List<String[]> dictSheet = csvReader.readAll();
- if(dictionaryName.startsWith("Attribute")){
- for(int i = 1; i< dictSheet.size(); i++){
- Attribute attribute = new Attribute("");
- UserInfo userinfo = new UserInfo();
- userinfo.setUserLoginId(userId);
- attribute.setUserCreatedBy(userinfo);
- attribute.setUserModifiedBy(userinfo);
- String[] rows = dictSheet.get(i);
- for (int j=0 ; j<rows.length; j++ ){
- if("xacml_id".equalsIgnoreCase(dictSheet.get(0)[j]) || "Attribute ID".equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setXacmlId(rows[j]);
- }
- if(DESCRIPTION.equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setDescription(rows[j]);
- }
- if("priority".equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setPriority(rows[j]);
- }
- if("datatype".equalsIgnoreCase(dictSheet.get(0)[j]) || "Data Type".equalsIgnoreCase(dictSheet.get(0)[j])){
- Datatype dataType = new Datatype();
- if("string".equalsIgnoreCase(rows[j])){
- dataType.setId(26);
- }else if("integer".equalsIgnoreCase(rows[j])){
- dataType.setId(12);
- }else if("double".equalsIgnoreCase(rows[j])){
- dataType.setId(25);
- }else if("boolean".equalsIgnoreCase(rows[j])){
- dataType.setId(18);
- }else if("user".equalsIgnoreCase(rows[j])){
- dataType.setId(29);
- }
- attribute.setDatatypeBean(dataType);
- Category category = new Category();
- category.setId(5);
- attribute.setCategoryBean(category);
- }
- if("attribute_value".equalsIgnoreCase(dictSheet.get(0)[j]) || "Attribute Value".equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setAttributeValue(rows[j]);
- }
- }
- commonClassDao.save(attribute);
- }
- }
- if(dictionaryName.startsWith("ActionPolicyDictionary")){
- for(int i = 1; i< dictSheet.size(); i++){
- ActionPolicyDict attribute = new ActionPolicyDict();
- UserInfo userinfo = new UserInfo();
- userinfo.setUserLoginId(userId);
- attribute.setUserCreatedBy(userinfo);
- attribute.setUserModifiedBy(userinfo);
- String[] rows = dictSheet.get(i);
- for (int j=0 ; j<rows.length; j++ ){
- if("attribute_name".equalsIgnoreCase(dictSheet.get(0)[j]) || "Attribute Name".equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setAttributeName(rows[j]);
- }
- if("body".equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setBody(rows[j]);
- }
- if(DESCRIPTION.equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setDescription(rows[j]);
- }
- if("headers".equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setHeader(rows[j]);
- }
- if("method".equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setMethod(rows[j]);
- }
- if("type".equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setType(rows[j]);
- }
- if("url".equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setUrl(rows[j]);
- }
- }
- commonClassDao.save(attribute);
- }
- }
- if(dictionaryName.startsWith("OnapName")){
- for(int i = 1; i< dictSheet.size(); i++){
- OnapName attribute = new OnapName();
- UserInfo userinfo = new UserInfo();
- userinfo.setUserLoginId(userId);
- attribute.setUserCreatedBy(userinfo);
- attribute.setUserModifiedBy(userinfo);
- String[] rows = dictSheet.get(i);
- for (int j=0 ; j<rows.length; j++ ){
- if("onap_name".equalsIgnoreCase(dictSheet.get(0)[j]) || "Onap Name".equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setOnapName(rows[j]);
- }
- if(DESCRIPTION.equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setDescription(rows[j]);
- }
- }
- commonClassDao.save(attribute);
- }
- }
+ private static CommonClassDao commonClassDao;
+ private static final String DESCRIPTION= "description";
+ private static final String ERROR= "Error";
+ private static final String DEPENDENCY= "dependency";
- if(dictionaryName.startsWith("MSPolicyDictionary")){
- for(int i = 1; i< dictSheet.size(); i++){
- MicroServiceModels attribute = new MicroServiceModels();
- UserInfo userinfo = new UserInfo();
- userinfo.setUserLoginId(userId);
- attribute.setUserCreatedBy(userinfo);
- String[] rows = dictSheet.get(i);
- for (int j=0 ; j<rows.length; j++ ){
- if("modelName".equalsIgnoreCase(dictSheet.get(0)[j]) || "Micro Service Model".equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setModelName(rows[j]);
- }
- if("version".equalsIgnoreCase(dictSheet.get(0)[j]) || "Model Version".equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setVersion(rows[j]);
- }
- if(DESCRIPTION.equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setDescription(rows[j]);
- }
- if(DEPENDENCY.equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setDependency(rows[j]);
- }
- if("attributes".equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setAttributes(rows[j]);
- }
- if("enumValues".equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setEnumValues(rows[j]);
- }
- if("Ref Attributes".equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setRef_attributes(rows[j]);
- }
- if("Sub Attributes".equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setSub_attributes(rows[j]);
- }
- if("annotations".equalsIgnoreCase(dictSheet.get(0)[j])) {
- attribute.setAnnotation(rows[j]);
- }
- }
+ @Autowired
+ public DictionaryImportController(CommonClassDao commonClassDao){
+ setCommonClassDao(commonClassDao);
+ }
- commonClassDao.save(attribute);
- }
- }
+ public static void setCommonClassDao(CommonClassDao commonClassDao) {
+ DictionaryImportController.commonClassDao = commonClassDao;
+ }
- if(dictionaryName.startsWith("OptimizationPolicyDictionary")){
- for(int i = 1; i< dictSheet.size(); i++){
- MicroServiceModels attribute = new MicroServiceModels();
- UserInfo userinfo = new UserInfo();
- userinfo.setUserLoginId(userId);
- attribute.setUserCreatedBy(userinfo);
- String[] rows = dictSheet.get(i);
- for (int j=0 ; j<rows.length; j++ ){
- if("modelName".equalsIgnoreCase(dictSheet.get(0)[j]) || "Optimization Service Model".equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setModelName(rows[j]);
- }
- if("version".equalsIgnoreCase(dictSheet.get(0)[j]) || "Model Version".equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setVersion(rows[j]);
- }
- if(DESCRIPTION.equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setDescription(rows[j]);
- }
- if(DEPENDENCY.equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setDependency(rows[j]);
- }
- if("attributes".equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setAttributes(rows[j]);
- }
- if("enumValues".equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setEnumValues(rows[j]);
- }
- if("Ref Attributes".equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setRef_attributes(rows[j]);
- }
- if("Sub Attributes".equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setSub_attributes(rows[j]);
- }
- if("annotations".equalsIgnoreCase(dictSheet.get(0)[j])) {
- attribute.setAnnotation(rows[j]);
- }
- }
+ public DictionaryImportController(){
+ super();
+ }
- commonClassDao.save(attribute);
- }
- }
+ @RequestMapping(value={"/dictionary/import_dictionary"}, method={RequestMethod.POST})
+ public void importDictionaryData(HttpServletRequest request, HttpServletResponse response) throws IOException{
+ ObjectMapper mapper = new ObjectMapper();
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ String userId = request.getParameter("userId");
+ String dictionaryName = request.getParameter("dictionaryName");
- if(dictionaryName.startsWith("VNFType")){
- for(int i = 1; i< dictSheet.size(); i++){
- VNFType attribute = new VNFType();
- UserInfo userinfo = new UserInfo();
- userinfo.setUserLoginId(userId);
- attribute.setUserCreatedBy(userinfo);
- attribute.setUserModifiedBy(userinfo);
- String[] rows = dictSheet.get(i);
- for (int j=0 ; j<rows.length; j++ ){
- if("vnf_type".equalsIgnoreCase(dictSheet.get(0)[j]) || "VNF Type".equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setVnftype(rows[j]);
- }
- if(DESCRIPTION.equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setDescription(rows[j]);
- }
- }
- commonClassDao.save(attribute);
- }
- }
- if(dictionaryName.startsWith("VSCLAction")){
- for(int i = 1; i< dictSheet.size(); i++){
- VSCLAction attribute = new VSCLAction();
- UserInfo userinfo = new UserInfo();
- userinfo.setUserLoginId(userId);
- attribute.setUserCreatedBy(userinfo);
- attribute.setUserModifiedBy(userinfo);
- String[] rows = dictSheet.get(i);
- for (int j=0 ; j<rows.length; j++ ){
- if("vscl_action".equalsIgnoreCase(dictSheet.get(0)[j]) || "VSCL Action".equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setVsclaction(rows[j]);
- }
- if(DESCRIPTION.equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setDescription(rows[j]);
- }
- }
- commonClassDao.save(attribute);
- }
- }
- if(dictionaryName.startsWith("ClosedLoopService")){
- for(int i = 1; i< dictSheet.size(); i++){
- ClosedLoopD2Services attribute = new ClosedLoopD2Services();
- UserInfo userinfo = new UserInfo();
- userinfo.setUserLoginId(userId);
- attribute.setUserCreatedBy(userinfo);
- attribute.setUserModifiedBy(userinfo);
- String[] rows = dictSheet.get(i);
- for (int j=0 ; j<rows.length; j++ ){
- if("serviceName".equalsIgnoreCase(dictSheet.get(0)[j]) || "Service Name".equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setServiceName(rows[j]);
- }
- if(DESCRIPTION.equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setDescription(rows[j]);
- }
- }
- commonClassDao.save(attribute);
- }
- }
- if(dictionaryName.startsWith("ClosedLoopSite")){
- for(int i = 1; i< dictSheet.size(); i++){
- ClosedLoopSite attribute = new ClosedLoopSite();
- UserInfo userinfo = new UserInfo();
- userinfo.setUserLoginId(userId);
- attribute.setUserCreatedBy(userinfo);
- attribute.setUserModifiedBy(userinfo);
- String[] rows = dictSheet.get(i);
- for (int j=0 ; j<rows.length; j++ ){
- if("siteName".equalsIgnoreCase(dictSheet.get(0)[j]) || "Site Name".equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setSiteName(rows[j]);
- }
- if(DESCRIPTION.equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setDescription(rows[j]);
- }
- }
- commonClassDao.save(attribute);
- }
- }
- if(dictionaryName.startsWith("PEPOptions")){
- for(int i = 1; i< dictSheet.size(); i++){
- PEPOptions attribute = new PEPOptions();
- UserInfo userinfo = new UserInfo();
- userinfo.setUserLoginId(userId);
- attribute.setUserCreatedBy(userinfo);
- attribute.setUserModifiedBy(userinfo);
- String[] rows = dictSheet.get(i);
- for (int j=0 ; j<rows.length; j++ ){
- if("PEP_NAME".equalsIgnoreCase(dictSheet.get(0)[j]) || "PEP Name".equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setPepName(rows[j]);
- }
- if(DESCRIPTION.equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setDescription(rows[j]);
- }
- if("Actions".equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setActions(rows[j]);
- }
- }
- commonClassDao.save(attribute);
- }
- }
- if(dictionaryName.startsWith("VarbindDictionary")){
- for(int i = 1; i< dictSheet.size(); i++){
- VarbindDictionary attribute = new VarbindDictionary();
- UserInfo userinfo = new UserInfo();
- userinfo.setUserLoginId(userId);
- attribute.setUserCreatedBy(userinfo);
- attribute.setUserModifiedBy(userinfo);
- String[] rows = dictSheet.get(i);
- for (int j=0 ; j<rows.length; j++ ){
- if("varbind_Name".equalsIgnoreCase(dictSheet.get(0)[j]) || "Varbind Name".equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setVarbindName(rows[j]);
- }
- if("varbind_Description".equalsIgnoreCase(dictSheet.get(0)[j]) || "Varbind Description".equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setVarbindDescription(rows[j]);
- }
- if("varbind_oid".equalsIgnoreCase(dictSheet.get(0)[j]) || "Varbind OID".equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setVarbindOID(rows[j]);
- }
- }
- commonClassDao.save(attribute);
- }
- }
- if(dictionaryName.startsWith("BRMSParamDictionary")){
- for(int i = 1; i< dictSheet.size(); i++){
- BRMSParamTemplate attribute = new BRMSParamTemplate();
- UserInfo userinfo = new UserInfo();
- userinfo.setUserLoginId(userId);
- attribute.setUserCreatedBy(userinfo);
- String[] rows = dictSheet.get(i);
- for (int j=0 ; j<rows.length; j++ ){
- if("param_template_name".equalsIgnoreCase(dictSheet.get(0)[j]) || "Rule Name".equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setRuleName(rows[j]);
- }
- if(DESCRIPTION.equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setDescription(rows[j]);
- }
- if("rule".equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setRule(rows[j]);
- }
- }
- commonClassDao.save(attribute);
- }
- }
- if(dictionaryName.startsWith("BRMSControllerDictionary")){
- for(int i = 1; i< dictSheet.size(); i++){
- BRMSController attribute = new BRMSController();
- UserInfo userinfo = new UserInfo();
- userinfo.setUserLoginId(userId);
- attribute.setUserCreatedBy(userinfo);
- String[] rows = dictSheet.get(i);
- for (int j=0 ; j<rows.length; j++ ){
- if("controllerName".equalsIgnoreCase(dictSheet.get(0)[j]) || "Controller Name".equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setControllerName(rows[j]);
- }
- if(DESCRIPTION.equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setDescription(rows[j]);
- }
- if("controller".equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setController(rows[j]);
- }
- }
- commonClassDao.save(attribute);
- }
- }
- if(dictionaryName.startsWith("BRMSDependencyDictionary")){
- for(int i = 1; i< dictSheet.size(); i++){
- BRMSDependency attribute = new BRMSDependency();
- UserInfo userinfo = new UserInfo();
- userinfo.setUserLoginId(userId);
- attribute.setUserCreatedBy(userinfo);
- String[] rows = dictSheet.get(i);
- for (int j=0 ; j<rows.length; j++ ){
- if("dependencyName".equalsIgnoreCase(dictSheet.get(0)[j]) || "Dependency Name".equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setDependencyName(rows[j]);
- }
- if(DESCRIPTION.equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setDescription(rows[j]);
- }
- if(DEPENDENCY.equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setDependency(rows[j]);
- }
- }
- commonClassDao.save(attribute);
- }
- }
- if(dictionaryName.startsWith("Settings")){
- for(int i = 1; i< dictSheet.size(); i++){
- DecisionSettings attribute = new DecisionSettings();
- UserInfo userinfo = new UserInfo();
- userinfo.setUserLoginId(userId);
- attribute.setUserCreatedBy(userinfo);
- attribute.setUserModifiedBy(userinfo);
- String[] rows = dictSheet.get(i);
- for (int j=0 ; j<rows.length; j++ ){
- if("xacml_id".equalsIgnoreCase(dictSheet.get(0)[j]) || "Settings ID".equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setXacmlId(rows[j]);
- }
- if(DESCRIPTION.equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setDescription(rows[j]);
- }
- if("priority".equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setPriority(rows[j]);
- }
- if("datatype".equalsIgnoreCase(dictSheet.get(0)[j]) || "Data Type".equalsIgnoreCase(dictSheet.get(0)[j])){
- Datatype dataType = new Datatype();
- if("string".equalsIgnoreCase(rows[j])){
- dataType.setId(26);
- }else if("integer".equalsIgnoreCase(rows[j])){
- dataType.setId(12);
- }else if("double".equalsIgnoreCase(rows[j])){
- dataType.setId(25);
- }else if("boolean".equalsIgnoreCase(rows[j])){
- dataType.setId(18);
- }else if("user".equalsIgnoreCase(rows[j])){
- dataType.setId(29);
- }
- attribute.setDatatypeBean(dataType);
- }
- }
- commonClassDao.save(attribute);
- }
- }
- if(dictionaryName.startsWith("PrefixList")){
- for(int i = 1; i< dictSheet.size(); i++){
- PrefixList attribute = new PrefixList();
- String[] rows = dictSheet.get(i);
- for (int j=0 ; j<rows.length; j++ ){
- if("prefixListName".equalsIgnoreCase(dictSheet.get(0)[j]) || "PrefixList Name".equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setPrefixListName(rows[j]);
- }
- if(DESCRIPTION.equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setPrefixListValue(rows[j]);
- }
- if("prefixListValue".equalsIgnoreCase(dictSheet.get(0)[j]) || "PrefixList Value".equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setDescription(rows[j]);
- }
- }
- commonClassDao.save(attribute);
- }
- }
- if(dictionaryName.startsWith("SecurityZone")){
- for(int i = 1; i< dictSheet.size(); i++){
- SecurityZone attribute = new SecurityZone();
- String[] rows = dictSheet.get(i);
- for (int j=0 ; j<rows.length; j++ ){
- if("zoneName".equalsIgnoreCase(dictSheet.get(0)[j]) || "Zone Name".equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setZoneName(rows[j]);
- }
- if("zoneValue".equalsIgnoreCase(dictSheet.get(0)[j]) || "Zone Value".equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setZoneValue(rows[j]);
- }
- }
- commonClassDao.save(attribute);
- }
- }
- if(dictionaryName.startsWith("Zone")){
- for(int i = 1; i< dictSheet.size(); i++){
- Zone attribute = new Zone();
- String[] rows = dictSheet.get(i);
- for (int j=0 ; j<rows.length; j++ ){
- if("zoneName".equalsIgnoreCase(dictSheet.get(0)[j]) || "Zone Name".equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setZoneName(rows[j]);
- }
- if("zoneValue".equalsIgnoreCase(dictSheet.get(0)[j]) || "Zone Value".equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setZoneValue(rows[j]);
- }
- }
- commonClassDao.save(attribute);
- }
- }
- if(dictionaryName.startsWith("ServiceList")){
- for(int i = 1; i< dictSheet.size(); i++){
- ServiceList attribute = new ServiceList();
- String[] rows = dictSheet.get(i);
- for (int j=0 ; j<rows.length; j++ ){
- if("serviceName".equalsIgnoreCase(dictSheet.get(0)[j]) || "Service Name".equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setServiceName(rows[j]);
- }
- if("serviceDesc".equalsIgnoreCase(dictSheet.get(0)[j]) || DESCRIPTION.equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setServiceDescription(rows[j]);
- }
- if("serviceType".equalsIgnoreCase(dictSheet.get(0)[j]) || "Service Type".equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setServiceType(rows[j]);
- }
- if("serviceTrasProtocol".equalsIgnoreCase(dictSheet.get(0)[j]) || "Transport Protocol".equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setServiceTransProtocol(rows[j]);
- }
- if("serviceAppProtocol".equalsIgnoreCase(dictSheet.get(0)[j]) || "APP Protocol".equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setServiceAppProtocol(rows[j]);
- }
- if("servicePorts".equalsIgnoreCase(dictSheet.get(0)[j]) || "Ports".equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setServicePorts(rows[j]);
- }
- }
- commonClassDao.save(attribute);
- }
- }
- if(dictionaryName.startsWith("ServiceGroup")){
- for(int i = 1; i< dictSheet.size(); i++){
- GroupServiceList attribute = new GroupServiceList();
- String[] rows = dictSheet.get(i);
- for (int j=0 ; j<rows.length; j++ ){
- if("name".equalsIgnoreCase(dictSheet.get(0)[j]) || "Group Name".equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setGroupName(rows[j]);
- }
- if("serviceList".equalsIgnoreCase(dictSheet.get(0)[j]) || "Service List".equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setServiceList(rows[j]);
- }
- }
- commonClassDao.save(attribute);
- }
- }
- if(dictionaryName.startsWith("AddressGroup")){
- for(int i = 1; i< dictSheet.size(); i++){
- AddressGroup attribute = new AddressGroup();
- String[] rows = dictSheet.get(i);
- for (int j=0 ; j<rows.length; j++ ){
- if("name".equalsIgnoreCase(dictSheet.get(0)[j]) || "Group Name".equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setGroupName(rows[j]);
- }
- if("serviceList".equalsIgnoreCase(dictSheet.get(0)[j]) || "Prefix List".equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setServiceList(rows[j]);
- }
- if(DESCRIPTION.equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setDescription(rows[j]);
- }
- }
- commonClassDao.save(attribute);
- }
- }
- if(dictionaryName.startsWith("ProtocolList")){
- for(int i = 1; i< dictSheet.size(); i++){
- ProtocolList attribute = new ProtocolList();
- String[] rows = dictSheet.get(i);
- for (int j=0 ; j<rows.length; j++ ){
- if("protocolName".equalsIgnoreCase(dictSheet.get(0)[j]) || "Protocol Name".equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setProtocolName(rows[j]);
- }
- if(DESCRIPTION.equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setDescription(rows[j]);
- }
- }
- commonClassDao.save(attribute);
- }
- }
- if(dictionaryName.startsWith("ActionList")){
- for(int i = 1; i< dictSheet.size(); i++){
- ActionList attribute = new ActionList();
- String[] rows = dictSheet.get(i);
- for (int j=0 ; j<rows.length; j++ ){
- if("actionName".equalsIgnoreCase(dictSheet.get(0)[j]) || "Action Name".equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setActionName(rows[j]);
- }
- if(DESCRIPTION.equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setDescription(rows[j]);
- }
- }
- commonClassDao.save(attribute);
- }
- }
- if(dictionaryName.startsWith("TermList")){
- for(int i = 1; i< dictSheet.size(); i++){
- TermList attribute = new TermList();
- UserInfo userinfo = new UserInfo();
- userinfo.setUserLoginId(userId);
- attribute.setUserCreatedBy(userinfo);
- attribute.setUserModifiedBy(userinfo);
- String[] rows = dictSheet.get(i);
- for (int j=0 ; j<rows.length; j++ ){
- if("termName".equalsIgnoreCase(dictSheet.get(0)[j]) || "Term-Name".equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setTermName(rows[j]);
- }
- if("Term-Description".equalsIgnoreCase(dictSheet.get(0)[j]) || "termDescription".equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setDescription(rows[j]);
- }
- if("fromZone".equalsIgnoreCase(dictSheet.get(0)[j]) || "From Zone".equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setFromZones(rows[j]);
- }
- if("toZone".equalsIgnoreCase(dictSheet.get(0)[j]) || "To Zone".equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setToZones(rows[j]);
- }
- if("srcIPList".equalsIgnoreCase(dictSheet.get(0)[j]) || "Source-IP-List".equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setSrcIPList(rows[j]);
- }
- if("destIPList".equalsIgnoreCase(dictSheet.get(0)[j]) || "Destination-IP-List".equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setDestIPList(rows[j]);
- }
- if("srcPortList".equalsIgnoreCase(dictSheet.get(0)[j]) || "Source-Port-List".equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setSrcPortList(rows[j]);
- }
- if("destPortList".equalsIgnoreCase(dictSheet.get(0)[j]) || "Destination-Port-List".equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setDestPortList(rows[j]);
- }
- if("action".equalsIgnoreCase(dictSheet.get(0)[j]) || "Action List".equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setAction(rows[j]);
- }
- }
- commonClassDao.save(attribute);
- }
- }
- if(dictionaryName.startsWith("SearchCriteria")){
- for(int i = 1; i< dictSheet.size(); i++){
- DescriptiveScope attribute = new DescriptiveScope();
- UserInfo userinfo = new UserInfo();
- userinfo.setUserLoginId(userId);
- attribute.setUserCreatedBy(userinfo);
- attribute.setUserModifiedBy(userinfo);
- String[] rows = dictSheet.get(i);
- for (int j=0 ; j<rows.length; j++ ){
- if("descriptiveScopeName".equalsIgnoreCase(dictSheet.get(0)[j]) || "Descriptive Scope Name".equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setScopeName(rows[j]);
- }
- if(DESCRIPTION.equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setDescription(rows[j]);
- }
- if("search".equalsIgnoreCase(dictSheet.get(0)[j]) || "Search Criteria".equalsIgnoreCase(dictSheet.get(0)[j])){
- attribute.setSearch(rows[j]);
- }
- }
- commonClassDao.save(attribute);
- }
- }
- csvReader.close();
- response.setStatus(HttpServletResponse.SC_OK);
- response.getWriter().write("Success");
- }catch(Exception e){
- LOGGER.error("Exception Occured while importing dictionary"+e);
- response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
- response.getWriter().write(ERROR);
- }finally{
- if(file != null && file.exists()){
- boolean deleted = file.delete();
- LOGGER.error("Imported File has been deleted: "+deleted);
- }
- }
- }
-
- public boolean isValidDictionaryName(String dictionaryName){
-
- String nameCheck = dictionaryName.replace(".csv", "");
- try{
- DictionaryNames mode = DictionaryNames.valueOf(nameCheck);
- switch (mode){
- case Attribute:
- case ActionPolicyDictionary:
- case OnapName:
- case MSPolicyDictionary:
- case OptimizationPolicyDictionary:
- case VNFType:
- case VSCLAction:
- case ClosedLoopService:
- case ClosedLoopSite:
- case PEPOptions:
- case VarbindDictionary:
- case BRMSParamDictionary:
- case BRMSControllerDictionary:
- case BRMSDependencyDictionary:
- case Settings:
- case PrefixList:
- case SecurityZone:
- case Zone:
- case ServiceList:
- case ServiceGroup:
- case AddressGroup:
- case ProtocolList:
- case ActionList:
- case TermList:
- case SearchCriteria:
- return true;
- default:
- return false;
- }
- }catch(Exception e){
- LOGGER.error("Dictionary not exits: " +dictionaryName +e);
- return false;
- }
- }
+ if(dictionaryName == null || dictionaryName.isEmpty()){
+ LOGGER.error("dictionaryName is null/empty");
+ response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
+ response.getWriter().write(ERROR);
+ return;
+ }
+
+ // fix Fortify Path Manipulation issue
+ if(!isValidDictionaryName(dictionaryName)){
+ LOGGER.error("dictionaryName is invalid");
+ response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
+ response.getWriter().write(ERROR);
+ return;
+ }
+ File file = new File(dictionaryName);
+ try(OutputStream outputStream = new FileOutputStream(file); FileReader fileReader = new FileReader(file.toString())){
+ IOUtils.copy(request.getInputStream(), outputStream);
+ CSVReader csvReader = new CSVReader(fileReader);
+ List<String[]> dictSheet = csvReader.readAll();
+ if(dictionaryName.startsWith("Attribute")){
+ for(int i = 1; i< dictSheet.size(); i++){
+ Attribute attribute = new Attribute("");
+ UserInfo userinfo = new UserInfo();
+ userinfo.setUserLoginId(userId);
+ attribute.setUserCreatedBy(userinfo);
+ attribute.setUserModifiedBy(userinfo);
+ String[] rows = dictSheet.get(i);
+ for (int j=0 ; j<rows.length; j++ ){
+ if("xacml_id".equalsIgnoreCase(dictSheet.get(0)[j]) || "Attribute ID".equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setXacmlId(rows[j]);
+ }
+ if(DESCRIPTION.equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setDescription(rows[j]);
+ }
+ if("priority".equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setPriority(rows[j]);
+ }
+ if("datatype".equalsIgnoreCase(dictSheet.get(0)[j]) || "Data Type".equalsIgnoreCase(dictSheet.get(0)[j])){
+ Datatype dataType = new Datatype();
+ if("string".equalsIgnoreCase(rows[j])){
+ dataType.setId(26);
+ }else if("integer".equalsIgnoreCase(rows[j])){
+ dataType.setId(12);
+ }else if("double".equalsIgnoreCase(rows[j])){
+ dataType.setId(25);
+ }else if("boolean".equalsIgnoreCase(rows[j])){
+ dataType.setId(18);
+ }else if("user".equalsIgnoreCase(rows[j])){
+ dataType.setId(29);
+ }
+ attribute.setDatatypeBean(dataType);
+ Category category = new Category();
+ category.setId(5);
+ attribute.setCategoryBean(category);
+ }
+ if("attribute_value".equalsIgnoreCase(dictSheet.get(0)[j]) || "Attribute Value".equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setAttributeValue(rows[j]);
+ }
+ }
+ commonClassDao.save(attribute);
+ }
+ }
+ if(dictionaryName.startsWith("ActionPolicyDictionary")){
+ for(int i = 1; i< dictSheet.size(); i++){
+ ActionPolicyDict attribute = new ActionPolicyDict();
+ UserInfo userinfo = new UserInfo();
+ userinfo.setUserLoginId(userId);
+ attribute.setUserCreatedBy(userinfo);
+ attribute.setUserModifiedBy(userinfo);
+ String[] rows = dictSheet.get(i);
+ for (int j=0 ; j<rows.length; j++ ){
+ if("attribute_name".equalsIgnoreCase(dictSheet.get(0)[j]) || "Attribute Name".equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setAttributeName(rows[j]);
+ }
+ if("body".equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setBody(rows[j]);
+ }
+ if(DESCRIPTION.equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setDescription(rows[j]);
+ }
+ if("headers".equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setHeader(rows[j]);
+ }
+ if("method".equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setMethod(rows[j]);
+ }
+ if("type".equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setType(rows[j]);
+ }
+ if("url".equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setUrl(rows[j]);
+ }
+ }
+ commonClassDao.save(attribute);
+ }
+ }
+ if(dictionaryName.startsWith("OnapName")){
+ for(int i = 1; i< dictSheet.size(); i++){
+ OnapName attribute = new OnapName();
+ UserInfo userinfo = new UserInfo();
+ userinfo.setUserLoginId(userId);
+ attribute.setUserCreatedBy(userinfo);
+ attribute.setUserModifiedBy(userinfo);
+ String[] rows = dictSheet.get(i);
+ for (int j=0 ; j<rows.length; j++ ){
+ if("onap_name".equalsIgnoreCase(dictSheet.get(0)[j]) || "Onap Name".equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setOnapName(rows[j]);
+ }
+ if(DESCRIPTION.equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setDescription(rows[j]);
+ }
+ }
+ commonClassDao.save(attribute);
+ }
+ }
+
+ if(dictionaryName.startsWith("MSPolicyDictionary")){
+ for(int i = 1; i< dictSheet.size(); i++){
+ MicroServiceModels attribute = new MicroServiceModels();
+ UserInfo userinfo = new UserInfo();
+ userinfo.setUserLoginId(userId);
+ attribute.setUserCreatedBy(userinfo);
+ String[] rows = dictSheet.get(i);
+ for (int j=0 ; j<rows.length; j++ ){
+ if("modelName".equalsIgnoreCase(dictSheet.get(0)[j]) || "Micro Service Model".equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setModelName(rows[j]);
+ }
+ if("version".equalsIgnoreCase(dictSheet.get(0)[j]) || "Model Version".equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setVersion(rows[j]);
+ }
+ if(DESCRIPTION.equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setDescription(rows[j]);
+ }
+ if(DEPENDENCY.equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setDependency(rows[j]);
+ }
+ if("attributes".equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setAttributes(rows[j]);
+ }
+ if("enumValues".equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setEnumValues(rows[j]);
+ }
+ if("Ref Attributes".equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setRef_attributes(rows[j]);
+ }
+ if("Sub Attributes".equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setSub_attributes(rows[j]);
+ }
+ if("annotations".equalsIgnoreCase(dictSheet.get(0)[j])) {
+ attribute.setAnnotation(rows[j]);
+ }
+ }
+
+ commonClassDao.save(attribute);
+ }
+ }
+
+ if(dictionaryName.startsWith("OptimizationPolicyDictionary")){
+ for(int i = 1; i< dictSheet.size(); i++){
+ MicroServiceModels attribute = new MicroServiceModels();
+ UserInfo userinfo = new UserInfo();
+ userinfo.setUserLoginId(userId);
+ attribute.setUserCreatedBy(userinfo);
+ String[] rows = dictSheet.get(i);
+ for (int j=0 ; j<rows.length; j++ ){
+ if("modelName".equalsIgnoreCase(dictSheet.get(0)[j]) || "Optimization Service Model".equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setModelName(rows[j]);
+ }
+ if("version".equalsIgnoreCase(dictSheet.get(0)[j]) || "Model Version".equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setVersion(rows[j]);
+ }
+ if(DESCRIPTION.equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setDescription(rows[j]);
+ }
+ if(DEPENDENCY.equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setDependency(rows[j]);
+ }
+ if("attributes".equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setAttributes(rows[j]);
+ }
+ if("enumValues".equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setEnumValues(rows[j]);
+ }
+ if("Ref Attributes".equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setRef_attributes(rows[j]);
+ }
+ if("Sub Attributes".equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setSub_attributes(rows[j]);
+ }
+ if("annotations".equalsIgnoreCase(dictSheet.get(0)[j])) {
+ attribute.setAnnotation(rows[j]);
+ }
+ }
+
+ commonClassDao.save(attribute);
+ }
+ }
+
+ if(dictionaryName.startsWith("VNFType")){
+ for(int i = 1; i< dictSheet.size(); i++){
+ VNFType attribute = new VNFType();
+ UserInfo userinfo = new UserInfo();
+ userinfo.setUserLoginId(userId);
+ attribute.setUserCreatedBy(userinfo);
+ attribute.setUserModifiedBy(userinfo);
+ String[] rows = dictSheet.get(i);
+ for (int j=0 ; j<rows.length; j++ ){
+ if("vnf_type".equalsIgnoreCase(dictSheet.get(0)[j]) || "VNF Type".equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setVnftype(rows[j]);
+ }
+ if(DESCRIPTION.equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setDescription(rows[j]);
+ }
+ }
+ commonClassDao.save(attribute);
+ }
+ }
+ if(dictionaryName.startsWith("VSCLAction")){
+ for(int i = 1; i< dictSheet.size(); i++){
+ VSCLAction attribute = new VSCLAction();
+ UserInfo userinfo = new UserInfo();
+ userinfo.setUserLoginId(userId);
+ attribute.setUserCreatedBy(userinfo);
+ attribute.setUserModifiedBy(userinfo);
+ String[] rows = dictSheet.get(i);
+ for (int j=0 ; j<rows.length; j++ ){
+ if("vscl_action".equalsIgnoreCase(dictSheet.get(0)[j]) || "VSCL Action".equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setVsclaction(rows[j]);
+ }
+ if(DESCRIPTION.equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setDescription(rows[j]);
+ }
+ }
+ commonClassDao.save(attribute);
+ }
+ }
+ if(dictionaryName.startsWith("ClosedLoopService")){
+ for(int i = 1; i< dictSheet.size(); i++){
+ ClosedLoopD2Services attribute = new ClosedLoopD2Services();
+ UserInfo userinfo = new UserInfo();
+ userinfo.setUserLoginId(userId);
+ attribute.setUserCreatedBy(userinfo);
+ attribute.setUserModifiedBy(userinfo);
+ String[] rows = dictSheet.get(i);
+ for (int j=0 ; j<rows.length; j++ ){
+ if("serviceName".equalsIgnoreCase(dictSheet.get(0)[j]) || "Service Name".equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setServiceName(rows[j]);
+ }
+ if(DESCRIPTION.equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setDescription(rows[j]);
+ }
+ }
+ commonClassDao.save(attribute);
+ }
+ }
+ if(dictionaryName.startsWith("ClosedLoopSite")){
+ for(int i = 1; i< dictSheet.size(); i++){
+ ClosedLoopSite attribute = new ClosedLoopSite();
+ UserInfo userinfo = new UserInfo();
+ userinfo.setUserLoginId(userId);
+ attribute.setUserCreatedBy(userinfo);
+ attribute.setUserModifiedBy(userinfo);
+ String[] rows = dictSheet.get(i);
+ for (int j=0 ; j<rows.length; j++ ){
+ if("siteName".equalsIgnoreCase(dictSheet.get(0)[j]) || "Site Name".equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setSiteName(rows[j]);
+ }
+ if(DESCRIPTION.equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setDescription(rows[j]);
+ }
+ }
+ commonClassDao.save(attribute);
+ }
+ }
+ if(dictionaryName.startsWith("PEPOptions")){
+ for(int i = 1; i< dictSheet.size(); i++){
+ PEPOptions attribute = new PEPOptions();
+ UserInfo userinfo = new UserInfo();
+ userinfo.setUserLoginId(userId);
+ attribute.setUserCreatedBy(userinfo);
+ attribute.setUserModifiedBy(userinfo);
+ String[] rows = dictSheet.get(i);
+ for (int j=0 ; j<rows.length; j++ ){
+ if("PEP_NAME".equalsIgnoreCase(dictSheet.get(0)[j]) || "PEP Name".equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setPepName(rows[j]);
+ }
+ if(DESCRIPTION.equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setDescription(rows[j]);
+ }
+ if("Actions".equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setActions(rows[j]);
+ }
+ }
+ commonClassDao.save(attribute);
+ }
+ }
+ if(dictionaryName.startsWith("VarbindDictionary")){
+ for(int i = 1; i< dictSheet.size(); i++){
+ VarbindDictionary attribute = new VarbindDictionary();
+ UserInfo userinfo = new UserInfo();
+ userinfo.setUserLoginId(userId);
+ attribute.setUserCreatedBy(userinfo);
+ attribute.setUserModifiedBy(userinfo);
+ String[] rows = dictSheet.get(i);
+ for (int j=0 ; j<rows.length; j++ ){
+ if("varbind_Name".equalsIgnoreCase(dictSheet.get(0)[j]) || "Varbind Name".equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setVarbindName(rows[j]);
+ }
+ if("varbind_Description".equalsIgnoreCase(dictSheet.get(0)[j]) || "Varbind Description".equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setVarbindDescription(rows[j]);
+ }
+ if("varbind_oid".equalsIgnoreCase(dictSheet.get(0)[j]) || "Varbind OID".equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setVarbindOID(rows[j]);
+ }
+ }
+ commonClassDao.save(attribute);
+ }
+ }
+ if(dictionaryName.startsWith("BRMSParamDictionary")){
+ for(int i = 1; i< dictSheet.size(); i++){
+ BRMSParamTemplate attribute = new BRMSParamTemplate();
+ UserInfo userinfo = new UserInfo();
+ userinfo.setUserLoginId(userId);
+ attribute.setUserCreatedBy(userinfo);
+ String[] rows = dictSheet.get(i);
+ for (int j=0 ; j<rows.length; j++ ){
+ if("param_template_name".equalsIgnoreCase(dictSheet.get(0)[j]) || "Rule Name".equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setRuleName(rows[j]);
+ }
+ if(DESCRIPTION.equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setDescription(rows[j]);
+ }
+ if("rule".equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setRule(rows[j]);
+ }
+ }
+ commonClassDao.save(attribute);
+ }
+ }
+ if(dictionaryName.startsWith("BRMSControllerDictionary")){
+ for(int i = 1; i< dictSheet.size(); i++){
+ BRMSController attribute = new BRMSController();
+ UserInfo userinfo = new UserInfo();
+ userinfo.setUserLoginId(userId);
+ attribute.setUserCreatedBy(userinfo);
+ String[] rows = dictSheet.get(i);
+ for (int j=0 ; j<rows.length; j++ ){
+ if("controllerName".equalsIgnoreCase(dictSheet.get(0)[j]) || "Controller Name".equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setControllerName(rows[j]);
+ }
+ if(DESCRIPTION.equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setDescription(rows[j]);
+ }
+ if("controller".equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setController(rows[j]);
+ }
+ }
+ commonClassDao.save(attribute);
+ }
+ }
+ if(dictionaryName.startsWith("BRMSDependencyDictionary")){
+ for(int i = 1; i< dictSheet.size(); i++){
+ BRMSDependency attribute = new BRMSDependency();
+ UserInfo userinfo = new UserInfo();
+ userinfo.setUserLoginId(userId);
+ attribute.setUserCreatedBy(userinfo);
+ String[] rows = dictSheet.get(i);
+ for (int j=0 ; j<rows.length; j++ ){
+ if("dependencyName".equalsIgnoreCase(dictSheet.get(0)[j]) || "Dependency Name".equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setDependencyName(rows[j]);
+ }
+ if(DESCRIPTION.equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setDescription(rows[j]);
+ }
+ if(DEPENDENCY.equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setDependency(rows[j]);
+ }
+ }
+ commonClassDao.save(attribute);
+ }
+ }
+ if(dictionaryName.startsWith("Settings")){
+ for(int i = 1; i< dictSheet.size(); i++){
+ DecisionSettings attribute = new DecisionSettings();
+ UserInfo userinfo = new UserInfo();
+ userinfo.setUserLoginId(userId);
+ attribute.setUserCreatedBy(userinfo);
+ attribute.setUserModifiedBy(userinfo);
+ String[] rows = dictSheet.get(i);
+ for (int j=0 ; j<rows.length; j++ ){
+ if("xacml_id".equalsIgnoreCase(dictSheet.get(0)[j]) || "Settings ID".equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setXacmlId(rows[j]);
+ }
+ if(DESCRIPTION.equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setDescription(rows[j]);
+ }
+ if("priority".equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setPriority(rows[j]);
+ }
+ if("datatype".equalsIgnoreCase(dictSheet.get(0)[j]) || "Data Type".equalsIgnoreCase(dictSheet.get(0)[j])){
+ Datatype dataType = new Datatype();
+ if("string".equalsIgnoreCase(rows[j])){
+ dataType.setId(26);
+ }else if("integer".equalsIgnoreCase(rows[j])){
+ dataType.setId(12);
+ }else if("double".equalsIgnoreCase(rows[j])){
+ dataType.setId(25);
+ }else if("boolean".equalsIgnoreCase(rows[j])){
+ dataType.setId(18);
+ }else if("user".equalsIgnoreCase(rows[j])){
+ dataType.setId(29);
+ }
+ attribute.setDatatypeBean(dataType);
+ }
+ }
+ commonClassDao.save(attribute);
+ }
+ }
+ if(dictionaryName.startsWith("PrefixList")){
+ for(int i = 1; i< dictSheet.size(); i++){
+ PrefixList attribute = new PrefixList();
+ String[] rows = dictSheet.get(i);
+ for (int j=0 ; j<rows.length; j++ ){
+ if("prefixListName".equalsIgnoreCase(dictSheet.get(0)[j]) || "PrefixList Name".equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setPrefixListName(rows[j]);
+ }
+ if(DESCRIPTION.equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setPrefixListValue(rows[j]);
+ }
+ if("prefixListValue".equalsIgnoreCase(dictSheet.get(0)[j]) || "PrefixList Value".equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setDescription(rows[j]);
+ }
+ }
+ commonClassDao.save(attribute);
+ }
+ }
+ if(dictionaryName.startsWith("SecurityZone")){
+ for(int i = 1; i< dictSheet.size(); i++){
+ SecurityZone attribute = new SecurityZone();
+ String[] rows = dictSheet.get(i);
+ for (int j=0 ; j<rows.length; j++ ){
+ if("zoneName".equalsIgnoreCase(dictSheet.get(0)[j]) || "Zone Name".equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setZoneName(rows[j]);
+ }
+ if("zoneValue".equalsIgnoreCase(dictSheet.get(0)[j]) || "Zone Value".equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setZoneValue(rows[j]);
+ }
+ }
+ commonClassDao.save(attribute);
+ }
+ }
+ if(dictionaryName.startsWith("Zone")){
+ for(int i = 1; i< dictSheet.size(); i++){
+ Zone attribute = new Zone();
+ String[] rows = dictSheet.get(i);
+ for (int j=0 ; j<rows.length; j++ ){
+ if("zoneName".equalsIgnoreCase(dictSheet.get(0)[j]) || "Zone Name".equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setZoneName(rows[j]);
+ }
+ if("zoneValue".equalsIgnoreCase(dictSheet.get(0)[j]) || "Zone Value".equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setZoneValue(rows[j]);
+ }
+ }
+ commonClassDao.save(attribute);
+ }
+ }
+ if(dictionaryName.startsWith("ServiceList")){
+ for(int i = 1; i< dictSheet.size(); i++){
+ ServiceList attribute = new ServiceList();
+ String[] rows = dictSheet.get(i);
+ for (int j=0 ; j<rows.length; j++ ){
+ if("serviceName".equalsIgnoreCase(dictSheet.get(0)[j]) || "Service Name".equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setServiceName(rows[j]);
+ }
+ if("serviceDesc".equalsIgnoreCase(dictSheet.get(0)[j]) || DESCRIPTION.equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setServiceDescription(rows[j]);
+ }
+ if("serviceType".equalsIgnoreCase(dictSheet.get(0)[j]) || "Service Type".equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setServiceType(rows[j]);
+ }
+ if("serviceTrasProtocol".equalsIgnoreCase(dictSheet.get(0)[j]) || "Transport Protocol".equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setServiceTransProtocol(rows[j]);
+ }
+ if("serviceAppProtocol".equalsIgnoreCase(dictSheet.get(0)[j]) || "APP Protocol".equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setServiceAppProtocol(rows[j]);
+ }
+ if("servicePorts".equalsIgnoreCase(dictSheet.get(0)[j]) || "Ports".equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setServicePorts(rows[j]);
+ }
+ }
+ commonClassDao.save(attribute);
+ }
+ }
+ if(dictionaryName.startsWith("ServiceGroup")){
+ for(int i = 1; i< dictSheet.size(); i++){
+ GroupServiceList attribute = new GroupServiceList();
+ String[] rows = dictSheet.get(i);
+ for (int j=0 ; j<rows.length; j++ ){
+ if("name".equalsIgnoreCase(dictSheet.get(0)[j]) || "Group Name".equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setGroupName(rows[j]);
+ }
+ if("serviceList".equalsIgnoreCase(dictSheet.get(0)[j]) || "Service List".equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setServiceList(rows[j]);
+ }
+ }
+ commonClassDao.save(attribute);
+ }
+ }
+ if(dictionaryName.startsWith("AddressGroup")){
+ for(int i = 1; i< dictSheet.size(); i++){
+ AddressGroup attribute = new AddressGroup();
+ String[] rows = dictSheet.get(i);
+ for (int j=0 ; j<rows.length; j++ ){
+ if("name".equalsIgnoreCase(dictSheet.get(0)[j]) || "Group Name".equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setGroupName(rows[j]);
+ }
+ if("serviceList".equalsIgnoreCase(dictSheet.get(0)[j]) || "Prefix List".equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setServiceList(rows[j]);
+ }
+ if(DESCRIPTION.equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setDescription(rows[j]);
+ }
+ }
+ commonClassDao.save(attribute);
+ }
+ }
+ if(dictionaryName.startsWith("ProtocolList")){
+ for(int i = 1; i< dictSheet.size(); i++){
+ ProtocolList attribute = new ProtocolList();
+ String[] rows = dictSheet.get(i);
+ for (int j=0 ; j<rows.length; j++ ){
+ if("protocolName".equalsIgnoreCase(dictSheet.get(0)[j]) || "Protocol Name".equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setProtocolName(rows[j]);
+ }
+ if(DESCRIPTION.equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setDescription(rows[j]);
+ }
+ }
+ commonClassDao.save(attribute);
+ }
+ }
+ if(dictionaryName.startsWith("ActionList")){
+ for(int i = 1; i< dictSheet.size(); i++){
+ ActionList attribute = new ActionList();
+ String[] rows = dictSheet.get(i);
+ for (int j=0 ; j<rows.length; j++ ){
+ if("actionName".equalsIgnoreCase(dictSheet.get(0)[j]) || "Action Name".equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setActionName(rows[j]);
+ }
+ if(DESCRIPTION.equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setDescription(rows[j]);
+ }
+ }
+ commonClassDao.save(attribute);
+ }
+ }
+ if(dictionaryName.startsWith("TermList")){
+ for(int i = 1; i< dictSheet.size(); i++){
+ TermList attribute = new TermList();
+ UserInfo userinfo = new UserInfo();
+ userinfo.setUserLoginId(userId);
+ attribute.setUserCreatedBy(userinfo);
+ attribute.setUserModifiedBy(userinfo);
+ String[] rows = dictSheet.get(i);
+ for (int j=0 ; j<rows.length; j++ ){
+ if("termName".equalsIgnoreCase(dictSheet.get(0)[j]) || "Term-Name".equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setTermName(rows[j]);
+ }
+ if("Term-Description".equalsIgnoreCase(dictSheet.get(0)[j]) || "termDescription".equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setDescription(rows[j]);
+ }
+ if("fromZone".equalsIgnoreCase(dictSheet.get(0)[j]) || "From Zone".equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setFromZones(rows[j]);
+ }
+ if("toZone".equalsIgnoreCase(dictSheet.get(0)[j]) || "To Zone".equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setToZones(rows[j]);
+ }
+ if("srcIPList".equalsIgnoreCase(dictSheet.get(0)[j]) || "Source-IP-List".equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setSrcIPList(rows[j]);
+ }
+ if("destIPList".equalsIgnoreCase(dictSheet.get(0)[j]) || "Destination-IP-List".equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setDestIPList(rows[j]);
+ }
+ if("srcPortList".equalsIgnoreCase(dictSheet.get(0)[j]) || "Source-Port-List".equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setSrcPortList(rows[j]);
+ }
+ if("destPortList".equalsIgnoreCase(dictSheet.get(0)[j]) || "Destination-Port-List".equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setDestPortList(rows[j]);
+ }
+ if("action".equalsIgnoreCase(dictSheet.get(0)[j]) || "Action List".equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setAction(rows[j]);
+ }
+ }
+ commonClassDao.save(attribute);
+ }
+ }
+ if(dictionaryName.startsWith("SearchCriteria")){
+ for(int i = 1; i< dictSheet.size(); i++){
+ DescriptiveScope attribute = new DescriptiveScope();
+ UserInfo userinfo = new UserInfo();
+ userinfo.setUserLoginId(userId);
+ attribute.setUserCreatedBy(userinfo);
+ attribute.setUserModifiedBy(userinfo);
+ String[] rows = dictSheet.get(i);
+ for (int j=0 ; j<rows.length; j++ ){
+ if("descriptiveScopeName".equalsIgnoreCase(dictSheet.get(0)[j]) || "Descriptive Scope Name".equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setScopeName(rows[j]);
+ }
+ if(DESCRIPTION.equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setDescription(rows[j]);
+ }
+ if("search".equalsIgnoreCase(dictSheet.get(0)[j]) || "Search Criteria".equalsIgnoreCase(dictSheet.get(0)[j])){
+ attribute.setSearch(rows[j]);
+ }
+ }
+ commonClassDao.save(attribute);
+ }
+ }
+ csvReader.close();
+ response.setStatus(HttpServletResponse.SC_OK);
+ response.getWriter().write("Success");
+ }catch(Exception e){
+ LOGGER.error("Exception Occured while importing dictionary"+e);
+ response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+ response.getWriter().write(ERROR);
+ }finally{
+ if(file != null && file.exists()){
+ boolean deleted = file.delete();
+ LOGGER.error("Imported File has been deleted: "+deleted);
+ }
+ }
+ }
+
+ public boolean isValidDictionaryName(String dictionaryName){
+
+ String nameCheck = dictionaryName.replace(".csv", "");
+ try{
+ DictionaryNames mode = DictionaryNames.valueOf(nameCheck);
+ switch (mode){
+ case Attribute:
+ case ActionPolicyDictionary:
+ case OnapName:
+ case MSPolicyDictionary:
+ case OptimizationPolicyDictionary:
+ case VNFType:
+ case VSCLAction:
+ case ClosedLoopService:
+ case ClosedLoopSite:
+ case PEPOptions:
+ case VarbindDictionary:
+ case BRMSParamDictionary:
+ case BRMSControllerDictionary:
+ case BRMSDependencyDictionary:
+ case Settings:
+ case PrefixList:
+ case SecurityZone:
+ case Zone:
+ case ServiceList:
+ case ServiceGroup:
+ case AddressGroup:
+ case ProtocolList:
+ case ActionList:
+ case TermList:
+ case SearchCriteria:
+ return true;
+ default:
+ return false;
+ }
+ }catch(Exception e){
+ LOGGER.error("Dictionary not exits: " +dictionaryName +e);
+ return false;
+ }
+ }
} \ No newline at end of file
diff --git a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/FirewallDictionaryController.java b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/FirewallDictionaryController.java
index 4cf9a71ee..891787fa0 100644
--- a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/FirewallDictionaryController.java
+++ b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/FirewallDictionaryController.java
@@ -65,1078 +65,1078 @@ import com.fasterxml.jackson.databind.ObjectMapper;
@Controller
public class FirewallDictionaryController {
- private static final Logger LOGGER = FlexLogger.getLogger(FirewallDictionaryController.class);
-
- private static CommonClassDao commonClassDao;
- private static String prefixListName = "prefixListName";
- private static String successMessage = "success";
- private static String operation = "operation";
- private static String errorMsg = "error";
- private static String dictionaryFields ="dictionaryFields";
- private static String duplicateResponseString = "Duplicate";
- private static String utf8 = "UTF-8";
- private static String applicationJsonContentType = "application / json";
- private static String protocolName = "protocolName";
- private static String groupNameStart = "Group_";
- private static String option = "option";
- private static String zoneName = "zoneName";
- private static String serviceName = "serviceName";
- private static String termName = "termName";
- private static String userid = "userid";
- private static String tagPickerName = "tagPickerName";
- private static String pfListDatas = "prefixListDictionaryDatas";
- private static String portListDatas = "portListDictionaryDatas";
- private static String protocolListDatas = "protocolListDictionaryDatas";
- private static String addressGroupDatas = "addressGroupDictionaryDatas";
- private static String actionListDatas = "actionListDictionaryDatas";
- private static String serviceGroupDatas = "serviceGroupDictionaryDatas";
- private static String securityZoneDatas = "securityZoneDictionaryDatas";
- private static String serviceListDatas = "serviceListDictionaryDatas";
- private static String zoneDatas = "zoneDictionaryDatas";
- private static String termListDictDatas = "termListDictionaryDatas";
- private static String fwDictListDatas = "fwDictListDictionaryDatas";
- private static String fwTagPickerDatas = "fwTagPickerDictionaryDatas";
- private static String fwTagDatas = "fwTagDictionaryDatas";
-
-
- @Autowired
- public FirewallDictionaryController(CommonClassDao commonClassDao){
- FirewallDictionaryController.commonClassDao = commonClassDao;
- }
-
- public static void setCommonClassDao(CommonClassDao clDao){
- commonClassDao = clDao;
- }
-
- public FirewallDictionaryController(){
- super();
- }
-
- private DictionaryUtils getDictionaryUtilsInstance(){
- return DictionaryUtils.getDictionaryUtils();
- }
-
- @RequestMapping(value={"/get_PrefixListDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getPrefixListDictionaryEntityDataByName(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getDataByEntity(response, pfListDatas, prefixListName, PrefixList.class);
- }
-
- @RequestMapping(value={"/get_PrefixListData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getPrefixListDictionaryEntityData(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getData(response, pfListDatas, PrefixList.class);
- }
-
- @RequestMapping(value={"/fw_dictionary/save_prefixList"}, method={RequestMethod.POST})
- public ModelAndView savePrefixListDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
- DictionaryUtils utils = getDictionaryUtilsInstance();
- try {
- boolean fromAPI = utils.isRequestFromAPI(request);
- ObjectMapper mapper = new ObjectMapper();
- mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- JsonNode root = mapper.readTree(request.getReader());
- PrefixList prefixList;
- if (fromAPI) {
- prefixList = mapper.readValue(root.get(dictionaryFields).toString(), PrefixList.class);
- } else {
- prefixList = mapper.readValue(root.get("prefixListDictionaryData").toString(), PrefixList.class);
- }
-
- List<Object> duplicateData = commonClassDao.checkDuplicateEntry(prefixList.getPrefixListName(), prefixListName, PrefixList.class);
- boolean duplicateflag = false;
- if(!duplicateData.isEmpty()){
- PrefixList data = (PrefixList) duplicateData.get(0);
- if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
- prefixList.setId(data.getId());
- }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
- (request.getParameter(operation) == null && (data.getId() != prefixList.getId()))){
- duplicateflag = true;
- }
- }
- String responseString = null;
- if(!duplicateflag){
- if(prefixList.getId() == 0){
- commonClassDao.save(prefixList);
- }else{
- commonClassDao.update(prefixList);
- }
- responseString = mapper.writeValueAsString(commonClassDao.getData(PrefixList.class));
- }else{
- responseString = duplicateResponseString;
- }
- if(fromAPI){
- return utils.getResultForApi(responseString);
- }else{
- utils.setResponseData(response, pfListDatas, responseString);
- }
- }catch (Exception e){
- utils.setErrorResponseData(response, e);
- }
- return null;
- }
-
- @RequestMapping(value={"/fw_dictionary/remove_PrefixList"}, method={RequestMethod.POST})
- public void removePrefixListDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.removeData(request, response, pfListDatas, PrefixList.class);
- }
-
- @RequestMapping(value={"/fw_dictionary/validate_prefixList"}, method={RequestMethod.POST})
- public void validatePrefixListDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
- DictionaryUtils utils = getDictionaryUtilsInstance();
- try {
- ObjectMapper mapper = new ObjectMapper();
- mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- JsonNode root = mapper.readTree(request.getReader());
- PrefixList prefixList = mapper.readValue(root.get("prefixListDictionaryData").toString(), PrefixList.class);
- String responseValidation = successMessage;
- try{
- CIDR.newCIDR(prefixList.getPrefixListValue());
- }catch(UnknownHostException e){
- LOGGER.error(e);
- responseValidation = errorMsg;
- }
- response.setCharacterEncoding(utf8);
- response.setContentType(applicationJsonContentType);
- request.setCharacterEncoding(utf8);
-
- PrintWriter out = response.getWriter();
- JSONObject j = new JSONObject("{result: " + responseValidation + "}");
- out.write(j.toString());
- }
- catch (Exception e){
- utils.setErrorResponseData(response, e);
- }
- }
-
- @RequestMapping(value={"/get_PortListData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getPortListDictionaryEntityData(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getData(response, portListDatas, PortList.class);
- }
-
- @RequestMapping(value={"/fw_dictionary/save_portName"}, method={RequestMethod.POST})
- public ModelAndView savePortListDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
- DictionaryUtils utils = getDictionaryUtilsInstance();
- try {
- boolean fromAPI = utils.isRequestFromAPI(request);
- ObjectMapper mapper = new ObjectMapper();
- mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- JsonNode root = mapper.readTree(request.getReader());
- PortList portList;
- if(fromAPI){
- portList = mapper.readValue(root.get(dictionaryFields).toString(), PortList.class);
- }else{
- portList = mapper.readValue(root.get("portListDictionaryData").toString(), PortList.class);
- }
- List<Object> duplicateData = commonClassDao.checkDuplicateEntry(portList.getPortName(), "portName", PortList.class);
- boolean duplicateflag = false;
- if(!duplicateData.isEmpty()){
- PortList data = (PortList) duplicateData.get(0);
- if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
- portList.setId(data.getId());
- }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
- (request.getParameter(operation) == null && (data.getId() != portList.getId()))){
- duplicateflag = true;
- }
- }
- String responseString = null;
- if(!duplicateflag){
- if(portList.getId() == 0){
- commonClassDao.save(portList);
- }else{
- commonClassDao.update(portList);
- }
- responseString = mapper.writeValueAsString(commonClassDao.getData(PortList.class));
- }else{
- responseString = duplicateResponseString;
- }
- if(fromAPI){
- return utils.getResultForApi(responseString);
- }else{
- utils.setResponseData(response, portListDatas, responseString);
- }
- }catch (Exception e){
- utils.setErrorResponseData(response, e);
- }
- return null;
- }
-
- @RequestMapping(value={"/fw_dictionary/remove_PortList"}, method={RequestMethod.POST})
- public void removePortListDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.removeData(request, response, portListDatas, PortList.class);
- }
-
- @RequestMapping(value={"/get_ProtocolListData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getProtocolListDictionaryEntityData(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getData(response, protocolListDatas, ProtocolList.class);
- }
-
- @RequestMapping(value={"/get_ProtocolListDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getProtocolListDictionaryEntityDataByName(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getDataByEntity(response, protocolListDatas, protocolName, ProtocolList.class);
- }
-
- @RequestMapping(value={"/fw_dictionary/save_protocolList"}, method={RequestMethod.POST})
- public ModelAndView saveProtocolListDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
- DictionaryUtils utils = getDictionaryUtilsInstance();
- try {
- boolean fromAPI = utils.isRequestFromAPI(request);
- ObjectMapper mapper = new ObjectMapper();
- mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- JsonNode root = mapper.readTree(request.getReader());
- ProtocolList protocolList;
- if(fromAPI){
- protocolList = mapper.readValue(root.get(dictionaryFields).toString(), ProtocolList.class);
- }else{
- protocolList = mapper.readValue(root.get("protocolListDictionaryData").toString(), ProtocolList.class);
- }
- List<Object> duplicateData = commonClassDao.checkDuplicateEntry(protocolList.getProtocolName(), protocolName, ProtocolList.class);
- boolean duplicateflag = false;
- if(!duplicateData.isEmpty()){
- ProtocolList data = (ProtocolList) duplicateData.get(0);
- if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
- protocolList.setId(data.getId());
- }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
- (request.getParameter(operation) == null && (data.getId() != protocolList.getId()))){
- duplicateflag = true;
- }
- }
- String responseString = null;
- if(!duplicateflag){
- if(protocolList.getId() == 0){
- commonClassDao.save(protocolList);
- }else{
- commonClassDao.update(protocolList);
- }
- responseString = mapper.writeValueAsString(commonClassDao.getData(ProtocolList.class));
- }else{
- responseString = duplicateResponseString;
- }
- if(fromAPI){
- return utils.getResultForApi(responseString);
- }else{
- utils.setResponseData(response, protocolListDatas, responseString);
- }
- }catch (Exception e){
- utils.setErrorResponseData(response, e);
- }
- return null;
- }
-
- @RequestMapping(value={"/fw_dictionary/remove_protocol"}, method={RequestMethod.POST})
- public void removeProtocolListDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.removeData(request, response, protocolListDatas, ProtocolList.class);
- }
-
- @RequestMapping(value={"/get_AddressGroupDictionaryDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getAddressGroupDictionaryEntityDataByName(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getDataByEntity(response, addressGroupDatas, "name", AddressGroup.class);
- }
-
- @RequestMapping(value={"/get_AddressGroupData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getAddressGroupDictionaryEntityData(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getData(response, addressGroupDatas, AddressGroup.class);
- }
-
- @RequestMapping(value={"/fw_dictionary/save_addressGroup"}, method={RequestMethod.POST})
- public ModelAndView saveAddressGroupDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
- DictionaryUtils utils = getDictionaryUtilsInstance();
- try {
- boolean fromAPI = utils.isRequestFromAPI(request);
- ObjectMapper mapper = new ObjectMapper();
- mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- JsonNode root = mapper.readTree(request.getReader());
- AddressGroup addressGroup;
- GridData gridData;
- if(fromAPI){
- addressGroup = mapper.readValue(root.get(dictionaryFields).toString(), AddressGroup.class);
- gridData = mapper.readValue(root.get(dictionaryFields).toString(), GridData.class);
- }else{
- addressGroup = mapper.readValue(root.get("addressGroupDictionaryData").toString(), AddressGroup.class);
- gridData = mapper.readValue(root.get("addressGroupDictionaryData").toString(), GridData.class);
- }
- if(!addressGroup.getGroupName().startsWith(groupNameStart)){
- String groupName = groupNameStart+addressGroup.getGroupName();
- addressGroup.setGroupName(groupName);
- }
- addressGroup.setServiceList(utils.appendKey(gridData.getAttributes(), option, ","));
- List<Object> duplicateData = commonClassDao.checkDuplicateEntry(addressGroup.getGroupName(), "name", AddressGroup.class);
- boolean duplicateflag = false;
- if(!duplicateData.isEmpty()){
- AddressGroup data = (AddressGroup) duplicateData.get(0);
- if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
- addressGroup.setId(data.getId());
- }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
- (request.getParameter(operation) == null && (data.getId() != addressGroup.getId()))){
- duplicateflag = true;
- }
- }
- String responseString = null;
- if(!duplicateflag){
- if(addressGroup.getId() == 0){
- commonClassDao.save(addressGroup);
- }else{
- commonClassDao.update(addressGroup);
- }
- responseString = mapper.writeValueAsString(commonClassDao.getData(AddressGroup.class));
- }else{
- responseString = duplicateResponseString;
- }
- if(fromAPI){
- return utils.getResultForApi(responseString);
- }else{
- utils.setResponseData(response, addressGroupDatas, responseString);
- }
- }catch (Exception e){
- utils.setErrorResponseData(response, e);
- }
- return null;
- }
-
- @RequestMapping(value={"/fw_dictionary/remove_AddressGroup"}, method={RequestMethod.POST})
- public void removeAddressGroupDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.removeData(request, response, addressGroupDatas, AddressGroup.class);
- }
-
- @RequestMapping(value={"/get_ActionListDictionaryDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getActionListDictionaryEntityDataByName(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getDataByEntity(response, actionListDatas, "actionName", ActionList.class);
- }
-
- @RequestMapping(value={"/get_ActionListData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getActionListDictionaryEntityData(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getData(response, actionListDatas, ActionList.class);
- }
-
- @RequestMapping(value={"/fw_dictionary/save_ActionList"}, method={RequestMethod.POST})
- public ModelAndView saveActionListDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
- DictionaryUtils utils = getDictionaryUtilsInstance();
- try {
- boolean fromAPI = utils.isRequestFromAPI(request);
- ObjectMapper mapper = new ObjectMapper();
- mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- JsonNode root = mapper.readTree(request.getReader());
- ActionList actionList;
- if (fromAPI) {
- actionList = mapper.readValue(root.get(dictionaryFields).toString(), ActionList.class);
- } else {
- actionList = mapper.readValue(root.get("actionListDictionaryData").toString(), ActionList.class);
- }
- List<Object> duplicateData = commonClassDao.checkDuplicateEntry(actionList.getActionName(), "actionName", ActionList.class);
- boolean duplicateflag = false;
- if(!duplicateData.isEmpty()){
- ActionList data = (ActionList) duplicateData.get(0);
- if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
- actionList.setId(data.getId());
- }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
- (request.getParameter(operation) == null && (data.getId() != actionList.getId()))){
- duplicateflag = true;
- }
- }
- String responseString = null;
- if(!duplicateflag){
- if(actionList.getId() == 0){
- commonClassDao.save(actionList);
- }else{
- commonClassDao.update(actionList);
- }
- responseString = mapper.writeValueAsString(commonClassDao.getData(ActionList.class));
- }else{
- responseString = duplicateResponseString;
- }
- if(fromAPI){
- return utils.getResultForApi(responseString);
- }else{
- utils.setResponseData(response, actionListDatas, responseString);
- }
- }catch (Exception e){
- utils.setErrorResponseData(response, e);
- }
- return null;
- }
-
- @RequestMapping(value={"/fw_dictionary/remove_ActionList"}, method={RequestMethod.POST})
- public void removeActionListDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.removeData(request, response, actionListDatas, ActionList.class);
- }
-
- @RequestMapping(value={"/get_ServiceGroupData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getServiceGroupDictionaryEntityData(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getData(response, serviceGroupDatas, GroupServiceList.class);
- }
-
- @RequestMapping(value={"/get_ServiceGroupDictionaryDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getServiceGroupDictionaryEntityDataByName(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getDataByEntity(response, serviceGroupDatas, "name", GroupServiceList.class);
- }
-
- @RequestMapping(value={"/fw_dictionary/save_serviceGroup"}, method={RequestMethod.POST})
- public ModelAndView saveServiceGroupDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
- DictionaryUtils utils = getDictionaryUtilsInstance();
- try {
- boolean fromAPI = utils.isRequestFromAPI(request);
- ObjectMapper mapper = new ObjectMapper();
- mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- JsonNode root = mapper.readTree(request.getReader());
- GroupServiceList groupServiceList;
- GridData gridData;
- if(fromAPI){
- groupServiceList = mapper.readValue(root.get(dictionaryFields).toString(), GroupServiceList.class);
- gridData = mapper.readValue(root.get(dictionaryFields).toString(), GridData.class);
- }else{
- groupServiceList = mapper.readValue(root.get("serviceGroupDictionaryData").toString(), GroupServiceList.class);
- gridData = mapper.readValue(root.get("serviceGroupDictionaryData").toString(), GridData.class);
- }
- if(!groupServiceList.getGroupName().startsWith(groupNameStart)){
- String groupName = groupNameStart+groupServiceList.getGroupName();
- groupServiceList.setGroupName(groupName);
- }
- groupServiceList.setServiceList(utils.appendKey(gridData.getAttributes(), option, ","));
- List<Object> duplicateData = commonClassDao.checkDuplicateEntry(groupServiceList.getGroupName(), "name", GroupServiceList.class);
- boolean duplicateflag = false;
- if(!duplicateData.isEmpty()){
- GroupServiceList data = (GroupServiceList) duplicateData.get(0);
- if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
- groupServiceList.setId(data.getId());
- }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
- (request.getParameter(operation) == null && (data.getId() != groupServiceList.getId()))){
- duplicateflag = true;
- }
- }
- String responseString = null;
- if(!duplicateflag){
- if(groupServiceList.getId() == 0){
- commonClassDao.save(groupServiceList);
- }else{
- commonClassDao.update(groupServiceList);
- }
- responseString = mapper.writeValueAsString(commonClassDao.getData(GroupServiceList.class));
- }else{
- responseString = duplicateResponseString;
- }
- if(fromAPI){
- return utils.getResultForApi(responseString);
- }else{
- utils.setResponseData(response, serviceGroupDatas, responseString);
- }
- }catch (Exception e){
- utils.setErrorResponseData(response, e);
- }
- return null;
- }
-
- @RequestMapping(value={"/fw_dictionary/remove_serviceGroup"}, method={RequestMethod.POST})
- public void removeServiceGroupDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.removeData(request, response, serviceGroupDatas, GroupServiceList.class);
- }
-
- @RequestMapping(value={"/get_SecurityZoneDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getSecurityZoneDictionaryEntityDataByName(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getDataByEntity(response, securityZoneDatas, zoneName, SecurityZone.class);
- }
-
- @RequestMapping(value={"/get_SecurityZoneData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getSecurityZoneDictionaryEntityData(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getData(response, securityZoneDatas, SecurityZone.class);
- }
-
- @RequestMapping(value={"/fw_dictionary/save_securityZone"}, method={RequestMethod.POST})
- public ModelAndView saveSecurityZoneDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
- DictionaryUtils utils = getDictionaryUtilsInstance();
- try {
- boolean fromAPI = utils.isRequestFromAPI(request);
- ObjectMapper mapper = new ObjectMapper();
- mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- JsonNode root = mapper.readTree(request.getReader());
- SecurityZone securityZone;
- if(fromAPI){
- securityZone = mapper.readValue(root.get(dictionaryFields).toString(), SecurityZone.class);
- }else{
- securityZone = mapper.readValue(root.get("securityZoneDictionaryData").toString(), SecurityZone.class);
- }
- List<Object> duplicateData = commonClassDao.checkDuplicateEntry(securityZone.getZoneName(), zoneName, SecurityZone.class);
- boolean duplicateflag = false;
- if(!duplicateData.isEmpty()){
- SecurityZone data = (SecurityZone) duplicateData.get(0);
- if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
- securityZone.setId(data.getId());
- }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
- (request.getParameter(operation) == null && (data.getId() != securityZone.getId()))){
- duplicateflag = true;
- }
- }
- String responseString = null;
- if(!duplicateflag){
- if(securityZone.getId() == 0){
- commonClassDao.save(securityZone);
- }else{
- commonClassDao.update(securityZone);
- }
- responseString = mapper.writeValueAsString(commonClassDao.getData(SecurityZone.class));
- }else{
- responseString = duplicateResponseString;
- }
- if(fromAPI){
- return utils.getResultForApi(responseString);
- }else{
- utils.setResponseData(response, securityZoneDatas, responseString);
- }
- }catch (Exception e){
- utils.setErrorResponseData(response, e);
- }
- return null;
- }
-
- @RequestMapping(value={"/fw_dictionary/remove_securityZone"}, method={RequestMethod.POST})
- public void removeSecurityZoneDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException {
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.removeData(request, response, securityZoneDatas, SecurityZone.class);
- }
-
-
- @RequestMapping(value={"/get_ServiceListData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getServiceListDictionaryEntityData(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getData(response, serviceListDatas, ServiceList.class);
- }
-
- @RequestMapping(value={"/get_ServiceListDictionaryDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getServiceListDictionaryEntityDataByName(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getDataByEntity(response, serviceListDatas, serviceName, ServiceList.class);
- }
-
- @RequestMapping(value={"/fw_dictionary/save_serviceList"}, method={RequestMethod.POST})
- public ModelAndView saveServiceListDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
- DictionaryUtils utils = getDictionaryUtilsInstance();
- try {
- boolean fromAPI = utils.isRequestFromAPI(request);
- ObjectMapper mapper = new ObjectMapper();
- mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- JsonNode root = mapper.readTree(request.getReader());
- ServiceList serviceList;
- GridData serviceListGridData;
- if(fromAPI){
- serviceList = mapper.readValue(root.get(dictionaryFields).toString(), ServiceList.class);
- serviceListGridData = mapper.readValue(root.get(dictionaryFields).toString(), GridData.class);
- }else{
- serviceList = mapper.readValue(root.get("serviceListDictionaryData").toString(), ServiceList.class);
- serviceListGridData = mapper.readValue(root.get("serviceListDictionaryData").toString(), GridData.class);
- }
- serviceList.setServiceTransProtocol(utils.appendKey(serviceListGridData.getTransportProtocols(), option, ","));
- serviceList.setServiceAppProtocol(utils.appendKey(serviceListGridData.getAppProtocols(), option, ","));
- serviceList.setServiceType("SERVICE");
- List<Object> duplicateData = commonClassDao.checkDuplicateEntry(serviceList.getServiceName(), serviceName, ServiceList.class);
- boolean duplicateflag = false;
- if(!duplicateData.isEmpty()){
- ServiceList data = (ServiceList) duplicateData.get(0);
- if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
- serviceList.setId(data.getId());
- }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
- (request.getParameter(operation) == null && (data.getId() != serviceList.getId()))){
- duplicateflag = true;
- }
- }
- String responseString = null;
- if(!duplicateflag){
- if(serviceList.getId() == 0){
- commonClassDao.save(serviceList);
- }else{
- commonClassDao.update(serviceList);
- }
- responseString = mapper.writeValueAsString(commonClassDao.getData(ServiceList.class));
- }else{
- responseString = duplicateResponseString;
- }
- if(fromAPI){
- return utils.getResultForApi(responseString);
- }else{
- utils.setResponseData(response, serviceListDatas, responseString);
- }
- }catch (Exception e){
- utils.setErrorResponseData(response, e);
- }
- return null;
- }
-
- @RequestMapping(value={"/fw_dictionary/remove_serviceList"}, method={RequestMethod.POST})
- public void removeServiceListDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException {
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.removeData(request, response, serviceListDatas, ServiceList.class);
- }
-
- @RequestMapping(value={"/get_ZoneData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getZoneDictionaryEntityData(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getData(response, zoneDatas, Zone.class);
- }
-
- @RequestMapping(value={"/get_ZoneDictionaryDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getZoneDictionaryEntityDataByName(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getDataByEntity(response, zoneDatas, zoneName, Zone.class);
- }
-
- @RequestMapping(value={"/fw_dictionary/save_zoneName"}, method={RequestMethod.POST})
- public ModelAndView saveZoneDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
- DictionaryUtils utils = getDictionaryUtilsInstance();
- try {
- boolean fromAPI = utils.isRequestFromAPI(request);
- ObjectMapper mapper = new ObjectMapper();
- mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- JsonNode root = mapper.readTree(request.getReader());
- Zone zone;
- if (fromAPI) {
- zone = mapper.readValue(root.get(dictionaryFields).toString(), Zone.class);
- } else {
- zone = mapper.readValue(root.get("zoneDictionaryData").toString(), Zone.class);
- }
- List<Object> duplicateData = commonClassDao.checkDuplicateEntry(zone.getZoneName(), zoneName, Zone.class);
- boolean duplicateflag = false;
- if(!duplicateData.isEmpty()){
- Zone data = (Zone) duplicateData.get(0);
- if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
- zone.setId(data.getId());
- }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
- (request.getParameter(operation) == null && (data.getId() != zone.getId()))){
- duplicateflag = true;
- }
- }
- String responseString = null;
- if(!duplicateflag){
- if(zone.getId() == 0){
- commonClassDao.save(zone);
- }else{
- commonClassDao.update(zone);
- }
- responseString = mapper.writeValueAsString(commonClassDao.getData(Zone.class));
- }else{
- responseString = duplicateResponseString;
- }
- if(fromAPI){
- return utils.getResultForApi(responseString);
- }else{
- utils.setResponseData(response, zoneDatas, responseString);
- }
- }catch (Exception e){
- utils.setErrorResponseData(response, e);
- }
- return null;
- }
-
- @RequestMapping(value={"/fw_dictionary/remove_zone"}, method={RequestMethod.POST})
- public void removeZoneDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.removeData(request, response, zoneDatas, Zone.class);
- }
-
- @RequestMapping(value={"/get_TermListDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getTermListDictionaryEntityDataByName(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getDataByEntity(response, termListDictDatas, termName, TermList.class);
- }
-
- @RequestMapping(value={"/get_TermListData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getTermListDictionaryEntityData(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getData(response, termListDictDatas, TermList.class);
- }
-
- @RequestMapping(value={"/fw_dictionary/save_termList"}, method={RequestMethod.POST})
- public ModelAndView saveTermListDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
- DictionaryUtils utils = getDictionaryUtilsInstance();
- try {
- boolean fromAPI = utils.isRequestFromAPI(request);
- ObjectMapper mapper = new ObjectMapper();
- mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- JsonNode root = mapper.readTree(request.getReader());
- TermList termList;
- TermListData termListDatas;
- String userId = null;
- if(fromAPI){
- termList = mapper.readValue(root.get(dictionaryFields).toString(), TermList.class);
- termListDatas = mapper.readValue(root.get(dictionaryFields).toString(), TermListData.class);
- userId = "API";
- }else{
- termList = mapper.readValue(root.get("termListDictionaryData").toString(), TermList.class);
- termListDatas = mapper.readValue(root.get("termListDictionaryData").toString(), TermListData.class);
- userId = root.get(userid).textValue();
- }
-
- termList.setFromZones(utils.appendKey(termListDatas.getFromZoneDatas(), option, ","));
- termList.setToZones(utils.appendKey(termListDatas.getToZoneDatas(), option, ","));
- termList.setSrcIPList(utils.appendKey(termListDatas.getSourceListDatas(), option, ","));
- termList.setDestIPList(utils.appendKey(termListDatas.getDestinationListDatas(), option, ","));
- termList.setSrcPortList(utils.appendKey(termListDatas.getSourceServiceDatas(), option, ","));
- termList.setDestPortList(utils.appendKey(termListDatas.getDestinationServiceDatas(), option, ","));
- termList.setAction(utils.appendKey(termListDatas.getActionListDatas(), option, ","));
-
- UserInfo userInfo = utils.getUserInfo(userId);
- List<Object> duplicateData = commonClassDao.checkDuplicateEntry(termList.getTermName(), termName, TermList.class);
- boolean duplicateflag = false;
- if(!duplicateData.isEmpty()){
- TermList data = (TermList) duplicateData.get(0);
- if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
- termList.setId(data.getId());
- }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
- (request.getParameter(operation) == null && (data.getId() != termList.getId()))){
- duplicateflag = true;
- }
- }
- String responseString = null;
- if(!duplicateflag){
- termList.setUserModifiedBy(userInfo);
- if(termList.getId() == 0){
- termList.setUserCreatedBy(userInfo);
- commonClassDao.save(termList);
- }else{
- termList.setModifiedDate(new Date());
- commonClassDao.update(termList);
- }
- responseString = mapper.writeValueAsString(commonClassDao.getData(TermList.class));
- }else{
- responseString = duplicateResponseString;
- }
- if(fromAPI){
- return utils.getResultForApi(responseString);
- }else{
- utils.setResponseData(response, termListDictDatas, responseString);
- }
- }catch (Exception e){
- utils.setErrorResponseData(response, e);
- }
- return null;
- }
-
- @RequestMapping(value={"/fw_dictionary/remove_termList"}, method={RequestMethod.POST})
- public void removeTermListDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.removeData(request, response, termListDictDatas, TermList.class);
- }
-
- //ParentList Dictionary Data
- @RequestMapping(value={"/get_FWDictionaryListDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getFWDictListDictionaryEntityDataByName(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getDataByEntity(response, fwDictListDatas, "parentItemName", FirewallDictionaryList.class);
- }
-
- @RequestMapping(value={"/get_FWDictionaryListData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getFWDictionaryListEntityData(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getData(response, fwDictListDatas, FirewallDictionaryList.class);
- }
-
- @RequestMapping(value={"/fw_dictionary/save_FWDictionaryList"}, method={RequestMethod.POST})
- public ModelAndView saveFWDictionaryList(HttpServletRequest request, HttpServletResponse response) throws IOException{
- DictionaryUtils utils = getDictionaryUtilsInstance();
- try {
- boolean fromAPI = utils.isRequestFromAPI(request);
- ObjectMapper mapper = new ObjectMapper();
- mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- JsonNode root = mapper.readTree(request.getReader());
- FirewallDictionaryList fwDictList;
- GridData gridData;
- if (fromAPI) {
- fwDictList = mapper.readValue(root.get(dictionaryFields).toString(), FirewallDictionaryList.class);
- gridData = mapper.readValue(root.get(dictionaryFields).toString(), GridData.class);
- } else {
- fwDictList = mapper.readValue(root.get("fwDictListDictionaryData").toString(), FirewallDictionaryList.class);
- gridData = mapper.readValue(root.get("fwDictListDictionaryData").toString(), GridData.class);
- }
-
- fwDictList.setServiceList(utils.appendKey(gridData.getAttributes(), option, ","));
- fwDictList.setAddressList(utils.appendKey(gridData.getAlAttributes(), option, ","));
-
- List<Object> duplicateData = commonClassDao.checkDuplicateEntry(fwDictList.getParentItemName(), "parentItemName", FirewallDictionaryList.class);
- boolean duplicateflag = false;
- if(!duplicateData.isEmpty()){
- FirewallDictionaryList data = (FirewallDictionaryList) duplicateData.get(0);
- if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
- fwDictList.setId(data.getId());
- }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
- (request.getParameter(operation) == null && (data.getId() != fwDictList.getId()))){
- duplicateflag = true;
- }
- }
- String responseString = null;
- if(!duplicateflag){
- if(fwDictList.getId() == 0){
- commonClassDao.save(fwDictList);
- }else{
- commonClassDao.update(fwDictList);
- }
- responseString = mapper.writeValueAsString(commonClassDao.getData(FirewallDictionaryList.class));
- }else{
- responseString = duplicateResponseString;
- }
- if(fromAPI){
- return utils.getResultForApi(responseString);
- }else{
- utils.setResponseData(response, fwDictListDatas, responseString);
- }
- }
- catch (Exception e){
- utils.setErrorResponseData(response, e);
- }
- return null;
- }
-
- @RequestMapping(value={"/fw_dictionary/remove_FWDictionaryList"}, method={RequestMethod.POST})
- public void removeFWDictionaryList(HttpServletRequest request, HttpServletResponse response) throws IOException {
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.removeData(request, response, fwDictListDatas, FirewallDictionaryList.class);
- }
-
-
- @RequestMapping(value={"/get_TagPickerNameByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getTagPickerNameEntityDataByName(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getDataByEntity(response, fwTagPickerDatas, tagPickerName, FWTagPicker.class);
- }
-
- @RequestMapping(value={"/get_TagPickerListData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getTagPickerDictionaryEntityData(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getData(response, fwTagPickerDatas, FWTagPicker.class);
- }
-
- @RequestMapping(value={"/fw_dictionary/save_fwTagPicker"}, method={RequestMethod.POST})
- public ModelAndView saveFirewallTagPickerDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
- DictionaryUtils utils = getDictionaryUtilsInstance();
- try {
- boolean fromAPI = utils.isRequestFromAPI(request);
- ObjectMapper mapper = new ObjectMapper();
- mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- JsonNode root = mapper.readTree(request.getReader());
- FWTagPicker fwTagPicker;
- TagGridValues data;
- String userId = "";
- if (fromAPI) {
- fwTagPicker = mapper.readValue(root.get(dictionaryFields).toString(), FWTagPicker.class);
- data = mapper.readValue(root.get(dictionaryFields).toString(), TagGridValues.class);
- userId = "API";
- } else {
- fwTagPicker = mapper.readValue(root.get("fwTagPickerDictionaryData").toString(), FWTagPicker.class);
- data = mapper.readValue(root.get("fwTagPickerDictionaryData").toString(), TagGridValues.class);
- userId = root.get(userid).textValue();
- }
- fwTagPicker.setTagValues(utils.appendKeyValue(data.getTags(), "#", ":"));
-
- UserInfo userInfo = utils.getUserInfo(userId);
-
- List<Object> duplicateData = commonClassDao.checkDuplicateEntry(fwTagPicker.getTagPickerName(), tagPickerName, FWTagPicker.class);
- boolean duplicateflag = false;
- if(!duplicateData.isEmpty()){
- FWTagPicker data1 = (FWTagPicker) duplicateData.get(0);
- if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
- fwTagPicker.setId(data1.getId());
- }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
- (request.getParameter(operation) == null && (data1.getId() != fwTagPicker.getId()))){
- duplicateflag = true;
- }
- }
- String responseString = null;
- if(!duplicateflag){
- fwTagPicker.setUserModifiedBy(userInfo);
- if(fwTagPicker.getId() == 0){
- fwTagPicker.setUserCreatedBy(userInfo);
- commonClassDao.save(fwTagPicker);
- }else{
- fwTagPicker.setModifiedDate(new Date());
- commonClassDao.update(fwTagPicker);
- }
- responseString = mapper.writeValueAsString(commonClassDao.getData(FWTagPicker.class));
- }else{
- responseString = duplicateResponseString;
- }
- if(fromAPI){
- return utils.getResultForApi(responseString);
- }else{
- utils.setResponseData(response, fwTagPickerDatas, responseString);
- }
- }
- catch (Exception e){
- utils.setErrorResponseData(response, e);
- }
- return null;
- }
-
- @RequestMapping(value={"/fw_dictionary/remove_tagPicker"}, method={RequestMethod.POST})
- public void removeFirewallTagPickerDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException {
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.removeData(request, response, fwTagPickerDatas, FWTagPicker.class);
- }
-
- @RequestMapping(value={"/get_TagListData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getTagDictionaryEntityData(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getData(response, fwTagDatas, FWTag.class);
- }
-
- @RequestMapping(value={"/get_TagNameByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getTagNameEntityDataByName(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getDataByEntity(response, fwTagDatas, "fwTagName", FWTag.class);
- }
-
-
- @RequestMapping(value={"/fw_dictionary/save_fwTag"}, method={RequestMethod.POST})
- public ModelAndView saveFirewallTagDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
- DictionaryUtils utils = getDictionaryUtilsInstance();
- try {
- boolean fromAPI = utils.isRequestFromAPI(request);
- ObjectMapper mapper = new ObjectMapper();
- mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- JsonNode root = mapper.readTree(request.getReader());
- FWTag fwTag;
- TagGridValues tagGridValues;
- String userId="";
- if(fromAPI){
- fwTag = mapper.readValue(root.get(dictionaryFields).toString(), FWTag.class);
- tagGridValues = mapper.readValue(root.get(dictionaryFields).toString(), TagGridValues.class);
- userId = "API";
- }else{
- fwTag = mapper.readValue(root.get("fwTagDictionaryData").toString(), FWTag.class);
- tagGridValues = mapper.readValue(root.get("fwTagDictionaryData").toString(), TagGridValues.class);
- userId = root.get(userid).textValue();
- }
- fwTag.setTagValues(utils.appendKey(tagGridValues.getTags(), "tags", ","));
-
- UserInfo userInfo = utils.getUserInfo(userId);
- List<Object> duplicateData = commonClassDao.checkDuplicateEntry(fwTag.getFwTagName(), "fwTagName", FWTag.class);
- boolean duplicateflag = false;
- if(!duplicateData.isEmpty()){
- FWTag data = (FWTag) duplicateData.get(0);
- if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
- fwTag.setId(data.getId());
- }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
- (request.getParameter(operation) == null && (data.getId() != fwTag.getId()))){
- duplicateflag = true;
- }
- }
- String responseString = null;
- if(!duplicateflag){
- fwTag.setUserModifiedBy(userInfo);
- if(fwTag.getId() == 0){
- fwTag.setUserCreatedBy(userInfo);
- commonClassDao.save(fwTag);
- }else{
- fwTag.setModifiedDate(new Date());
- commonClassDao.update(fwTag);
- }
- responseString = mapper.writeValueAsString(commonClassDao.getData(FWTag.class));
- }else{
- responseString = duplicateResponseString;
- }
- if(fromAPI){
- return utils.getResultForApi(responseString);
- }else{
- utils.setResponseData(response, fwTagDatas, responseString);
- }
- }
- catch (Exception e){
- utils.setErrorResponseData(response, e);
- }
- return null;
- }
-
- @RequestMapping(value={"/fw_dictionary/remove_tagList"}, method={RequestMethod.POST})
- public void removeFirewallTagDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.removeData(request, response, fwTagDatas, FWTag.class);
- }
+ private static final Logger LOGGER = FlexLogger.getLogger(FirewallDictionaryController.class);
+
+ private static CommonClassDao commonClassDao;
+ private static String prefixListName = "prefixListName";
+ private static String successMessage = "success";
+ private static String operation = "operation";
+ private static String errorMsg = "error";
+ private static String dictionaryFields ="dictionaryFields";
+ private static String duplicateResponseString = "Duplicate";
+ private static String utf8 = "UTF-8";
+ private static String applicationJsonContentType = "application / json";
+ private static String protocolName = "protocolName";
+ private static String groupNameStart = "Group_";
+ private static String option = "option";
+ private static String zoneName = "zoneName";
+ private static String serviceName = "serviceName";
+ private static String termName = "termName";
+ private static String userid = "userid";
+ private static String tagPickerName = "tagPickerName";
+ private static String pfListDatas = "prefixListDictionaryDatas";
+ private static String portListDatas = "portListDictionaryDatas";
+ private static String protocolListDatas = "protocolListDictionaryDatas";
+ private static String addressGroupDatas = "addressGroupDictionaryDatas";
+ private static String actionListDatas = "actionListDictionaryDatas";
+ private static String serviceGroupDatas = "serviceGroupDictionaryDatas";
+ private static String securityZoneDatas = "securityZoneDictionaryDatas";
+ private static String serviceListDatas = "serviceListDictionaryDatas";
+ private static String zoneDatas = "zoneDictionaryDatas";
+ private static String termListDictDatas = "termListDictionaryDatas";
+ private static String fwDictListDatas = "fwDictListDictionaryDatas";
+ private static String fwTagPickerDatas = "fwTagPickerDictionaryDatas";
+ private static String fwTagDatas = "fwTagDictionaryDatas";
+
+
+ @Autowired
+ public FirewallDictionaryController(CommonClassDao commonClassDao){
+ FirewallDictionaryController.commonClassDao = commonClassDao;
+ }
+
+ public static void setCommonClassDao(CommonClassDao clDao){
+ commonClassDao = clDao;
+ }
+
+ public FirewallDictionaryController(){
+ super();
+ }
+
+ private DictionaryUtils getDictionaryUtilsInstance(){
+ return DictionaryUtils.getDictionaryUtils();
+ }
+
+ @RequestMapping(value={"/get_PrefixListDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getPrefixListDictionaryEntityDataByName(HttpServletResponse response){
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getDataByEntity(response, pfListDatas, prefixListName, PrefixList.class);
+ }
+
+ @RequestMapping(value={"/get_PrefixListData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getPrefixListDictionaryEntityData(HttpServletResponse response){
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getData(response, pfListDatas, PrefixList.class);
+ }
+
+ @RequestMapping(value={"/fw_dictionary/save_prefixList"}, method={RequestMethod.POST})
+ public ModelAndView savePrefixListDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ try {
+ boolean fromAPI = utils.isRequestFromAPI(request);
+ ObjectMapper mapper = new ObjectMapper();
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ JsonNode root = mapper.readTree(request.getReader());
+ PrefixList prefixList;
+ if (fromAPI) {
+ prefixList = mapper.readValue(root.get(dictionaryFields).toString(), PrefixList.class);
+ } else {
+ prefixList = mapper.readValue(root.get("prefixListDictionaryData").toString(), PrefixList.class);
+ }
+
+ List<Object> duplicateData = commonClassDao.checkDuplicateEntry(prefixList.getPrefixListName(), prefixListName, PrefixList.class);
+ boolean duplicateflag = false;
+ if(!duplicateData.isEmpty()){
+ PrefixList data = (PrefixList) duplicateData.get(0);
+ if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
+ prefixList.setId(data.getId());
+ }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
+ (request.getParameter(operation) == null && (data.getId() != prefixList.getId()))){
+ duplicateflag = true;
+ }
+ }
+ String responseString = null;
+ if(!duplicateflag){
+ if(prefixList.getId() == 0){
+ commonClassDao.save(prefixList);
+ }else{
+ commonClassDao.update(prefixList);
+ }
+ responseString = mapper.writeValueAsString(commonClassDao.getData(PrefixList.class));
+ }else{
+ responseString = duplicateResponseString;
+ }
+ if(fromAPI){
+ return utils.getResultForApi(responseString);
+ }else{
+ utils.setResponseData(response, pfListDatas, responseString);
+ }
+ }catch (Exception e){
+ utils.setErrorResponseData(response, e);
+ }
+ return null;
+ }
+
+ @RequestMapping(value={"/fw_dictionary/remove_PrefixList"}, method={RequestMethod.POST})
+ public void removePrefixListDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.removeData(request, response, pfListDatas, PrefixList.class);
+ }
+
+ @RequestMapping(value={"/fw_dictionary/validate_prefixList"}, method={RequestMethod.POST})
+ public void validatePrefixListDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ try {
+ ObjectMapper mapper = new ObjectMapper();
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ JsonNode root = mapper.readTree(request.getReader());
+ PrefixList prefixList = mapper.readValue(root.get("prefixListDictionaryData").toString(), PrefixList.class);
+ String responseValidation = successMessage;
+ try{
+ CIDR.newCIDR(prefixList.getPrefixListValue());
+ }catch(UnknownHostException e){
+ LOGGER.error(e);
+ responseValidation = errorMsg;
+ }
+ response.setCharacterEncoding(utf8);
+ response.setContentType(applicationJsonContentType);
+ request.setCharacterEncoding(utf8);
+
+ PrintWriter out = response.getWriter();
+ JSONObject j = new JSONObject("{result: " + responseValidation + "}");
+ out.write(j.toString());
+ }
+ catch (Exception e){
+ utils.setErrorResponseData(response, e);
+ }
+ }
+
+ @RequestMapping(value={"/get_PortListData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getPortListDictionaryEntityData(HttpServletResponse response){
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getData(response, portListDatas, PortList.class);
+ }
+
+ @RequestMapping(value={"/fw_dictionary/save_portName"}, method={RequestMethod.POST})
+ public ModelAndView savePortListDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ try {
+ boolean fromAPI = utils.isRequestFromAPI(request);
+ ObjectMapper mapper = new ObjectMapper();
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ JsonNode root = mapper.readTree(request.getReader());
+ PortList portList;
+ if(fromAPI){
+ portList = mapper.readValue(root.get(dictionaryFields).toString(), PortList.class);
+ }else{
+ portList = mapper.readValue(root.get("portListDictionaryData").toString(), PortList.class);
+ }
+ List<Object> duplicateData = commonClassDao.checkDuplicateEntry(portList.getPortName(), "portName", PortList.class);
+ boolean duplicateflag = false;
+ if(!duplicateData.isEmpty()){
+ PortList data = (PortList) duplicateData.get(0);
+ if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
+ portList.setId(data.getId());
+ }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
+ (request.getParameter(operation) == null && (data.getId() != portList.getId()))){
+ duplicateflag = true;
+ }
+ }
+ String responseString = null;
+ if(!duplicateflag){
+ if(portList.getId() == 0){
+ commonClassDao.save(portList);
+ }else{
+ commonClassDao.update(portList);
+ }
+ responseString = mapper.writeValueAsString(commonClassDao.getData(PortList.class));
+ }else{
+ responseString = duplicateResponseString;
+ }
+ if(fromAPI){
+ return utils.getResultForApi(responseString);
+ }else{
+ utils.setResponseData(response, portListDatas, responseString);
+ }
+ }catch (Exception e){
+ utils.setErrorResponseData(response, e);
+ }
+ return null;
+ }
+
+ @RequestMapping(value={"/fw_dictionary/remove_PortList"}, method={RequestMethod.POST})
+ public void removePortListDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.removeData(request, response, portListDatas, PortList.class);
+ }
+
+ @RequestMapping(value={"/get_ProtocolListData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getProtocolListDictionaryEntityData(HttpServletResponse response){
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getData(response, protocolListDatas, ProtocolList.class);
+ }
+
+ @RequestMapping(value={"/get_ProtocolListDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getProtocolListDictionaryEntityDataByName(HttpServletResponse response){
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getDataByEntity(response, protocolListDatas, protocolName, ProtocolList.class);
+ }
+
+ @RequestMapping(value={"/fw_dictionary/save_protocolList"}, method={RequestMethod.POST})
+ public ModelAndView saveProtocolListDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ try {
+ boolean fromAPI = utils.isRequestFromAPI(request);
+ ObjectMapper mapper = new ObjectMapper();
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ JsonNode root = mapper.readTree(request.getReader());
+ ProtocolList protocolList;
+ if(fromAPI){
+ protocolList = mapper.readValue(root.get(dictionaryFields).toString(), ProtocolList.class);
+ }else{
+ protocolList = mapper.readValue(root.get("protocolListDictionaryData").toString(), ProtocolList.class);
+ }
+ List<Object> duplicateData = commonClassDao.checkDuplicateEntry(protocolList.getProtocolName(), protocolName, ProtocolList.class);
+ boolean duplicateflag = false;
+ if(!duplicateData.isEmpty()){
+ ProtocolList data = (ProtocolList) duplicateData.get(0);
+ if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
+ protocolList.setId(data.getId());
+ }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
+ (request.getParameter(operation) == null && (data.getId() != protocolList.getId()))){
+ duplicateflag = true;
+ }
+ }
+ String responseString = null;
+ if(!duplicateflag){
+ if(protocolList.getId() == 0){
+ commonClassDao.save(protocolList);
+ }else{
+ commonClassDao.update(protocolList);
+ }
+ responseString = mapper.writeValueAsString(commonClassDao.getData(ProtocolList.class));
+ }else{
+ responseString = duplicateResponseString;
+ }
+ if(fromAPI){
+ return utils.getResultForApi(responseString);
+ }else{
+ utils.setResponseData(response, protocolListDatas, responseString);
+ }
+ }catch (Exception e){
+ utils.setErrorResponseData(response, e);
+ }
+ return null;
+ }
+
+ @RequestMapping(value={"/fw_dictionary/remove_protocol"}, method={RequestMethod.POST})
+ public void removeProtocolListDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.removeData(request, response, protocolListDatas, ProtocolList.class);
+ }
+
+ @RequestMapping(value={"/get_AddressGroupDictionaryDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getAddressGroupDictionaryEntityDataByName(HttpServletResponse response){
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getDataByEntity(response, addressGroupDatas, "name", AddressGroup.class);
+ }
+
+ @RequestMapping(value={"/get_AddressGroupData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getAddressGroupDictionaryEntityData(HttpServletResponse response){
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getData(response, addressGroupDatas, AddressGroup.class);
+ }
+
+ @RequestMapping(value={"/fw_dictionary/save_addressGroup"}, method={RequestMethod.POST})
+ public ModelAndView saveAddressGroupDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ try {
+ boolean fromAPI = utils.isRequestFromAPI(request);
+ ObjectMapper mapper = new ObjectMapper();
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ JsonNode root = mapper.readTree(request.getReader());
+ AddressGroup addressGroup;
+ GridData gridData;
+ if(fromAPI){
+ addressGroup = mapper.readValue(root.get(dictionaryFields).toString(), AddressGroup.class);
+ gridData = mapper.readValue(root.get(dictionaryFields).toString(), GridData.class);
+ }else{
+ addressGroup = mapper.readValue(root.get("addressGroupDictionaryData").toString(), AddressGroup.class);
+ gridData = mapper.readValue(root.get("addressGroupDictionaryData").toString(), GridData.class);
+ }
+ if(!addressGroup.getGroupName().startsWith(groupNameStart)){
+ String groupName = groupNameStart+addressGroup.getGroupName();
+ addressGroup.setGroupName(groupName);
+ }
+ addressGroup.setServiceList(utils.appendKey(gridData.getAttributes(), option, ","));
+ List<Object> duplicateData = commonClassDao.checkDuplicateEntry(addressGroup.getGroupName(), "name", AddressGroup.class);
+ boolean duplicateflag = false;
+ if(!duplicateData.isEmpty()){
+ AddressGroup data = (AddressGroup) duplicateData.get(0);
+ if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
+ addressGroup.setId(data.getId());
+ }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
+ (request.getParameter(operation) == null && (data.getId() != addressGroup.getId()))){
+ duplicateflag = true;
+ }
+ }
+ String responseString = null;
+ if(!duplicateflag){
+ if(addressGroup.getId() == 0){
+ commonClassDao.save(addressGroup);
+ }else{
+ commonClassDao.update(addressGroup);
+ }
+ responseString = mapper.writeValueAsString(commonClassDao.getData(AddressGroup.class));
+ }else{
+ responseString = duplicateResponseString;
+ }
+ if(fromAPI){
+ return utils.getResultForApi(responseString);
+ }else{
+ utils.setResponseData(response, addressGroupDatas, responseString);
+ }
+ }catch (Exception e){
+ utils.setErrorResponseData(response, e);
+ }
+ return null;
+ }
+
+ @RequestMapping(value={"/fw_dictionary/remove_AddressGroup"}, method={RequestMethod.POST})
+ public void removeAddressGroupDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.removeData(request, response, addressGroupDatas, AddressGroup.class);
+ }
+
+ @RequestMapping(value={"/get_ActionListDictionaryDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getActionListDictionaryEntityDataByName(HttpServletResponse response){
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getDataByEntity(response, actionListDatas, "actionName", ActionList.class);
+ }
+
+ @RequestMapping(value={"/get_ActionListData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getActionListDictionaryEntityData(HttpServletResponse response){
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getData(response, actionListDatas, ActionList.class);
+ }
+
+ @RequestMapping(value={"/fw_dictionary/save_ActionList"}, method={RequestMethod.POST})
+ public ModelAndView saveActionListDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ try {
+ boolean fromAPI = utils.isRequestFromAPI(request);
+ ObjectMapper mapper = new ObjectMapper();
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ JsonNode root = mapper.readTree(request.getReader());
+ ActionList actionList;
+ if (fromAPI) {
+ actionList = mapper.readValue(root.get(dictionaryFields).toString(), ActionList.class);
+ } else {
+ actionList = mapper.readValue(root.get("actionListDictionaryData").toString(), ActionList.class);
+ }
+ List<Object> duplicateData = commonClassDao.checkDuplicateEntry(actionList.getActionName(), "actionName", ActionList.class);
+ boolean duplicateflag = false;
+ if(!duplicateData.isEmpty()){
+ ActionList data = (ActionList) duplicateData.get(0);
+ if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
+ actionList.setId(data.getId());
+ }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
+ (request.getParameter(operation) == null && (data.getId() != actionList.getId()))){
+ duplicateflag = true;
+ }
+ }
+ String responseString = null;
+ if(!duplicateflag){
+ if(actionList.getId() == 0){
+ commonClassDao.save(actionList);
+ }else{
+ commonClassDao.update(actionList);
+ }
+ responseString = mapper.writeValueAsString(commonClassDao.getData(ActionList.class));
+ }else{
+ responseString = duplicateResponseString;
+ }
+ if(fromAPI){
+ return utils.getResultForApi(responseString);
+ }else{
+ utils.setResponseData(response, actionListDatas, responseString);
+ }
+ }catch (Exception e){
+ utils.setErrorResponseData(response, e);
+ }
+ return null;
+ }
+
+ @RequestMapping(value={"/fw_dictionary/remove_ActionList"}, method={RequestMethod.POST})
+ public void removeActionListDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.removeData(request, response, actionListDatas, ActionList.class);
+ }
+
+ @RequestMapping(value={"/get_ServiceGroupData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getServiceGroupDictionaryEntityData(HttpServletResponse response){
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getData(response, serviceGroupDatas, GroupServiceList.class);
+ }
+
+ @RequestMapping(value={"/get_ServiceGroupDictionaryDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getServiceGroupDictionaryEntityDataByName(HttpServletResponse response){
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getDataByEntity(response, serviceGroupDatas, "name", GroupServiceList.class);
+ }
+
+ @RequestMapping(value={"/fw_dictionary/save_serviceGroup"}, method={RequestMethod.POST})
+ public ModelAndView saveServiceGroupDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ try {
+ boolean fromAPI = utils.isRequestFromAPI(request);
+ ObjectMapper mapper = new ObjectMapper();
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ JsonNode root = mapper.readTree(request.getReader());
+ GroupServiceList groupServiceList;
+ GridData gridData;
+ if(fromAPI){
+ groupServiceList = mapper.readValue(root.get(dictionaryFields).toString(), GroupServiceList.class);
+ gridData = mapper.readValue(root.get(dictionaryFields).toString(), GridData.class);
+ }else{
+ groupServiceList = mapper.readValue(root.get("serviceGroupDictionaryData").toString(), GroupServiceList.class);
+ gridData = mapper.readValue(root.get("serviceGroupDictionaryData").toString(), GridData.class);
+ }
+ if(!groupServiceList.getGroupName().startsWith(groupNameStart)){
+ String groupName = groupNameStart+groupServiceList.getGroupName();
+ groupServiceList.setGroupName(groupName);
+ }
+ groupServiceList.setServiceList(utils.appendKey(gridData.getAttributes(), option, ","));
+ List<Object> duplicateData = commonClassDao.checkDuplicateEntry(groupServiceList.getGroupName(), "name", GroupServiceList.class);
+ boolean duplicateflag = false;
+ if(!duplicateData.isEmpty()){
+ GroupServiceList data = (GroupServiceList) duplicateData.get(0);
+ if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
+ groupServiceList.setId(data.getId());
+ }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
+ (request.getParameter(operation) == null && (data.getId() != groupServiceList.getId()))){
+ duplicateflag = true;
+ }
+ }
+ String responseString = null;
+ if(!duplicateflag){
+ if(groupServiceList.getId() == 0){
+ commonClassDao.save(groupServiceList);
+ }else{
+ commonClassDao.update(groupServiceList);
+ }
+ responseString = mapper.writeValueAsString(commonClassDao.getData(GroupServiceList.class));
+ }else{
+ responseString = duplicateResponseString;
+ }
+ if(fromAPI){
+ return utils.getResultForApi(responseString);
+ }else{
+ utils.setResponseData(response, serviceGroupDatas, responseString);
+ }
+ }catch (Exception e){
+ utils.setErrorResponseData(response, e);
+ }
+ return null;
+ }
+
+ @RequestMapping(value={"/fw_dictionary/remove_serviceGroup"}, method={RequestMethod.POST})
+ public void removeServiceGroupDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.removeData(request, response, serviceGroupDatas, GroupServiceList.class);
+ }
+
+ @RequestMapping(value={"/get_SecurityZoneDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getSecurityZoneDictionaryEntityDataByName(HttpServletResponse response){
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getDataByEntity(response, securityZoneDatas, zoneName, SecurityZone.class);
+ }
+
+ @RequestMapping(value={"/get_SecurityZoneData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getSecurityZoneDictionaryEntityData(HttpServletResponse response){
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getData(response, securityZoneDatas, SecurityZone.class);
+ }
+
+ @RequestMapping(value={"/fw_dictionary/save_securityZone"}, method={RequestMethod.POST})
+ public ModelAndView saveSecurityZoneDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ try {
+ boolean fromAPI = utils.isRequestFromAPI(request);
+ ObjectMapper mapper = new ObjectMapper();
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ JsonNode root = mapper.readTree(request.getReader());
+ SecurityZone securityZone;
+ if(fromAPI){
+ securityZone = mapper.readValue(root.get(dictionaryFields).toString(), SecurityZone.class);
+ }else{
+ securityZone = mapper.readValue(root.get("securityZoneDictionaryData").toString(), SecurityZone.class);
+ }
+ List<Object> duplicateData = commonClassDao.checkDuplicateEntry(securityZone.getZoneName(), zoneName, SecurityZone.class);
+ boolean duplicateflag = false;
+ if(!duplicateData.isEmpty()){
+ SecurityZone data = (SecurityZone) duplicateData.get(0);
+ if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
+ securityZone.setId(data.getId());
+ }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
+ (request.getParameter(operation) == null && (data.getId() != securityZone.getId()))){
+ duplicateflag = true;
+ }
+ }
+ String responseString = null;
+ if(!duplicateflag){
+ if(securityZone.getId() == 0){
+ commonClassDao.save(securityZone);
+ }else{
+ commonClassDao.update(securityZone);
+ }
+ responseString = mapper.writeValueAsString(commonClassDao.getData(SecurityZone.class));
+ }else{
+ responseString = duplicateResponseString;
+ }
+ if(fromAPI){
+ return utils.getResultForApi(responseString);
+ }else{
+ utils.setResponseData(response, securityZoneDatas, responseString);
+ }
+ }catch (Exception e){
+ utils.setErrorResponseData(response, e);
+ }
+ return null;
+ }
+
+ @RequestMapping(value={"/fw_dictionary/remove_securityZone"}, method={RequestMethod.POST})
+ public void removeSecurityZoneDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException {
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.removeData(request, response, securityZoneDatas, SecurityZone.class);
+ }
+
+
+ @RequestMapping(value={"/get_ServiceListData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getServiceListDictionaryEntityData(HttpServletResponse response){
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getData(response, serviceListDatas, ServiceList.class);
+ }
+
+ @RequestMapping(value={"/get_ServiceListDictionaryDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getServiceListDictionaryEntityDataByName(HttpServletResponse response){
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getDataByEntity(response, serviceListDatas, serviceName, ServiceList.class);
+ }
+
+ @RequestMapping(value={"/fw_dictionary/save_serviceList"}, method={RequestMethod.POST})
+ public ModelAndView saveServiceListDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ try {
+ boolean fromAPI = utils.isRequestFromAPI(request);
+ ObjectMapper mapper = new ObjectMapper();
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ JsonNode root = mapper.readTree(request.getReader());
+ ServiceList serviceList;
+ GridData serviceListGridData;
+ if(fromAPI){
+ serviceList = mapper.readValue(root.get(dictionaryFields).toString(), ServiceList.class);
+ serviceListGridData = mapper.readValue(root.get(dictionaryFields).toString(), GridData.class);
+ }else{
+ serviceList = mapper.readValue(root.get("serviceListDictionaryData").toString(), ServiceList.class);
+ serviceListGridData = mapper.readValue(root.get("serviceListDictionaryData").toString(), GridData.class);
+ }
+ serviceList.setServiceTransProtocol(utils.appendKey(serviceListGridData.getTransportProtocols(), option, ","));
+ serviceList.setServiceAppProtocol(utils.appendKey(serviceListGridData.getAppProtocols(), option, ","));
+ serviceList.setServiceType("SERVICE");
+ List<Object> duplicateData = commonClassDao.checkDuplicateEntry(serviceList.getServiceName(), serviceName, ServiceList.class);
+ boolean duplicateflag = false;
+ if(!duplicateData.isEmpty()){
+ ServiceList data = (ServiceList) duplicateData.get(0);
+ if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
+ serviceList.setId(data.getId());
+ }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
+ (request.getParameter(operation) == null && (data.getId() != serviceList.getId()))){
+ duplicateflag = true;
+ }
+ }
+ String responseString = null;
+ if(!duplicateflag){
+ if(serviceList.getId() == 0){
+ commonClassDao.save(serviceList);
+ }else{
+ commonClassDao.update(serviceList);
+ }
+ responseString = mapper.writeValueAsString(commonClassDao.getData(ServiceList.class));
+ }else{
+ responseString = duplicateResponseString;
+ }
+ if(fromAPI){
+ return utils.getResultForApi(responseString);
+ }else{
+ utils.setResponseData(response, serviceListDatas, responseString);
+ }
+ }catch (Exception e){
+ utils.setErrorResponseData(response, e);
+ }
+ return null;
+ }
+
+ @RequestMapping(value={"/fw_dictionary/remove_serviceList"}, method={RequestMethod.POST})
+ public void removeServiceListDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException {
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.removeData(request, response, serviceListDatas, ServiceList.class);
+ }
+
+ @RequestMapping(value={"/get_ZoneData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getZoneDictionaryEntityData(HttpServletResponse response){
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getData(response, zoneDatas, Zone.class);
+ }
+
+ @RequestMapping(value={"/get_ZoneDictionaryDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getZoneDictionaryEntityDataByName(HttpServletResponse response){
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getDataByEntity(response, zoneDatas, zoneName, Zone.class);
+ }
+
+ @RequestMapping(value={"/fw_dictionary/save_zoneName"}, method={RequestMethod.POST})
+ public ModelAndView saveZoneDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ try {
+ boolean fromAPI = utils.isRequestFromAPI(request);
+ ObjectMapper mapper = new ObjectMapper();
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ JsonNode root = mapper.readTree(request.getReader());
+ Zone zone;
+ if (fromAPI) {
+ zone = mapper.readValue(root.get(dictionaryFields).toString(), Zone.class);
+ } else {
+ zone = mapper.readValue(root.get("zoneDictionaryData").toString(), Zone.class);
+ }
+ List<Object> duplicateData = commonClassDao.checkDuplicateEntry(zone.getZoneName(), zoneName, Zone.class);
+ boolean duplicateflag = false;
+ if(!duplicateData.isEmpty()){
+ Zone data = (Zone) duplicateData.get(0);
+ if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
+ zone.setId(data.getId());
+ }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
+ (request.getParameter(operation) == null && (data.getId() != zone.getId()))){
+ duplicateflag = true;
+ }
+ }
+ String responseString = null;
+ if(!duplicateflag){
+ if(zone.getId() == 0){
+ commonClassDao.save(zone);
+ }else{
+ commonClassDao.update(zone);
+ }
+ responseString = mapper.writeValueAsString(commonClassDao.getData(Zone.class));
+ }else{
+ responseString = duplicateResponseString;
+ }
+ if(fromAPI){
+ return utils.getResultForApi(responseString);
+ }else{
+ utils.setResponseData(response, zoneDatas, responseString);
+ }
+ }catch (Exception e){
+ utils.setErrorResponseData(response, e);
+ }
+ return null;
+ }
+
+ @RequestMapping(value={"/fw_dictionary/remove_zone"}, method={RequestMethod.POST})
+ public void removeZoneDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.removeData(request, response, zoneDatas, Zone.class);
+ }
+
+ @RequestMapping(value={"/get_TermListDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getTermListDictionaryEntityDataByName(HttpServletResponse response){
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getDataByEntity(response, termListDictDatas, termName, TermList.class);
+ }
+
+ @RequestMapping(value={"/get_TermListData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getTermListDictionaryEntityData(HttpServletResponse response){
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getData(response, termListDictDatas, TermList.class);
+ }
+
+ @RequestMapping(value={"/fw_dictionary/save_termList"}, method={RequestMethod.POST})
+ public ModelAndView saveTermListDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ try {
+ boolean fromAPI = utils.isRequestFromAPI(request);
+ ObjectMapper mapper = new ObjectMapper();
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ JsonNode root = mapper.readTree(request.getReader());
+ TermList termList;
+ TermListData termListDatas;
+ String userId = null;
+ if(fromAPI){
+ termList = mapper.readValue(root.get(dictionaryFields).toString(), TermList.class);
+ termListDatas = mapper.readValue(root.get(dictionaryFields).toString(), TermListData.class);
+ userId = "API";
+ }else{
+ termList = mapper.readValue(root.get("termListDictionaryData").toString(), TermList.class);
+ termListDatas = mapper.readValue(root.get("termListDictionaryData").toString(), TermListData.class);
+ userId = root.get(userid).textValue();
+ }
+
+ termList.setFromZones(utils.appendKey(termListDatas.getFromZoneDatas(), option, ","));
+ termList.setToZones(utils.appendKey(termListDatas.getToZoneDatas(), option, ","));
+ termList.setSrcIPList(utils.appendKey(termListDatas.getSourceListDatas(), option, ","));
+ termList.setDestIPList(utils.appendKey(termListDatas.getDestinationListDatas(), option, ","));
+ termList.setSrcPortList(utils.appendKey(termListDatas.getSourceServiceDatas(), option, ","));
+ termList.setDestPortList(utils.appendKey(termListDatas.getDestinationServiceDatas(), option, ","));
+ termList.setAction(utils.appendKey(termListDatas.getActionListDatas(), option, ","));
+
+ UserInfo userInfo = utils.getUserInfo(userId);
+ List<Object> duplicateData = commonClassDao.checkDuplicateEntry(termList.getTermName(), termName, TermList.class);
+ boolean duplicateflag = false;
+ if(!duplicateData.isEmpty()){
+ TermList data = (TermList) duplicateData.get(0);
+ if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
+ termList.setId(data.getId());
+ }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
+ (request.getParameter(operation) == null && (data.getId() != termList.getId()))){
+ duplicateflag = true;
+ }
+ }
+ String responseString = null;
+ if(!duplicateflag){
+ termList.setUserModifiedBy(userInfo);
+ if(termList.getId() == 0){
+ termList.setUserCreatedBy(userInfo);
+ commonClassDao.save(termList);
+ }else{
+ termList.setModifiedDate(new Date());
+ commonClassDao.update(termList);
+ }
+ responseString = mapper.writeValueAsString(commonClassDao.getData(TermList.class));
+ }else{
+ responseString = duplicateResponseString;
+ }
+ if(fromAPI){
+ return utils.getResultForApi(responseString);
+ }else{
+ utils.setResponseData(response, termListDictDatas, responseString);
+ }
+ }catch (Exception e){
+ utils.setErrorResponseData(response, e);
+ }
+ return null;
+ }
+
+ @RequestMapping(value={"/fw_dictionary/remove_termList"}, method={RequestMethod.POST})
+ public void removeTermListDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.removeData(request, response, termListDictDatas, TermList.class);
+ }
+
+ //ParentList Dictionary Data
+ @RequestMapping(value={"/get_FWDictionaryListDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getFWDictListDictionaryEntityDataByName(HttpServletResponse response){
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getDataByEntity(response, fwDictListDatas, "parentItemName", FirewallDictionaryList.class);
+ }
+
+ @RequestMapping(value={"/get_FWDictionaryListData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getFWDictionaryListEntityData(HttpServletResponse response){
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getData(response, fwDictListDatas, FirewallDictionaryList.class);
+ }
+
+ @RequestMapping(value={"/fw_dictionary/save_FWDictionaryList"}, method={RequestMethod.POST})
+ public ModelAndView saveFWDictionaryList(HttpServletRequest request, HttpServletResponse response) throws IOException{
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ try {
+ boolean fromAPI = utils.isRequestFromAPI(request);
+ ObjectMapper mapper = new ObjectMapper();
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ JsonNode root = mapper.readTree(request.getReader());
+ FirewallDictionaryList fwDictList;
+ GridData gridData;
+ if (fromAPI) {
+ fwDictList = mapper.readValue(root.get(dictionaryFields).toString(), FirewallDictionaryList.class);
+ gridData = mapper.readValue(root.get(dictionaryFields).toString(), GridData.class);
+ } else {
+ fwDictList = mapper.readValue(root.get("fwDictListDictionaryData").toString(), FirewallDictionaryList.class);
+ gridData = mapper.readValue(root.get("fwDictListDictionaryData").toString(), GridData.class);
+ }
+
+ fwDictList.setServiceList(utils.appendKey(gridData.getAttributes(), option, ","));
+ fwDictList.setAddressList(utils.appendKey(gridData.getAlAttributes(), option, ","));
+
+ List<Object> duplicateData = commonClassDao.checkDuplicateEntry(fwDictList.getParentItemName(), "parentItemName", FirewallDictionaryList.class);
+ boolean duplicateflag = false;
+ if(!duplicateData.isEmpty()){
+ FirewallDictionaryList data = (FirewallDictionaryList) duplicateData.get(0);
+ if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
+ fwDictList.setId(data.getId());
+ }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
+ (request.getParameter(operation) == null && (data.getId() != fwDictList.getId()))){
+ duplicateflag = true;
+ }
+ }
+ String responseString = null;
+ if(!duplicateflag){
+ if(fwDictList.getId() == 0){
+ commonClassDao.save(fwDictList);
+ }else{
+ commonClassDao.update(fwDictList);
+ }
+ responseString = mapper.writeValueAsString(commonClassDao.getData(FirewallDictionaryList.class));
+ }else{
+ responseString = duplicateResponseString;
+ }
+ if(fromAPI){
+ return utils.getResultForApi(responseString);
+ }else{
+ utils.setResponseData(response, fwDictListDatas, responseString);
+ }
+ }
+ catch (Exception e){
+ utils.setErrorResponseData(response, e);
+ }
+ return null;
+ }
+
+ @RequestMapping(value={"/fw_dictionary/remove_FWDictionaryList"}, method={RequestMethod.POST})
+ public void removeFWDictionaryList(HttpServletRequest request, HttpServletResponse response) throws IOException {
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.removeData(request, response, fwDictListDatas, FirewallDictionaryList.class);
+ }
+
+
+ @RequestMapping(value={"/get_TagPickerNameByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getTagPickerNameEntityDataByName(HttpServletResponse response){
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getDataByEntity(response, fwTagPickerDatas, tagPickerName, FWTagPicker.class);
+ }
+
+ @RequestMapping(value={"/get_TagPickerListData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getTagPickerDictionaryEntityData(HttpServletResponse response){
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getData(response, fwTagPickerDatas, FWTagPicker.class);
+ }
+
+ @RequestMapping(value={"/fw_dictionary/save_fwTagPicker"}, method={RequestMethod.POST})
+ public ModelAndView saveFirewallTagPickerDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ try {
+ boolean fromAPI = utils.isRequestFromAPI(request);
+ ObjectMapper mapper = new ObjectMapper();
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ JsonNode root = mapper.readTree(request.getReader());
+ FWTagPicker fwTagPicker;
+ TagGridValues data;
+ String userId = "";
+ if (fromAPI) {
+ fwTagPicker = mapper.readValue(root.get(dictionaryFields).toString(), FWTagPicker.class);
+ data = mapper.readValue(root.get(dictionaryFields).toString(), TagGridValues.class);
+ userId = "API";
+ } else {
+ fwTagPicker = mapper.readValue(root.get("fwTagPickerDictionaryData").toString(), FWTagPicker.class);
+ data = mapper.readValue(root.get("fwTagPickerDictionaryData").toString(), TagGridValues.class);
+ userId = root.get(userid).textValue();
+ }
+ fwTagPicker.setTagValues(utils.appendKeyValue(data.getTags(), "#", ":"));
+
+ UserInfo userInfo = utils.getUserInfo(userId);
+
+ List<Object> duplicateData = commonClassDao.checkDuplicateEntry(fwTagPicker.getTagPickerName(), tagPickerName, FWTagPicker.class);
+ boolean duplicateflag = false;
+ if(!duplicateData.isEmpty()){
+ FWTagPicker data1 = (FWTagPicker) duplicateData.get(0);
+ if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
+ fwTagPicker.setId(data1.getId());
+ }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
+ (request.getParameter(operation) == null && (data1.getId() != fwTagPicker.getId()))){
+ duplicateflag = true;
+ }
+ }
+ String responseString = null;
+ if(!duplicateflag){
+ fwTagPicker.setUserModifiedBy(userInfo);
+ if(fwTagPicker.getId() == 0){
+ fwTagPicker.setUserCreatedBy(userInfo);
+ commonClassDao.save(fwTagPicker);
+ }else{
+ fwTagPicker.setModifiedDate(new Date());
+ commonClassDao.update(fwTagPicker);
+ }
+ responseString = mapper.writeValueAsString(commonClassDao.getData(FWTagPicker.class));
+ }else{
+ responseString = duplicateResponseString;
+ }
+ if(fromAPI){
+ return utils.getResultForApi(responseString);
+ }else{
+ utils.setResponseData(response, fwTagPickerDatas, responseString);
+ }
+ }
+ catch (Exception e){
+ utils.setErrorResponseData(response, e);
+ }
+ return null;
+ }
+
+ @RequestMapping(value={"/fw_dictionary/remove_tagPicker"}, method={RequestMethod.POST})
+ public void removeFirewallTagPickerDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException {
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.removeData(request, response, fwTagPickerDatas, FWTagPicker.class);
+ }
+
+ @RequestMapping(value={"/get_TagListData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getTagDictionaryEntityData(HttpServletResponse response){
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getData(response, fwTagDatas, FWTag.class);
+ }
+
+ @RequestMapping(value={"/get_TagNameByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getTagNameEntityDataByName(HttpServletResponse response){
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getDataByEntity(response, fwTagDatas, "fwTagName", FWTag.class);
+ }
+
+
+ @RequestMapping(value={"/fw_dictionary/save_fwTag"}, method={RequestMethod.POST})
+ public ModelAndView saveFirewallTagDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ try {
+ boolean fromAPI = utils.isRequestFromAPI(request);
+ ObjectMapper mapper = new ObjectMapper();
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ JsonNode root = mapper.readTree(request.getReader());
+ FWTag fwTag;
+ TagGridValues tagGridValues;
+ String userId="";
+ if(fromAPI){
+ fwTag = mapper.readValue(root.get(dictionaryFields).toString(), FWTag.class);
+ tagGridValues = mapper.readValue(root.get(dictionaryFields).toString(), TagGridValues.class);
+ userId = "API";
+ }else{
+ fwTag = mapper.readValue(root.get("fwTagDictionaryData").toString(), FWTag.class);
+ tagGridValues = mapper.readValue(root.get("fwTagDictionaryData").toString(), TagGridValues.class);
+ userId = root.get(userid).textValue();
+ }
+ fwTag.setTagValues(utils.appendKey(tagGridValues.getTags(), "tags", ","));
+
+ UserInfo userInfo = utils.getUserInfo(userId);
+ List<Object> duplicateData = commonClassDao.checkDuplicateEntry(fwTag.getFwTagName(), "fwTagName", FWTag.class);
+ boolean duplicateflag = false;
+ if(!duplicateData.isEmpty()){
+ FWTag data = (FWTag) duplicateData.get(0);
+ if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
+ fwTag.setId(data.getId());
+ }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
+ (request.getParameter(operation) == null && (data.getId() != fwTag.getId()))){
+ duplicateflag = true;
+ }
+ }
+ String responseString = null;
+ if(!duplicateflag){
+ fwTag.setUserModifiedBy(userInfo);
+ if(fwTag.getId() == 0){
+ fwTag.setUserCreatedBy(userInfo);
+ commonClassDao.save(fwTag);
+ }else{
+ fwTag.setModifiedDate(new Date());
+ commonClassDao.update(fwTag);
+ }
+ responseString = mapper.writeValueAsString(commonClassDao.getData(FWTag.class));
+ }else{
+ responseString = duplicateResponseString;
+ }
+ if(fromAPI){
+ return utils.getResultForApi(responseString);
+ }else{
+ utils.setResponseData(response, fwTagDatas, responseString);
+ }
+ }
+ catch (Exception e){
+ utils.setErrorResponseData(response, e);
+ }
+ return null;
+ }
+
+ @RequestMapping(value={"/fw_dictionary/remove_tagList"}, method={RequestMethod.POST})
+ public void removeFirewallTagDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.removeData(request, response, fwTagDatas, FWTag.class);
+ }
}
class TagGridValues{
- private List<Object> tags;
+ private List<Object> tags;
- public List<Object> getTags() {
- return tags;
- }
+ public List<Object> getTags() {
+ return tags;
+ }
- public void setTags(List<Object> tags) {
- this.tags = tags;
- }
+ public void setTags(List<Object> tags) {
+ this.tags = tags;
+ }
}
class AGGridData{
- private List<Object> attributes;
+ private List<Object> attributes;
- public List<Object> getAttributes() {
- return attributes;
- }
+ public List<Object> getAttributes() {
+ return attributes;
+ }
- public void setAttributes(List<Object> attributes) {
- this.attributes = attributes;
- }
+ public void setAttributes(List<Object> attributes) {
+ this.attributes = attributes;
+ }
}
class TermListData{
- private List<Object> fromZoneDatas;
- private List<Object> toZoneDatas;
- private List<Object> sourceListDatas;
- private List<Object> destinationListDatas;
- private List<Object> sourceServiceDatas;
- private List<Object> destinationServiceDatas;
- private List<Object> actionListDatas;
- public List<Object> getFromZoneDatas() {
- return fromZoneDatas;
- }
- public void setFromZoneDatas(List<Object> fromZoneDatas) {
- this.fromZoneDatas = fromZoneDatas;
- }
- public List<Object> getToZoneDatas() {
- return toZoneDatas;
- }
- public void setToZoneDatas(List<Object> toZoneDatas) {
- this.toZoneDatas = toZoneDatas;
- }
- public List<Object> getSourceListDatas() {
- return sourceListDatas;
- }
- public void setSourceListDatas(List<Object> sourceListDatas) {
- this.sourceListDatas = sourceListDatas;
- }
- public List<Object> getDestinationListDatas() {
- return destinationListDatas;
- }
- public void setDestinationListDatas(List<Object> destinationListDatas) {
- this.destinationListDatas = destinationListDatas;
- }
- public List<Object> getSourceServiceDatas() {
- return sourceServiceDatas;
- }
- public void setSourceServiceDatas(List<Object> sourceServiceDatas) {
- this.sourceServiceDatas = sourceServiceDatas;
- }
- public List<Object> getDestinationServiceDatas() {
- return destinationServiceDatas;
- }
- public void setDestinationServiceDatas(List<Object> destinationServiceDatas) {
- this.destinationServiceDatas = destinationServiceDatas;
- }
- public List<Object> getActionListDatas() {
- return actionListDatas;
- }
- public void setActionListDatas(List<Object> actionListDatas) {
- this.actionListDatas = actionListDatas;
- }
+ private List<Object> fromZoneDatas;
+ private List<Object> toZoneDatas;
+ private List<Object> sourceListDatas;
+ private List<Object> destinationListDatas;
+ private List<Object> sourceServiceDatas;
+ private List<Object> destinationServiceDatas;
+ private List<Object> actionListDatas;
+ public List<Object> getFromZoneDatas() {
+ return fromZoneDatas;
+ }
+ public void setFromZoneDatas(List<Object> fromZoneDatas) {
+ this.fromZoneDatas = fromZoneDatas;
+ }
+ public List<Object> getToZoneDatas() {
+ return toZoneDatas;
+ }
+ public void setToZoneDatas(List<Object> toZoneDatas) {
+ this.toZoneDatas = toZoneDatas;
+ }
+ public List<Object> getSourceListDatas() {
+ return sourceListDatas;
+ }
+ public void setSourceListDatas(List<Object> sourceListDatas) {
+ this.sourceListDatas = sourceListDatas;
+ }
+ public List<Object> getDestinationListDatas() {
+ return destinationListDatas;
+ }
+ public void setDestinationListDatas(List<Object> destinationListDatas) {
+ this.destinationListDatas = destinationListDatas;
+ }
+ public List<Object> getSourceServiceDatas() {
+ return sourceServiceDatas;
+ }
+ public void setSourceServiceDatas(List<Object> sourceServiceDatas) {
+ this.sourceServiceDatas = sourceServiceDatas;
+ }
+ public List<Object> getDestinationServiceDatas() {
+ return destinationServiceDatas;
+ }
+ public void setDestinationServiceDatas(List<Object> destinationServiceDatas) {
+ this.destinationServiceDatas = destinationServiceDatas;
+ }
+ public List<Object> getActionListDatas() {
+ return actionListDatas;
+ }
+ public void setActionListDatas(List<Object> actionListDatas) {
+ this.actionListDatas = actionListDatas;
+ }
} \ No newline at end of file
diff --git a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/MicroServiceDictionaryController.java b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/MicroServiceDictionaryController.java
index 6acae3fbd..1f1eca5bd 100644
--- a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/MicroServiceDictionaryController.java
+++ b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/MicroServiceDictionaryController.java
@@ -64,10 +64,10 @@ import com.google.gson.Gson;
@Controller
public class MicroServiceDictionaryController {
- private static final Logger LOGGER = FlexLogger.getLogger(MicroServiceDictionaryController.class);
+ private static final Logger LOGGER = FlexLogger.getLogger(MicroServiceDictionaryController.class);
+
+ private static CommonClassDao commonClassDao;
- private static CommonClassDao commonClassDao;
-
private static String successMapKey= "successMapKey";
private static String successMsg = "success";
private static String operation = "operation";
@@ -77,255 +77,255 @@ public class MicroServiceDictionaryController {
private LinkedHashMap<String,MSAttributeObject > classMap;
private List<String> modelList = new ArrayList<>();
private static String apiflag = "apiflag";
- private static String dictionaryFields ="dictionaryFields";
- private static String update = "update";
- private static String duplicateResponseString = "Duplicate";
- private static String microServiceModelsDictionaryDatas = "microServiceModelsDictionaryDatas";
- private static String modelName = "modelName";
- private static String microServiceModelsDictionaryData = "microServiceModelsDictionaryData";
- private static String description = "description";
- private static String version = "version";
- private static String classMapData = "classMap";
- private static String dcaeUUIDDatas = "dcaeUUIDDictionaryDatas";
- private static String microServiceConfigNameDatas = "microServiceConfigNameDictionaryDatas";
- private static String microServiceLocationDatas = "microServiceLocationDictionaryDatas";
- private static String microServiceAttributeDatas = "microServiceAttributeDictionaryDatas";
- private static String microServiceHeaderDefaultDatas = "microServiceHeaderDefaultDatas";
+ private static String dictionaryFields ="dictionaryFields";
+ private static String update = "update";
+ private static String duplicateResponseString = "Duplicate";
+ private static String microServiceModelsDictionaryDatas = "microServiceModelsDictionaryDatas";
+ private static String modelName = "modelName";
+ private static String microServiceModelsDictionaryData = "microServiceModelsDictionaryData";
+ private static String description = "description";
+ private static String version = "version";
+ private static String classMapData = "classMap";
+ private static String dcaeUUIDDatas = "dcaeUUIDDictionaryDatas";
+ private static String microServiceConfigNameDatas = "microServiceConfigNameDictionaryDatas";
+ private static String microServiceLocationDatas = "microServiceLocationDictionaryDatas";
+ private static String microServiceAttributeDatas = "microServiceAttributeDictionaryDatas";
+ private static String microServiceHeaderDefaultDatas = "microServiceHeaderDefaultDatas";
public MicroServiceDictionaryController(){
- super();
+ super();
}
-
+
private DictionaryUtils getDictionaryUtilsInstance(){
- return DictionaryUtils.getDictionaryUtils();
- }
+ return DictionaryUtils.getDictionaryUtils();
+ }
- @Autowired
- public MicroServiceDictionaryController(CommonClassDao commonClassDao){
- MicroServiceDictionaryController.commonClassDao = commonClassDao;
- }
- public static void setCommonClassDao(CommonClassDao commonClassDao) {
- MicroServiceDictionaryController.commonClassDao = commonClassDao;
- }
-
- MSModelUtils utils = new MSModelUtils(XACMLPapServlet.getMsOnapName(), XACMLPapServlet.getMsPolicyName());
-
- private MicroServiceModels newModel;
-
- @RequestMapping(value={"/get_DCAEUUIDDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getDCAEUUIDDictionaryByNameEntityData(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getDataByEntity(response, dcaeUUIDDatas, "name", DCAEuuid.class);
- }
-
- @RequestMapping(value={"/get_DCAEUUIDData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getDCAEUUIDDictionaryEntityData(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getData(response, dcaeUUIDDatas, DCAEuuid.class);
- }
-
- @RequestMapping(value={"/ms_dictionary/save_dcaeUUID"}, method={RequestMethod.POST})
- public ModelAndView saveDCAEUUIDDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
- DictionaryUtils utils = getDictionaryUtilsInstance();
- try {
- boolean fromAPI = utils.isRequestFromAPI(request);
- ObjectMapper mapper = new ObjectMapper();
- mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- JsonNode root = mapper.readTree(request.getReader());
+ @Autowired
+ public MicroServiceDictionaryController(CommonClassDao commonClassDao){
+ MicroServiceDictionaryController.commonClassDao = commonClassDao;
+ }
+ public static void setCommonClassDao(CommonClassDao commonClassDao) {
+ MicroServiceDictionaryController.commonClassDao = commonClassDao;
+ }
+
+ MSModelUtils utils = new MSModelUtils(XACMLPapServlet.getMsOnapName(), XACMLPapServlet.getMsPolicyName());
+
+ private MicroServiceModels newModel;
+
+ @RequestMapping(value={"/get_DCAEUUIDDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getDCAEUUIDDictionaryByNameEntityData(HttpServletResponse response){
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getDataByEntity(response, dcaeUUIDDatas, "name", DCAEuuid.class);
+ }
+
+ @RequestMapping(value={"/get_DCAEUUIDData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getDCAEUUIDDictionaryEntityData(HttpServletResponse response){
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getData(response, dcaeUUIDDatas, DCAEuuid.class);
+ }
+
+ @RequestMapping(value={"/ms_dictionary/save_dcaeUUID"}, method={RequestMethod.POST})
+ public ModelAndView saveDCAEUUIDDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ try {
+ boolean fromAPI = utils.isRequestFromAPI(request);
+ ObjectMapper mapper = new ObjectMapper();
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ JsonNode root = mapper.readTree(request.getReader());
DCAEuuid dCAEuuid;
if(fromAPI){
dCAEuuid = mapper.readValue(root.get(dictionaryFields).toString(), DCAEuuid.class);
}else{
- dCAEuuid = mapper.readValue(root.get("dcaeUUIDDictionaryData").toString(), DCAEuuid.class);
+ dCAEuuid = mapper.readValue(root.get("dcaeUUIDDictionaryData").toString(), DCAEuuid.class);
}
List<Object> duplicateData = commonClassDao.checkDuplicateEntry(dCAEuuid.getName(), "name", DCAEuuid.class);
- boolean duplicateflag = false;
- if(duplicateData != null && !duplicateData.isEmpty()){
- DCAEuuid data = (DCAEuuid) duplicateData.get(0);
- if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
- dCAEuuid.setId(data.getId());
- }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
- (request.getParameter(operation) == null && (data.getId() != dCAEuuid.getId()))){
- duplicateflag = true;
- }
- }
- String responseString = null;
- if(!duplicateflag){
- if(dCAEuuid.getId() == 0){
- commonClassDao.save(dCAEuuid);
- }else{
- commonClassDao.update(dCAEuuid);
- }
- responseString = mapper.writeValueAsString(commonClassDao.getData(DCAEuuid.class));
- }else{
- responseString = duplicateResponseString;
- }
- if(fromAPI){
- return utils.getResultForApi(responseString);
- }else{
- utils.setResponseData(response, dcaeUUIDDatas, responseString);
- }
+ boolean duplicateflag = false;
+ if(duplicateData != null && !duplicateData.isEmpty()){
+ DCAEuuid data = (DCAEuuid) duplicateData.get(0);
+ if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
+ dCAEuuid.setId(data.getId());
+ }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
+ (request.getParameter(operation) == null && (data.getId() != dCAEuuid.getId()))){
+ duplicateflag = true;
+ }
+ }
+ String responseString = null;
+ if(!duplicateflag){
+ if(dCAEuuid.getId() == 0){
+ commonClassDao.save(dCAEuuid);
+ }else{
+ commonClassDao.update(dCAEuuid);
+ }
+ responseString = mapper.writeValueAsString(commonClassDao.getData(DCAEuuid.class));
+ }else{
+ responseString = duplicateResponseString;
+ }
+ if(fromAPI){
+ return utils.getResultForApi(responseString);
+ }else{
+ utils.setResponseData(response, dcaeUUIDDatas, responseString);
+ }
}catch (Exception e){
- utils.setErrorResponseData(response, e);
- }
- return null;
- }
-
- @RequestMapping(value={"/ms_dictionary/remove_dcaeuuid"}, method={RequestMethod.POST})
- public void removeDCAEUUIDDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException {
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.removeData(request, response, dcaeUUIDDatas, DCAEuuid.class);
- }
-
- @RequestMapping(value={"/get_MicroServiceConfigNameDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getMicroServiceConfigNameByNameDictionaryEntityData(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getDataByEntity(response, microServiceConfigNameDatas, "name", MicroServiceConfigName.class);
- }
-
- @RequestMapping(value={"/get_MicroServiceConfigNameData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getMicroServiceConfigNameDictionaryEntityData(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getData(response, microServiceConfigNameDatas, MicroServiceConfigName.class);
- }
-
- @RequestMapping(value={"/ms_dictionary/save_configName"}, method={RequestMethod.POST})
- public ModelAndView saveMicroServiceConfigNameDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
- DictionaryUtils utils = getDictionaryUtilsInstance();
- try {
- boolean fromAPI = utils.isRequestFromAPI(request);
- ObjectMapper mapper = new ObjectMapper();
- mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- JsonNode root = mapper.readTree(request.getReader());
+ utils.setErrorResponseData(response, e);
+ }
+ return null;
+ }
+
+ @RequestMapping(value={"/ms_dictionary/remove_dcaeuuid"}, method={RequestMethod.POST})
+ public void removeDCAEUUIDDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException {
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.removeData(request, response, dcaeUUIDDatas, DCAEuuid.class);
+ }
+
+ @RequestMapping(value={"/get_MicroServiceConfigNameDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getMicroServiceConfigNameByNameDictionaryEntityData(HttpServletResponse response){
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getDataByEntity(response, microServiceConfigNameDatas, "name", MicroServiceConfigName.class);
+ }
+
+ @RequestMapping(value={"/get_MicroServiceConfigNameData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getMicroServiceConfigNameDictionaryEntityData(HttpServletResponse response){
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getData(response, microServiceConfigNameDatas, MicroServiceConfigName.class);
+ }
+
+ @RequestMapping(value={"/ms_dictionary/save_configName"}, method={RequestMethod.POST})
+ public ModelAndView saveMicroServiceConfigNameDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ try {
+ boolean fromAPI = utils.isRequestFromAPI(request);
+ ObjectMapper mapper = new ObjectMapper();
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ JsonNode root = mapper.readTree(request.getReader());
MicroServiceConfigName microServiceConfigName;
if(fromAPI){
microServiceConfigName = mapper.readValue(root.get(dictionaryFields).toString(), MicroServiceConfigName.class);
}else{
- microServiceConfigName = mapper.readValue(root.get("microServiceConfigNameDictionaryData").toString(), MicroServiceConfigName.class);
+ microServiceConfigName = mapper.readValue(root.get("microServiceConfigNameDictionaryData").toString(), MicroServiceConfigName.class);
}
List<Object> duplicateData = commonClassDao.checkDuplicateEntry(microServiceConfigName.getName(), "name", MicroServiceConfigName.class);
- boolean duplicateflag = false;
- if(duplicateData != null && !duplicateData.isEmpty()){
- MicroServiceConfigName data = (MicroServiceConfigName) duplicateData.get(0);
- if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
- microServiceConfigName.setId(data.getId());
- }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
- (request.getParameter(operation) == null && (data.getId() != microServiceConfigName.getId()))){
- duplicateflag = true;
- }
- }
- String responseString = null;
- if(!duplicateflag){
- if(microServiceConfigName.getId() == 0){
- commonClassDao.save(microServiceConfigName);
- }else{
- commonClassDao.update(microServiceConfigName);
- }
- responseString = mapper.writeValueAsString(commonClassDao.getData(MicroServiceConfigName.class));
- }else{
- responseString = duplicateResponseString;
- }
- if(fromAPI){
- return utils.getResultForApi(responseString);
- }else{
- utils.setResponseData(response, microServiceConfigNameDatas, responseString);
- }
+ boolean duplicateflag = false;
+ if(duplicateData != null && !duplicateData.isEmpty()){
+ MicroServiceConfigName data = (MicroServiceConfigName) duplicateData.get(0);
+ if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
+ microServiceConfigName.setId(data.getId());
+ }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
+ (request.getParameter(operation) == null && (data.getId() != microServiceConfigName.getId()))){
+ duplicateflag = true;
+ }
+ }
+ String responseString = null;
+ if(!duplicateflag){
+ if(microServiceConfigName.getId() == 0){
+ commonClassDao.save(microServiceConfigName);
+ }else{
+ commonClassDao.update(microServiceConfigName);
+ }
+ responseString = mapper.writeValueAsString(commonClassDao.getData(MicroServiceConfigName.class));
+ }else{
+ responseString = duplicateResponseString;
+ }
+ if(fromAPI){
+ return utils.getResultForApi(responseString);
+ }else{
+ utils.setResponseData(response, microServiceConfigNameDatas, responseString);
+ }
}catch (Exception e){
- utils.setErrorResponseData(response, e);
- }
- return null;
- }
-
- @RequestMapping(value={"/ms_dictionary/remove_msConfigName"}, method={RequestMethod.POST})
- public void removeMicroServiceConfigNameDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException {
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.removeData(request, response, microServiceConfigNameDatas, MicroServiceConfigName.class);
- }
-
- @RequestMapping(value={"/get_MicroServiceLocationDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getMicroServiceLocationByNameDictionaryEntityData(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getDataByEntity(response, microServiceLocationDatas, "name", MicroServiceLocation.class);
- }
-
- @RequestMapping(value={"/get_MicroServiceLocationData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getMicroServiceLocationDictionaryEntityData(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getData(response, microServiceLocationDatas, MicroServiceLocation.class);
- }
-
- @RequestMapping(value={"/ms_dictionary/save_location"}, method={RequestMethod.POST})
- public ModelAndView saveMicroServiceLocationDictionary(HttpServletRequest request, HttpServletResponse response)throws IOException{
- DictionaryUtils utils = getDictionaryUtilsInstance();
- try {
- boolean fromAPI = utils.isRequestFromAPI(request);
- ObjectMapper mapper = new ObjectMapper();
- mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- JsonNode root = mapper.readTree(request.getReader());
+ utils.setErrorResponseData(response, e);
+ }
+ return null;
+ }
+
+ @RequestMapping(value={"/ms_dictionary/remove_msConfigName"}, method={RequestMethod.POST})
+ public void removeMicroServiceConfigNameDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException {
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.removeData(request, response, microServiceConfigNameDatas, MicroServiceConfigName.class);
+ }
+
+ @RequestMapping(value={"/get_MicroServiceLocationDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getMicroServiceLocationByNameDictionaryEntityData(HttpServletResponse response){
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getDataByEntity(response, microServiceLocationDatas, "name", MicroServiceLocation.class);
+ }
+
+ @RequestMapping(value={"/get_MicroServiceLocationData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getMicroServiceLocationDictionaryEntityData(HttpServletResponse response){
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getData(response, microServiceLocationDatas, MicroServiceLocation.class);
+ }
+
+ @RequestMapping(value={"/ms_dictionary/save_location"}, method={RequestMethod.POST})
+ public ModelAndView saveMicroServiceLocationDictionary(HttpServletRequest request, HttpServletResponse response)throws IOException{
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ try {
+ boolean fromAPI = utils.isRequestFromAPI(request);
+ ObjectMapper mapper = new ObjectMapper();
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ JsonNode root = mapper.readTree(request.getReader());
MicroServiceLocation microServiceLocation;
if(fromAPI){
microServiceLocation = mapper.readValue(root.get(dictionaryFields).toString(), MicroServiceLocation.class);
}else{
- microServiceLocation = mapper.readValue(root.get("microServiceLocationDictionaryData").toString(), MicroServiceLocation.class);
+ microServiceLocation = mapper.readValue(root.get("microServiceLocationDictionaryData").toString(), MicroServiceLocation.class);
}
List<Object> duplicateData = commonClassDao.checkDuplicateEntry(microServiceLocation.getName(), "name", MicroServiceLocation.class);
- boolean duplicateflag = false;
- if(duplicateData != null && !duplicateData.isEmpty()){
- MicroServiceLocation data = (MicroServiceLocation) duplicateData.get(0);
- if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
- microServiceLocation.setId(data.getId());
- }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
- (request.getParameter(operation) == null && (data.getId() != microServiceLocation.getId()))){
- duplicateflag = true;
- }
- }
- String responseString = null;
- if(!duplicateflag){
- if(microServiceLocation.getId() == 0){
- commonClassDao.save(microServiceLocation);
- }else{
- commonClassDao.update(microServiceLocation);
- }
- responseString = mapper.writeValueAsString(commonClassDao.getData(MicroServiceLocation.class));
- }else{
- responseString = duplicateResponseString;
- }
- if(fromAPI){
- return utils.getResultForApi(responseString);
- }else{
- utils.setResponseData(response, microServiceLocationDatas, responseString);
- }
- }catch (Exception e){
- utils.setErrorResponseData(response, e);
- }
- return null;
- }
-
- @RequestMapping(value={"/ms_dictionary/remove_msLocation"}, method={RequestMethod.POST})
- public void removeMicroServiceLocationDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException {
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.removeData(request, response, microServiceLocationDatas, MicroServiceLocation.class);
- }
-
+ boolean duplicateflag = false;
+ if(duplicateData != null && !duplicateData.isEmpty()){
+ MicroServiceLocation data = (MicroServiceLocation) duplicateData.get(0);
+ if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
+ microServiceLocation.setId(data.getId());
+ }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
+ (request.getParameter(operation) == null && (data.getId() != microServiceLocation.getId()))){
+ duplicateflag = true;
+ }
+ }
+ String responseString = null;
+ if(!duplicateflag){
+ if(microServiceLocation.getId() == 0){
+ commonClassDao.save(microServiceLocation);
+ }else{
+ commonClassDao.update(microServiceLocation);
+ }
+ responseString = mapper.writeValueAsString(commonClassDao.getData(MicroServiceLocation.class));
+ }else{
+ responseString = duplicateResponseString;
+ }
+ if(fromAPI){
+ return utils.getResultForApi(responseString);
+ }else{
+ utils.setResponseData(response, microServiceLocationDatas, responseString);
+ }
+ }catch (Exception e){
+ utils.setErrorResponseData(response, e);
+ }
+ return null;
+ }
+
+ @RequestMapping(value={"/ms_dictionary/remove_msLocation"}, method={RequestMethod.POST})
+ public void removeMicroServiceLocationDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException {
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.removeData(request, response, microServiceLocationDatas, MicroServiceLocation.class);
+ }
+
@RequestMapping(value={"/get_MicroServiceAttributeDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
public void getMicroServiceAttributeByNameDictionaryEntityData(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getDataByEntity(response, microServiceAttributeDatas, "name", MicroServiceAttribute.class);
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getDataByEntity(response, microServiceAttributeDatas, "name", MicroServiceAttribute.class);
}
@RequestMapping(value={"/get_MicroServiceAttributeData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
public void getMicroServiceAttributeDictionaryEntityData(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getData(response, microServiceAttributeDatas, MicroServiceAttribute.class);
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getData(response, microServiceAttributeDatas, MicroServiceAttribute.class);
}
@RequestMapping(value={"/ms_dictionary/save_modelAttribute"}, method={RequestMethod.POST})
public ModelAndView saveMicroServiceAttributeDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
- DictionaryUtils utils = getDictionaryUtilsInstance();
+ DictionaryUtils utils = getDictionaryUtilsInstance();
try {
- boolean fromAPI = utils.isRequestFromAPI(request);
+ boolean fromAPI = utils.isRequestFromAPI(request);
ObjectMapper mapper = new ObjectMapper();
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
JsonNode root = mapper.readTree(request.getReader());
@@ -339,52 +339,52 @@ public class MicroServiceDictionaryController {
}
checkValue = microServiceAttribute.getName() + ":" + microServiceAttribute.getValue() + ":" + microServiceAttribute.getModelName();
List<Object> duplicateData = commonClassDao.checkDuplicateEntry(checkValue, "name:value:modelName", MicroServiceAttribute.class);
- boolean duplicateflag = false;
- if(duplicateData != null && !duplicateData.isEmpty()){
- MicroServiceAttribute data = (MicroServiceAttribute) duplicateData.get(0);
- if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
- microServiceAttribute.setId(data.getId());
- }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
- (request.getParameter(operation) == null && (data.getId() != microServiceAttribute.getId()))){
- duplicateflag = true;
- }
- }
- String responseString = null;
- if(!duplicateflag){
- if(microServiceAttribute.getId() == 0){
- commonClassDao.save(microServiceAttribute);
- }else{
- commonClassDao.update(microServiceAttribute);
- }
- responseString = mapper.writeValueAsString(commonClassDao.getData(MicroServiceAttribute.class));
- }else{
- responseString = duplicateResponseString;
- }
- if(fromAPI){
- return utils.getResultForApi(responseString);
- }else{
- utils.setResponseData(response, microServiceAttributeDatas, responseString);
- }
+ boolean duplicateflag = false;
+ if(duplicateData != null && !duplicateData.isEmpty()){
+ MicroServiceAttribute data = (MicroServiceAttribute) duplicateData.get(0);
+ if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
+ microServiceAttribute.setId(data.getId());
+ }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
+ (request.getParameter(operation) == null && (data.getId() != microServiceAttribute.getId()))){
+ duplicateflag = true;
+ }
+ }
+ String responseString = null;
+ if(!duplicateflag){
+ if(microServiceAttribute.getId() == 0){
+ commonClassDao.save(microServiceAttribute);
+ }else{
+ commonClassDao.update(microServiceAttribute);
+ }
+ responseString = mapper.writeValueAsString(commonClassDao.getData(MicroServiceAttribute.class));
+ }else{
+ responseString = duplicateResponseString;
+ }
+ if(fromAPI){
+ return utils.getResultForApi(responseString);
+ }else{
+ utils.setResponseData(response, microServiceAttributeDatas, responseString);
+ }
}
catch (Exception e){
- utils.setErrorResponseData(response, e);
+ utils.setErrorResponseData(response, e);
}
return null;
}
@RequestMapping(value={"/ms_dictionary/remove_modelAttribute"}, method={RequestMethod.POST})
public void removeMicroServiceAttributeDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.removeData(request, response, microServiceAttributeDatas, MicroServiceAttribute.class);
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.removeData(request, response, microServiceAttributeDatas, MicroServiceAttribute.class);
}
-
- @RequestMapping(value={"/get_MicroServiceModelsDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getMicroServiceModelsDictionaryByNameEntityData(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getDataByEntity(response, microServiceModelsDictionaryDatas, modelName, MicroServiceModels.class);
- }
-
+
+ @RequestMapping(value={"/get_MicroServiceModelsDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getMicroServiceModelsDictionaryByNameEntityData(HttpServletResponse response){
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getDataByEntity(response, microServiceModelsDictionaryDatas, modelName, MicroServiceModels.class);
+ }
+
@RequestMapping(value={"/get_MicroServiceModelsDataByVersion"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
public void getMicroServiceModelsDictionaryByVersionEntityData(HttpServletRequest request, HttpServletResponse response){
try{
@@ -409,12 +409,12 @@ public class MicroServiceDictionaryController {
}
}
- @RequestMapping(value={"/get_MicroServiceModelsData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getMicroServiceModelsDictionaryEntityData(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getData(response, microServiceModelsDictionaryDatas, MicroServiceModels.class);
- }
-
+ @RequestMapping(value={"/get_MicroServiceModelsData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getMicroServiceModelsDictionaryEntityData(HttpServletResponse response){
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getData(response, microServiceModelsDictionaryDatas, MicroServiceModels.class);
+ }
+
@RequestMapping(value={"/get_MicroServiceModelsDataServiceVersion"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
public void getMicroServiceModelsDictionaryEntityDataServiceVersion(HttpServletResponse response){
try{
@@ -423,9 +423,9 @@ public class MicroServiceDictionaryController {
List<String> data = new ArrayList<>();
List<Object> datas = commonClassDao.getData(MicroServiceModels.class);
for(int i = 0; i < datas.size(); i++){
- MicroServiceModels msmodel = (MicroServiceModels) datas.get(i);
+ MicroServiceModels msmodel = (MicroServiceModels) datas.get(i);
if (!data.contains(msmodel.getModelName())){
- data.add(msmodel.getModelName() + "-v" + msmodel.getVersion());
+ data.add(msmodel.getModelName() + "-v" + msmodel.getVersion());
}
}
model.put(microServiceModelsDictionaryDatas, mapper.writeValueAsString(data));
@@ -463,287 +463,287 @@ public class MicroServiceDictionaryController {
}
}
- @RequestMapping(value={"/ms_dictionary/save_model"}, method={RequestMethod.POST})
- public ModelAndView saveMicroServiceModelsDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
- DictionaryUtils utils = getDictionaryUtilsInstance();
- try {
- this.newModel = new MicroServiceModels();
- boolean fromAPI = utils.isRequestFromAPI(request);
- ObjectMapper mapper = new ObjectMapper();
- mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- JsonNode root = mapper.readTree(request.getReader());
- MicroServiceModels microServiceModels = new MicroServiceModels();
- String userId = null;
-
- String dataOrderInfo = null;
- if(root.has("dataOrderInfo")){
- dataOrderInfo = root.get("dataOrderInfo").toString();
- }
-
- if(root.has("modelType")){
- JsonNode dataType = root.get("modelType");
- String modelType= dataType.toString();
- if(modelType.contains("yml")){
- if (root.has(microServiceModelsDictionaryData)){
- if (root.get(microServiceModelsDictionaryData).has(description)){
- microServiceModels.setDescription(root.get(microServiceModelsDictionaryData).get(description).asText().replace("\"", ""));
- }
- if (root.get(microServiceModelsDictionaryData).has(modelName)){
- microServiceModels.setModelName(root.get(microServiceModelsDictionaryData).get(modelName).asText().replace("\"", ""));
- this.newModel.setModelName(microServiceModels.getModelName());
- }
- if (root.get(microServiceModelsDictionaryData).has(version)){
- microServiceModels.setVersion(root.get(microServiceModelsDictionaryData).get(version).asText().replace("\"", ""));
- this.newModel.setVersion(microServiceModels.getVersion());
- }
- }
-
- classMap = new LinkedHashMap<>();
- JsonNode data = root.get(classMapData);
- ObjectMapper mapper1 = new ObjectMapper();
- String data1 = data.toString().substring(1, data.toString().length()-1);
- data1 = data1.replace("\\", "");
- data1=data1.replace("\"{","{");
- data1=data1.replace("}\"","}");
- JSONObject jsonObject = new JSONObject(data1);
- Set<String> keys = jsonObject.keySet();
- for(String key : keys){
- String value = jsonObject.get(key).toString();
- MSAttributeObject msAttributeObject = mapper1.readValue(value, MSAttributeObject.class);
- classMap.put(key, msAttributeObject);
- }
-
- userId = root.get("userid").textValue();
- MSAttributeObject mainClass = classMap.get(this.newModel.getModelName());
- this.newModel.setDependency("[]");
- String value = new Gson().toJson(mainClass.getSubClass());
- this.newModel.setSub_attributes(value);
- String attributes= mainClass.getAttribute().toString().replace("{", "").replace("}", "");
- int equalsIndexForAttributes= attributes.indexOf('=');
- String atttributesAfterFirstEquals= attributes.substring(equalsIndexForAttributes+1);
- this.newModel.setAttributes(atttributesAfterFirstEquals);
- String refAttributes= mainClass.getRefAttribute().toString().replace("{", "").replace("}", "");
- int equalsIndex= refAttributes.indexOf("=");
- String refAttributesAfterFirstEquals= refAttributes.substring(equalsIndex+1);
- this.newModel.setRef_attributes(refAttributesAfterFirstEquals);
- this.newModel.setEnumValues(mainClass.getEnumType().toString().replace("{", "").replace("}", ""));
- this.newModel.setAnnotation(mainClass.getMatchingSet().toString().replace("{", "").replace("}", ""));
-
- }else{
- if (fromAPI) {
- microServiceModels = mapper.readValue(root.get(dictionaryFields).toString(), MicroServiceModels.class);
- userId = "API";
- } else {
- if (root.has(microServiceModelsDictionaryData)){
- if (root.get(microServiceModelsDictionaryData).has(description)){
- microServiceModels.setDescription(root.get(microServiceModelsDictionaryData).get(description).asText().replace("\"", ""));
- }
- if (root.get(microServiceModelsDictionaryData).has(modelName)){
- microServiceModels.setModelName(root.get(microServiceModelsDictionaryData).get(modelName).asText().replace("\"", ""));
- this.newModel.setModelName(microServiceModels.getModelName());
- }
- if (root.get(microServiceModelsDictionaryData).has(version)){
- microServiceModels.setVersion(root.get(microServiceModelsDictionaryData).get(version).asText().replace("\"", ""));
- this.newModel.setVersion(microServiceModels.getVersion());
- }
- }
- if(root.has(classMapData)){
- classMap = new LinkedHashMap<>();
- JsonNode data = root.get(classMapData);
- ObjectMapper mapper1 = new ObjectMapper();
- String data1 = data.toString().substring(1, data.toString().length()-1);
- data1 = data1.replace("\\", "");
- JSONObject jsonObject = new JSONObject(data1);
- Set<String> keys = jsonObject.keySet();
- for(String key : keys){
- String value = jsonObject.get(key).toString();
- MSAttributeObject msAttributeObject = mapper1.readValue(value, MSAttributeObject.class);
- classMap.put(key, msAttributeObject);
- }
- }
- userId = root.get("userid").textValue();
- addValuesToNewModel(classMap);
- }
- }
- }
- microServiceModels.setAttributes(this.newModel.getAttributes());
- microServiceModels.setRef_attributes(this.newModel.getRef_attributes());
- microServiceModels.setDependency(this.newModel.getDependency());
- microServiceModels.setModelName(this.newModel.getModelName());
- microServiceModels.setSub_attributes(this.newModel.getSub_attributes());
- microServiceModels.setVersion(this.newModel.getVersion());
- microServiceModels.setEnumValues(this.newModel.getEnumValues());
- microServiceModels.setAnnotation(this.newModel.getAnnotation());
- if(dataOrderInfo != null){
- microServiceModels.setDataOrderInfo(dataOrderInfo);
- }
- String checkName = microServiceModels.getModelName() + ":" + microServiceModels.getVersion();
- List<Object> duplicateData = commonClassDao.checkDuplicateEntry(checkName, "modelName:version", MicroServiceModels.class);
- boolean duplicateflag = false;
- if(duplicateData != null && !duplicateData.isEmpty()){
- MicroServiceModels data = (MicroServiceModels) duplicateData.get(0);
- if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
- microServiceModels.setId(data.getId());
- }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
- (request.getParameter(operation) == null && (data.getId() != microServiceModels.getId()))){
- duplicateflag = true;
- }
- }
- UserInfo userInfo = utils.getUserInfo(userId);
-
- String responseString = null;
- if(!duplicateflag){
- microServiceModels.setUserCreatedBy(userInfo);
- if(microServiceModels.getId() == 0){
- commonClassDao.save(microServiceModels);
- }else{
- commonClassDao.update(microServiceModels);
- }
- responseString = mapper.writeValueAsString(commonClassDao.getData(PrefixList.class));
- }else{
- responseString = duplicateResponseString;
- }
- if(fromAPI){
- return utils.getResultForApi(responseString);
- }else{
- utils.setResponseData(response, microServiceModelsDictionaryDatas, responseString);
- }
- }catch (Exception e){
- utils.setErrorResponseData(response, e);
- }
- return null;
- }
-
- @RequestMapping(value={"/ms_dictionary/remove_msModel"}, method={RequestMethod.POST})
- public void removeMicroServiceModelsDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException {
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.removeData(request, response, microServiceModelsDictionaryDatas, MicroServiceModels.class);
- }
-
- private void addValuesToNewModel(HashMap<String,MSAttributeObject > classMap) {
- //Loop through the classmap and pull out the required info for the new file.
- String subAttribute = null;
-
- MSAttributeObject mainClass = classMap.get(this.newModel.getModelName());
-
- if (mainClass !=null){
- String dependTemp = StringUtils.replaceEach(mainClass.getDependency(), new String[]{"[", "]", " "}, new String[]{"", "", ""});
- ArrayList<String> dependency = new ArrayList<>(Arrays.asList(dependTemp.split(",")));
- dependency = getFullDependencyList(dependency);
- for (String element : dependency){
- MSAttributeObject temp = classMap.get(element);
- if (temp!=null){
- mainClass.addAllRefAttribute(temp.getRefAttribute());
- mainClass.addAllAttribute(temp.getAttribute());
- }
- }
- subAttribute = utils.createSubAttributes(dependency, classMap, this.newModel.getModelName());
- }else{
- subAttribute = "{}";
- this.newModel.setDependency("");
- }
-
- if (mainClass != null && mainClass.getDependency()==null){
- mainClass.setDependency("");
- }
- if(mainClass != null){
- this.newModel.setDependency(mainClass.getDependency());
- this.newModel.setSub_attributes(subAttribute);
- this.newModel.setAttributes(mainClass.getAttribute().toString().replace("{", "").replace("}", ""));
- this.newModel.setRef_attributes(mainClass.getRefAttribute().toString().replace("{", "").replace("}", ""));
- this.newModel.setEnumValues(mainClass.getEnumType().toString().replace("{", "").replace("}", ""));
- this.newModel.setAnnotation(mainClass.getMatchingSet().toString().replace("{", "").replace("}", ""));
- }
- }
-
- private ArrayList<String> getFullDependencyList(ArrayList<String> dependency) {
- ArrayList<String> returnList = new ArrayList<>();
- ArrayList<String> workingList = new ArrayList<>();
- returnList.addAll(dependency);
- for (String element : dependency ){
- if (classMap.containsKey(element)){
- MSAttributeObject value = classMap.get(element);
- String rawValue = StringUtils.replaceEach(value.getDependency(), new String[]{"[", "]"}, new String[]{"", ""});
- workingList = new ArrayList<>(Arrays.asList(rawValue.split(",")));
- for(String depend : workingList){
- if (!returnList.contains(depend) && !depend.isEmpty()){
- returnList.add(depend.trim());
- //getFullDepedency(workingList)
- }
- }
- }
- }
-
- return returnList;
- }
-
- @RequestMapping(value={"/get_MicroServiceHeaderDefaultsDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getMicroServiceHeaderDefaultsEntityDataByName(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getDataByEntity(response, microServiceHeaderDefaultDatas, "modelName", MicroserviceHeaderdeFaults.class);
- }
-
+ @RequestMapping(value={"/ms_dictionary/save_model"}, method={RequestMethod.POST})
+ public ModelAndView saveMicroServiceModelsDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ try {
+ this.newModel = new MicroServiceModels();
+ boolean fromAPI = utils.isRequestFromAPI(request);
+ ObjectMapper mapper = new ObjectMapper();
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ JsonNode root = mapper.readTree(request.getReader());
+ MicroServiceModels microServiceModels = new MicroServiceModels();
+ String userId = null;
+
+ String dataOrderInfo = null;
+ if(root.has("dataOrderInfo")){
+ dataOrderInfo = root.get("dataOrderInfo").toString();
+ }
+
+ if(root.has("modelType")){
+ JsonNode dataType = root.get("modelType");
+ String modelType= dataType.toString();
+ if(modelType.contains("yml")){
+ if (root.has(microServiceModelsDictionaryData)){
+ if (root.get(microServiceModelsDictionaryData).has(description)){
+ microServiceModels.setDescription(root.get(microServiceModelsDictionaryData).get(description).asText().replace("\"", ""));
+ }
+ if (root.get(microServiceModelsDictionaryData).has(modelName)){
+ microServiceModels.setModelName(root.get(microServiceModelsDictionaryData).get(modelName).asText().replace("\"", ""));
+ this.newModel.setModelName(microServiceModels.getModelName());
+ }
+ if (root.get(microServiceModelsDictionaryData).has(version)){
+ microServiceModels.setVersion(root.get(microServiceModelsDictionaryData).get(version).asText().replace("\"", ""));
+ this.newModel.setVersion(microServiceModels.getVersion());
+ }
+ }
+
+ classMap = new LinkedHashMap<>();
+ JsonNode data = root.get(classMapData);
+ ObjectMapper mapper1 = new ObjectMapper();
+ String data1 = data.toString().substring(1, data.toString().length()-1);
+ data1 = data1.replace("\\", "");
+ data1=data1.replace("\"{","{");
+ data1=data1.replace("}\"","}");
+ JSONObject jsonObject = new JSONObject(data1);
+ Set<String> keys = jsonObject.keySet();
+ for(String key : keys){
+ String value = jsonObject.get(key).toString();
+ MSAttributeObject msAttributeObject = mapper1.readValue(value, MSAttributeObject.class);
+ classMap.put(key, msAttributeObject);
+ }
+
+ userId = root.get("userid").textValue();
+ MSAttributeObject mainClass = classMap.get(this.newModel.getModelName());
+ this.newModel.setDependency("[]");
+ String value = new Gson().toJson(mainClass.getSubClass());
+ this.newModel.setSub_attributes(value);
+ String attributes= mainClass.getAttribute().toString().replace("{", "").replace("}", "");
+ int equalsIndexForAttributes= attributes.indexOf('=');
+ String atttributesAfterFirstEquals= attributes.substring(equalsIndexForAttributes+1);
+ this.newModel.setAttributes(atttributesAfterFirstEquals);
+ String refAttributes= mainClass.getRefAttribute().toString().replace("{", "").replace("}", "");
+ int equalsIndex= refAttributes.indexOf("=");
+ String refAttributesAfterFirstEquals= refAttributes.substring(equalsIndex+1);
+ this.newModel.setRef_attributes(refAttributesAfterFirstEquals);
+ this.newModel.setEnumValues(mainClass.getEnumType().toString().replace("{", "").replace("}", ""));
+ this.newModel.setAnnotation(mainClass.getMatchingSet().toString().replace("{", "").replace("}", ""));
+
+ }else{
+ if (fromAPI) {
+ microServiceModels = mapper.readValue(root.get(dictionaryFields).toString(), MicroServiceModels.class);
+ userId = "API";
+ } else {
+ if (root.has(microServiceModelsDictionaryData)){
+ if (root.get(microServiceModelsDictionaryData).has(description)){
+ microServiceModels.setDescription(root.get(microServiceModelsDictionaryData).get(description).asText().replace("\"", ""));
+ }
+ if (root.get(microServiceModelsDictionaryData).has(modelName)){
+ microServiceModels.setModelName(root.get(microServiceModelsDictionaryData).get(modelName).asText().replace("\"", ""));
+ this.newModel.setModelName(microServiceModels.getModelName());
+ }
+ if (root.get(microServiceModelsDictionaryData).has(version)){
+ microServiceModels.setVersion(root.get(microServiceModelsDictionaryData).get(version).asText().replace("\"", ""));
+ this.newModel.setVersion(microServiceModels.getVersion());
+ }
+ }
+ if(root.has(classMapData)){
+ classMap = new LinkedHashMap<>();
+ JsonNode data = root.get(classMapData);
+ ObjectMapper mapper1 = new ObjectMapper();
+ String data1 = data.toString().substring(1, data.toString().length()-1);
+ data1 = data1.replace("\\", "");
+ JSONObject jsonObject = new JSONObject(data1);
+ Set<String> keys = jsonObject.keySet();
+ for(String key : keys){
+ String value = jsonObject.get(key).toString();
+ MSAttributeObject msAttributeObject = mapper1.readValue(value, MSAttributeObject.class);
+ classMap.put(key, msAttributeObject);
+ }
+ }
+ userId = root.get("userid").textValue();
+ addValuesToNewModel(classMap);
+ }
+ }
+ }
+ microServiceModels.setAttributes(this.newModel.getAttributes());
+ microServiceModels.setRef_attributes(this.newModel.getRef_attributes());
+ microServiceModels.setDependency(this.newModel.getDependency());
+ microServiceModels.setModelName(this.newModel.getModelName());
+ microServiceModels.setSub_attributes(this.newModel.getSub_attributes());
+ microServiceModels.setVersion(this.newModel.getVersion());
+ microServiceModels.setEnumValues(this.newModel.getEnumValues());
+ microServiceModels.setAnnotation(this.newModel.getAnnotation());
+ if(dataOrderInfo != null){
+ microServiceModels.setDataOrderInfo(dataOrderInfo);
+ }
+ String checkName = microServiceModels.getModelName() + ":" + microServiceModels.getVersion();
+ List<Object> duplicateData = commonClassDao.checkDuplicateEntry(checkName, "modelName:version", MicroServiceModels.class);
+ boolean duplicateflag = false;
+ if(duplicateData != null && !duplicateData.isEmpty()){
+ MicroServiceModels data = (MicroServiceModels) duplicateData.get(0);
+ if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
+ microServiceModels.setId(data.getId());
+ }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
+ (request.getParameter(operation) == null && (data.getId() != microServiceModels.getId()))){
+ duplicateflag = true;
+ }
+ }
+ UserInfo userInfo = utils.getUserInfo(userId);
+
+ String responseString = null;
+ if(!duplicateflag){
+ microServiceModels.setUserCreatedBy(userInfo);
+ if(microServiceModels.getId() == 0){
+ commonClassDao.save(microServiceModels);
+ }else{
+ commonClassDao.update(microServiceModels);
+ }
+ responseString = mapper.writeValueAsString(commonClassDao.getData(PrefixList.class));
+ }else{
+ responseString = duplicateResponseString;
+ }
+ if(fromAPI){
+ return utils.getResultForApi(responseString);
+ }else{
+ utils.setResponseData(response, microServiceModelsDictionaryDatas, responseString);
+ }
+ }catch (Exception e){
+ utils.setErrorResponseData(response, e);
+ }
+ return null;
+ }
+
+ @RequestMapping(value={"/ms_dictionary/remove_msModel"}, method={RequestMethod.POST})
+ public void removeMicroServiceModelsDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException {
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.removeData(request, response, microServiceModelsDictionaryDatas, MicroServiceModels.class);
+ }
+
+ private void addValuesToNewModel(HashMap<String,MSAttributeObject > classMap) {
+ //Loop through the classmap and pull out the required info for the new file.
+ String subAttribute = null;
+
+ MSAttributeObject mainClass = classMap.get(this.newModel.getModelName());
+
+ if (mainClass !=null){
+ String dependTemp = StringUtils.replaceEach(mainClass.getDependency(), new String[]{"[", "]", " "}, new String[]{"", "", ""});
+ ArrayList<String> dependency = new ArrayList<>(Arrays.asList(dependTemp.split(",")));
+ dependency = getFullDependencyList(dependency);
+ for (String element : dependency){
+ MSAttributeObject temp = classMap.get(element);
+ if (temp!=null){
+ mainClass.addAllRefAttribute(temp.getRefAttribute());
+ mainClass.addAllAttribute(temp.getAttribute());
+ }
+ }
+ subAttribute = utils.createSubAttributes(dependency, classMap, this.newModel.getModelName());
+ }else{
+ subAttribute = "{}";
+ this.newModel.setDependency("");
+ }
+
+ if (mainClass != null && mainClass.getDependency()==null){
+ mainClass.setDependency("");
+ }
+ if(mainClass != null){
+ this.newModel.setDependency(mainClass.getDependency());
+ this.newModel.setSub_attributes(subAttribute);
+ this.newModel.setAttributes(mainClass.getAttribute().toString().replace("{", "").replace("}", ""));
+ this.newModel.setRef_attributes(mainClass.getRefAttribute().toString().replace("{", "").replace("}", ""));
+ this.newModel.setEnumValues(mainClass.getEnumType().toString().replace("{", "").replace("}", ""));
+ this.newModel.setAnnotation(mainClass.getMatchingSet().toString().replace("{", "").replace("}", ""));
+ }
+ }
+
+ private ArrayList<String> getFullDependencyList(ArrayList<String> dependency) {
+ ArrayList<String> returnList = new ArrayList<>();
+ ArrayList<String> workingList = new ArrayList<>();
+ returnList.addAll(dependency);
+ for (String element : dependency ){
+ if (classMap.containsKey(element)){
+ MSAttributeObject value = classMap.get(element);
+ String rawValue = StringUtils.replaceEach(value.getDependency(), new String[]{"[", "]"}, new String[]{"", ""});
+ workingList = new ArrayList<>(Arrays.asList(rawValue.split(",")));
+ for(String depend : workingList){
+ if (!returnList.contains(depend) && !depend.isEmpty()){
+ returnList.add(depend.trim());
+ //getFullDepedency(workingList)
+ }
+ }
+ }
+ }
+
+ return returnList;
+ }
+
+ @RequestMapping(value={"/get_MicroServiceHeaderDefaultsDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getMicroServiceHeaderDefaultsEntityDataByName(HttpServletResponse response){
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getDataByEntity(response, microServiceHeaderDefaultDatas, "modelName", MicroserviceHeaderdeFaults.class);
+ }
+
@RequestMapping(value={"/get_MicroServiceHeaderDefaultsData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
public void getMicroServiceHeaderDefaultsEntityData(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getData(response, microServiceHeaderDefaultDatas, MicroserviceHeaderdeFaults.class);
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getData(response, microServiceHeaderDefaultDatas, MicroserviceHeaderdeFaults.class);
}
@RequestMapping(value={"/ms_dictionary/save_headerDefaults"}, method={RequestMethod.POST})
public ModelAndView saveMicroServiceHeaderDefaultValues(HttpServletRequest request, HttpServletResponse response) throws IOException{
- DictionaryUtils utils = getDictionaryUtilsInstance();
+ DictionaryUtils utils = getDictionaryUtilsInstance();
try {
- boolean fromAPI = utils.isRequestFromAPI(request);
- ObjectMapper mapper = new ObjectMapper();
- mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- JsonNode root = mapper.readTree(request.getReader());
+ boolean fromAPI = utils.isRequestFromAPI(request);
+ ObjectMapper mapper = new ObjectMapper();
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ JsonNode root = mapper.readTree(request.getReader());
MicroserviceHeaderdeFaults msHeaderdeFaults;
if(fromAPI){
- msHeaderdeFaults = mapper.readValue(root.get(dictionaryFields).toString(), MicroserviceHeaderdeFaults.class);
+ msHeaderdeFaults = mapper.readValue(root.get(dictionaryFields).toString(), MicroserviceHeaderdeFaults.class);
}else{
- msHeaderdeFaults = mapper.readValue(root.get("modelAttributeDictionaryData").toString(), MicroserviceHeaderdeFaults.class);
+ msHeaderdeFaults = mapper.readValue(root.get("modelAttributeDictionaryData").toString(), MicroserviceHeaderdeFaults.class);
}
List<Object> duplicateData = commonClassDao.checkDuplicateEntry(msHeaderdeFaults.getModelName(), "modelName", MicroserviceHeaderdeFaults.class);
- boolean duplicateflag = false;
- if(duplicateData != null && !duplicateData.isEmpty()){
- MicroserviceHeaderdeFaults data = (MicroserviceHeaderdeFaults) duplicateData.get(0);
- if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
- msHeaderdeFaults.setId(data.getId());
- }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
- (request.getParameter(operation) == null && (data.getId() != msHeaderdeFaults.getId()))){
- duplicateflag = true;
- }
- }
+ boolean duplicateflag = false;
+ if(duplicateData != null && !duplicateData.isEmpty()){
+ MicroserviceHeaderdeFaults data = (MicroserviceHeaderdeFaults) duplicateData.get(0);
+ if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
+ msHeaderdeFaults.setId(data.getId());
+ }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
+ (request.getParameter(operation) == null && (data.getId() != msHeaderdeFaults.getId()))){
+ duplicateflag = true;
+ }
+ }
- String responseString = null;
- if(!duplicateflag){
- if(msHeaderdeFaults.getId() == 0){
- commonClassDao.save(msHeaderdeFaults);
- }else{
- commonClassDao.update(msHeaderdeFaults);
- }
- responseString = mapper.writeValueAsString(commonClassDao.getData(MicroserviceHeaderdeFaults.class));
- }else{
- responseString = duplicateResponseString;
- }
- if(fromAPI){
- return utils.getResultForApi(responseString);
- }else{
- utils.setResponseData(response, microServiceHeaderDefaultDatas, responseString);
- }
+ String responseString = null;
+ if(!duplicateflag){
+ if(msHeaderdeFaults.getId() == 0){
+ commonClassDao.save(msHeaderdeFaults);
+ }else{
+ commonClassDao.update(msHeaderdeFaults);
+ }
+ responseString = mapper.writeValueAsString(commonClassDao.getData(MicroserviceHeaderdeFaults.class));
+ }else{
+ responseString = duplicateResponseString;
+ }
+ if(fromAPI){
+ return utils.getResultForApi(responseString);
+ }else{
+ utils.setResponseData(response, microServiceHeaderDefaultDatas, responseString);
+ }
}
catch (Exception e){
- utils.setErrorResponseData(response, e);
+ utils.setErrorResponseData(response, e);
}
return null;
}
@RequestMapping(value={"/ms_dictionary/remove_headerDefaults"}, method={RequestMethod.POST})
public void removeMicroServiceHeaderDefaults(HttpServletRequest request, HttpServletResponse response) throws IOException{
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.removeData(request, response, microServiceHeaderDefaultDatas, MicroserviceHeaderdeFaults.class);
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.removeData(request, response, microServiceHeaderDefaultDatas, MicroserviceHeaderdeFaults.class);
}
} \ No newline at end of file
diff --git a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/OptimizationDictionaryController.java b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/OptimizationDictionaryController.java
index acb5a2afe..3d1dba905 100644
--- a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/OptimizationDictionaryController.java
+++ b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/OptimizationDictionaryController.java
@@ -53,266 +53,266 @@ import com.google.gson.Gson;
@Controller
public class OptimizationDictionaryController {
- private static CommonClassDao commonClassDao;
-
+ private static CommonClassDao commonClassDao;
+
private static String operation = "operation";
private LinkedHashMap<String,MSAttributeObject > classMap;
- private static String dictionaryFields ="dictionaryFields";
- private static String duplicateResponseString = "Duplicate";
- private static String optimizationModelsDictionaryDatas = "optimizationModelsDictionaryDatas";
- private static String modelName = "modelName";
- private static String optimizationModelsDictionaryData = "optimizationModelsDictionaryData";
- private static String description = "description";
- private static String version = "version";
- private static String classMapData = "classMap";
- private static final String UPDATE = "update";
+ private static String dictionaryFields ="dictionaryFields";
+ private static String duplicateResponseString = "Duplicate";
+ private static String optimizationModelsDictionaryDatas = "optimizationModelsDictionaryDatas";
+ private static String modelName = "modelName";
+ private static String optimizationModelsDictionaryData = "optimizationModelsDictionaryData";
+ private static String description = "description";
+ private static String version = "version";
+ private static String classMapData = "classMap";
+ private static final String UPDATE = "update";
public OptimizationDictionaryController(){
- super();
+ super();
}
-
+
private DictionaryUtils getDictionaryUtilsInstance(){
- return DictionaryUtils.getDictionaryUtils();
- }
+ return DictionaryUtils.getDictionaryUtils();
+ }
- @Autowired
- public OptimizationDictionaryController(CommonClassDao commonClassDao){
- setCommonClassDao(commonClassDao);
- }
- public static void setCommonClassDao(CommonClassDao commonClassDao) {
- OptimizationDictionaryController.commonClassDao = commonClassDao;
- }
+ @Autowired
+ public OptimizationDictionaryController(CommonClassDao commonClassDao){
+ setCommonClassDao(commonClassDao);
+ }
+ public static void setCommonClassDao(CommonClassDao commonClassDao) {
+ OptimizationDictionaryController.commonClassDao = commonClassDao;
+ }
+
+ MSModelUtils utils = new MSModelUtils(XACMLPapServlet.getMsOnapName(), XACMLPapServlet.getMsPolicyName());
+
+ private OptimizationModels newModel;
+
+ @RequestMapping(value={"/get_OptimizationModelsData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getOptimizationModelsDictionaryEntityData(HttpServletResponse response){
+ DictionaryUtils dUtils = getDictionaryUtilsInstance();
+ dUtils.getData(response, optimizationModelsDictionaryDatas, OptimizationModels.class);
+ }
+
+ @RequestMapping(value={"/get_OptimizationModelsDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getOptimizationModelsDictionaryByNameEntityData(HttpServletResponse response){
+ DictionaryUtils dUtils = getDictionaryUtilsInstance();
+ dUtils.getDataByEntity(response, optimizationModelsDictionaryDatas, modelName, OptimizationModels.class);
+ }
+
+ @RequestMapping(value={"/oof_dictionary/save_model"}, method={RequestMethod.POST})
+ public ModelAndView saveOptimizationModelsDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+ DictionaryUtils dUtils = getDictionaryUtilsInstance();
+ try {
+ this.newModel = new OptimizationModels();
+ boolean fromAPI = dUtils.isRequestFromAPI(request);
+ ObjectMapper mapper = new ObjectMapper();
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ JsonNode root = mapper.readTree(request.getReader());
+ OptimizationModels optimizationModels = new OptimizationModels();
+ String userId = null;
+
+ String dataOrderInfo = null;
+ if(root.has("dataOrderInfo")){
+ dataOrderInfo = root.get("dataOrderInfo").toString();
+ }
+
+ if(root.has("modelType")){
+ JsonNode dataType = root.get("modelType");
+ String modelType= dataType.toString();
+ if(modelType.contains("yml")){
+ if (root.has(optimizationModelsDictionaryData)){
+ if (root.get(optimizationModelsDictionaryData).has(description)){
+ optimizationModels.setDescription(root.get(optimizationModelsDictionaryData).get(description).asText().replace("\"", ""));
+ }
+ if (root.get(optimizationModelsDictionaryData).has(modelName)){
+ optimizationModels.setModelName(root.get(optimizationModelsDictionaryData).get(modelName).asText().replace("\"", ""));
+ this.newModel.setModelName(optimizationModels.getModelName());
+ }
+ if (root.get(optimizationModelsDictionaryData).has(version)){
+ optimizationModels.setVersion(root.get(optimizationModelsDictionaryData).get(version).asText().replace("\"", ""));
+ this.newModel.setVersion(optimizationModels.getVersion());
+ }
+ }
+
+ classMap = new LinkedHashMap<>();
+ JsonNode data = root.get(classMapData);
+ ObjectMapper mapper1 = new ObjectMapper();
+ String data1 = data.toString().substring(1, data.toString().length()-1);
+ data1 = data1.replace("\\", "");
+ data1=data1.replace("\"{","{");
+ data1=data1.replace("}\"","}");
+ JSONObject jsonObject = new JSONObject(data1);
+ Set<String> keys = jsonObject.keySet();
+ for(String key : keys){
+ String value = jsonObject.get(key).toString();
+ MSAttributeObject msAttributeObject = mapper1.readValue(value, MSAttributeObject.class);
+ classMap.put(key, msAttributeObject);
+ }
+
+ userId = root.get("userid").textValue();
+ MSAttributeObject mainClass = classMap.get(this.newModel.getModelName());
+ this.newModel.setDependency("[]");
+ String value = new Gson().toJson(mainClass.getSubClass());
+ this.newModel.setSubattributes(value);
+ String attributes= mainClass.getAttribute().toString().replace("{", "").replace("}", "");
+ int equalsIndexForAttributes= attributes.indexOf('=');
+ String atttributesAfterFirstEquals= attributes.substring(equalsIndexForAttributes+1, attributes.length()-1);
+ this.newModel.setAttributes(atttributesAfterFirstEquals);
+ String refAttributes= mainClass.getRefAttribute().toString().replace("{", "").replace("}", "");
+ int equalsIndex= refAttributes.indexOf('=');
+ String refAttributesAfterFirstEquals= refAttributes.substring(equalsIndex+1, refAttributes.length()-1);
+ this.newModel.setRefattributes(refAttributesAfterFirstEquals);
+ this.newModel.setEnumValues(mainClass.getEnumType().toString().replace("{", "").replace("}", ""));
+ this.newModel.setAnnotation(mainClass.getMatchingSet().toString().replace("{", "").replace("}", ""));
+
+ }else{
+ if (fromAPI) {
+ optimizationModels = mapper.readValue(root.get(dictionaryFields).toString(), OptimizationModels.class);
+ userId = "API";
+ } else {
+ if (root.has(optimizationModelsDictionaryData)){
+ if (root.get(optimizationModelsDictionaryData).has(description)){
+ optimizationModels.setDescription(root.get(optimizationModelsDictionaryData).get(description).asText().replace("\"", ""));
+ }
+ if (root.get(optimizationModelsDictionaryData).has(modelName)){
+ optimizationModels.setModelName(root.get(optimizationModelsDictionaryData).get(modelName).asText().replace("\"", ""));
+ this.newModel.setModelName(optimizationModels.getModelName());
+ }
+ if (root.get(optimizationModelsDictionaryData).has(version)){
+ optimizationModels.setVersion(root.get(optimizationModelsDictionaryData).get(version).asText().replace("\"", ""));
+ this.newModel.setVersion(optimizationModels.getVersion());
+ }
+ }
+ if(root.has(classMapData)){
+ classMap = new LinkedHashMap<>();
+ JsonNode data = root.get(classMapData);
+ ObjectMapper mapper1 = new ObjectMapper();
+ String data1 = data.toString().substring(1, data.toString().length()-1);
+ data1 = data1.replace("\\", "");
+ JSONObject jsonObject = new JSONObject(data1);
+ Set<String> keys = jsonObject.keySet();
+ for(String key : keys){
+ String value = jsonObject.get(key).toString();
+ MSAttributeObject msAttributeObject = mapper1.readValue(value, MSAttributeObject.class);
+ classMap.put(key, msAttributeObject);
+ }
+ }
+ userId = root.get("userid").textValue();
+ addValuesToNewModel(classMap);
+ }
+ }
+ }
+ optimizationModels.setAttributes(this.newModel.getAttributes());
+ optimizationModels.setRefattributes(this.newModel.getRefattributes());
+ optimizationModels.setDependency(this.newModel.getDependency());
+ optimizationModels.setModelName(this.newModel.getModelName());
+ optimizationModels.setSubattributes(this.newModel.getSubattributes());
+ optimizationModels.setVersion(this.newModel.getVersion());
+ optimizationModels.setEnumValues(this.newModel.getEnumValues());
+ optimizationModels.setAnnotation(this.newModel.getAnnotation());
+
+ if(dataOrderInfo != null){
+ optimizationModels.setDataOrderInfo(dataOrderInfo);
+ }
+
+ String checkName = optimizationModels.getModelName() + ":" + optimizationModels.getVersion();
+ List<Object> duplicateData = commonClassDao.checkDuplicateEntry(checkName, "modelName:version", OptimizationModels.class);
+ boolean duplicateflag = false;
+ if(duplicateData!=null && !duplicateData.isEmpty()){
+ OptimizationModels data = (OptimizationModels) duplicateData.get(0);
+ if(request.getParameter(operation) != null && UPDATE.equals(request.getParameter(operation))){
+ optimizationModels.setId(data.getId());
+ }else if((request.getParameter(operation) != null && !UPDATE.equals(request.getParameter(operation))) ||
+ (request.getParameter(operation) == null && (data.getId() != optimizationModels.getId()))){
+ duplicateflag = true;
+ }
+ }
+ UserInfo userInfo = dUtils.getUserInfo(userId);
+
+ String responseString = null;
+ if(!duplicateflag){
+ optimizationModels.setUserCreatedBy(userInfo);
+ if(optimizationModels.getId() == 0){
+ commonClassDao.save(optimizationModels);
+ }else{
+ commonClassDao.update(optimizationModels);
+ }
+ responseString = mapper.writeValueAsString(commonClassDao.getData(OptimizationModels.class));
+ }else{
+ responseString = duplicateResponseString;
+ }
+ if(fromAPI){
+ return dUtils.getResultForApi(responseString);
+ }else{
+ dUtils.setResponseData(response, optimizationModelsDictionaryDatas, responseString);
+ }
+ }catch (Exception e){
+ dUtils.setErrorResponseData(response, e);
+ }
+ return null;
+ }
- MSModelUtils utils = new MSModelUtils(XACMLPapServlet.getMsOnapName(), XACMLPapServlet.getMsPolicyName());
-
- private OptimizationModels newModel;
-
- @RequestMapping(value={"/get_OptimizationModelsData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getOptimizationModelsDictionaryEntityData(HttpServletResponse response){
- DictionaryUtils dUtils = getDictionaryUtilsInstance();
- dUtils.getData(response, optimizationModelsDictionaryDatas, OptimizationModels.class);
- }
-
- @RequestMapping(value={"/get_OptimizationModelsDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getOptimizationModelsDictionaryByNameEntityData(HttpServletResponse response){
- DictionaryUtils dUtils = getDictionaryUtilsInstance();
- dUtils.getDataByEntity(response, optimizationModelsDictionaryDatas, modelName, OptimizationModels.class);
- }
-
- @RequestMapping(value={"/oof_dictionary/save_model"}, method={RequestMethod.POST})
- public ModelAndView saveOptimizationModelsDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
- DictionaryUtils dUtils = getDictionaryUtilsInstance();
- try {
- this.newModel = new OptimizationModels();
- boolean fromAPI = dUtils.isRequestFromAPI(request);
- ObjectMapper mapper = new ObjectMapper();
- mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- JsonNode root = mapper.readTree(request.getReader());
- OptimizationModels optimizationModels = new OptimizationModels();
- String userId = null;
-
- String dataOrderInfo = null;
- if(root.has("dataOrderInfo")){
- dataOrderInfo = root.get("dataOrderInfo").toString();
- }
+ @RequestMapping(value={"/oof_dictionary/remove_model"}, method={RequestMethod.POST})
+ public void removeOptimizationModelsDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException {
+ DictionaryUtils dUtils = getDictionaryUtilsInstance();
+ dUtils.removeData(request, response, optimizationModelsDictionaryDatas, OptimizationModels.class);
+ }
- if(root.has("modelType")){
- JsonNode dataType = root.get("modelType");
- String modelType= dataType.toString();
- if(modelType.contains("yml")){
- if (root.has(optimizationModelsDictionaryData)){
- if (root.get(optimizationModelsDictionaryData).has(description)){
- optimizationModels.setDescription(root.get(optimizationModelsDictionaryData).get(description).asText().replace("\"", ""));
- }
- if (root.get(optimizationModelsDictionaryData).has(modelName)){
- optimizationModels.setModelName(root.get(optimizationModelsDictionaryData).get(modelName).asText().replace("\"", ""));
- this.newModel.setModelName(optimizationModels.getModelName());
- }
- if (root.get(optimizationModelsDictionaryData).has(version)){
- optimizationModels.setVersion(root.get(optimizationModelsDictionaryData).get(version).asText().replace("\"", ""));
- this.newModel.setVersion(optimizationModels.getVersion());
- }
- }
+ private void addValuesToNewModel(HashMap<String,MSAttributeObject > classMap) {
+ //Loop through the classmap and pull out the required info for the new file.
+ String subAttribute = null;
- classMap = new LinkedHashMap<>();
- JsonNode data = root.get(classMapData);
- ObjectMapper mapper1 = new ObjectMapper();
- String data1 = data.toString().substring(1, data.toString().length()-1);
- data1 = data1.replace("\\", "");
- data1=data1.replace("\"{","{");
- data1=data1.replace("}\"","}");
- JSONObject jsonObject = new JSONObject(data1);
- Set<String> keys = jsonObject.keySet();
- for(String key : keys){
- String value = jsonObject.get(key).toString();
- MSAttributeObject msAttributeObject = mapper1.readValue(value, MSAttributeObject.class);
- classMap.put(key, msAttributeObject);
- }
+ MSAttributeObject mainClass = classMap.get(this.newModel.getModelName());
- userId = root.get("userid").textValue();
- MSAttributeObject mainClass = classMap.get(this.newModel.getModelName());
- this.newModel.setDependency("[]");
- String value = new Gson().toJson(mainClass.getSubClass());
- this.newModel.setSubattributes(value);
- String attributes= mainClass.getAttribute().toString().replace("{", "").replace("}", "");
- int equalsIndexForAttributes= attributes.indexOf('=');
- String atttributesAfterFirstEquals= attributes.substring(equalsIndexForAttributes+1, attributes.length()-1);
- this.newModel.setAttributes(atttributesAfterFirstEquals);
- String refAttributes= mainClass.getRefAttribute().toString().replace("{", "").replace("}", "");
- int equalsIndex= refAttributes.indexOf('=');
- String refAttributesAfterFirstEquals= refAttributes.substring(equalsIndex+1, refAttributes.length()-1);
- this.newModel.setRefattributes(refAttributesAfterFirstEquals);
- this.newModel.setEnumValues(mainClass.getEnumType().toString().replace("{", "").replace("}", ""));
- this.newModel.setAnnotation(mainClass.getMatchingSet().toString().replace("{", "").replace("}", ""));
+ if (mainClass !=null){
+ String dependTemp = StringUtils.replaceEach(mainClass.getDependency(), new String[]{"[", "]", " "}, new String[]{"", "", ""});
+ ArrayList<String> dependency = new ArrayList<>(Arrays.asList(dependTemp.split(",")));
+ dependency = getFullDependencyList(dependency);
+ for (String element : dependency){
+ MSAttributeObject temp = classMap.get(element);
+ if (temp!=null){
+ mainClass.addAllRefAttribute(temp.getRefAttribute());
+ mainClass.addAllAttribute(temp.getAttribute());
+ }
+ }
+ subAttribute = utils.createSubAttributes(dependency, classMap, this.newModel.getModelName());
+ }else{
+ subAttribute = "{}";
+ this.newModel.setDependency("");
+ }
- }else{
- if (fromAPI) {
- optimizationModels = mapper.readValue(root.get(dictionaryFields).toString(), OptimizationModels.class);
- userId = "API";
- } else {
- if (root.has(optimizationModelsDictionaryData)){
- if (root.get(optimizationModelsDictionaryData).has(description)){
- optimizationModels.setDescription(root.get(optimizationModelsDictionaryData).get(description).asText().replace("\"", ""));
- }
- if (root.get(optimizationModelsDictionaryData).has(modelName)){
- optimizationModels.setModelName(root.get(optimizationModelsDictionaryData).get(modelName).asText().replace("\"", ""));
- this.newModel.setModelName(optimizationModels.getModelName());
- }
- if (root.get(optimizationModelsDictionaryData).has(version)){
- optimizationModels.setVersion(root.get(optimizationModelsDictionaryData).get(version).asText().replace("\"", ""));
- this.newModel.setVersion(optimizationModels.getVersion());
- }
- }
- if(root.has(classMapData)){
- classMap = new LinkedHashMap<>();
- JsonNode data = root.get(classMapData);
- ObjectMapper mapper1 = new ObjectMapper();
- String data1 = data.toString().substring(1, data.toString().length()-1);
- data1 = data1.replace("\\", "");
- JSONObject jsonObject = new JSONObject(data1);
- Set<String> keys = jsonObject.keySet();
- for(String key : keys){
- String value = jsonObject.get(key).toString();
- MSAttributeObject msAttributeObject = mapper1.readValue(value, MSAttributeObject.class);
- classMap.put(key, msAttributeObject);
- }
- }
- userId = root.get("userid").textValue();
- addValuesToNewModel(classMap);
- }
- }
- }
- optimizationModels.setAttributes(this.newModel.getAttributes());
- optimizationModels.setRefattributes(this.newModel.getRefattributes());
- optimizationModels.setDependency(this.newModel.getDependency());
- optimizationModels.setModelName(this.newModel.getModelName());
- optimizationModels.setSubattributes(this.newModel.getSubattributes());
- optimizationModels.setVersion(this.newModel.getVersion());
- optimizationModels.setEnumValues(this.newModel.getEnumValues());
- optimizationModels.setAnnotation(this.newModel.getAnnotation());
-
- if(dataOrderInfo != null){
- optimizationModels.setDataOrderInfo(dataOrderInfo);
- }
-
- String checkName = optimizationModels.getModelName() + ":" + optimizationModels.getVersion();
- List<Object> duplicateData = commonClassDao.checkDuplicateEntry(checkName, "modelName:version", OptimizationModels.class);
- boolean duplicateflag = false;
- if(duplicateData!=null && !duplicateData.isEmpty()){
- OptimizationModels data = (OptimizationModels) duplicateData.get(0);
- if(request.getParameter(operation) != null && UPDATE.equals(request.getParameter(operation))){
- optimizationModels.setId(data.getId());
- }else if((request.getParameter(operation) != null && !UPDATE.equals(request.getParameter(operation))) ||
- (request.getParameter(operation) == null && (data.getId() != optimizationModels.getId()))){
- duplicateflag = true;
- }
- }
- UserInfo userInfo = dUtils.getUserInfo(userId);
-
- String responseString = null;
- if(!duplicateflag){
- optimizationModels.setUserCreatedBy(userInfo);
- if(optimizationModels.getId() == 0){
- commonClassDao.save(optimizationModels);
- }else{
- commonClassDao.update(optimizationModels);
- }
- responseString = mapper.writeValueAsString(commonClassDao.getData(OptimizationModels.class));
- }else{
- responseString = duplicateResponseString;
- }
- if(fromAPI){
- return dUtils.getResultForApi(responseString);
- }else{
- dUtils.setResponseData(response, optimizationModelsDictionaryDatas, responseString);
- }
- }catch (Exception e){
- dUtils.setErrorResponseData(response, e);
- }
- return null;
- }
+ if (mainClass != null && mainClass.getDependency()==null){
+ mainClass.setDependency("");
+ }
+ if(mainClass != null){
+ this.newModel.setDependency(mainClass.getDependency());
+ this.newModel.setSubattributes(subAttribute);
+ this.newModel.setAttributes(mainClass.getAttribute().toString().replace("{", "").replace("}", ""));
+ this.newModel.setRefattributes(mainClass.getRefAttribute().toString().replace("{", "").replace("}", ""));
+ this.newModel.setEnumValues(mainClass.getEnumType().toString().replace("{", "").replace("}", ""));
+ this.newModel.setAnnotation(mainClass.getMatchingSet().toString().replace("{", "").replace("}", ""));
+ }
+ }
- @RequestMapping(value={"/oof_dictionary/remove_model"}, method={RequestMethod.POST})
- public void removeOptimizationModelsDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException {
- DictionaryUtils dUtils = getDictionaryUtilsInstance();
- dUtils.removeData(request, response, optimizationModelsDictionaryDatas, OptimizationModels.class);
- }
-
- private void addValuesToNewModel(HashMap<String,MSAttributeObject > classMap) {
- //Loop through the classmap and pull out the required info for the new file.
- String subAttribute = null;
-
- MSAttributeObject mainClass = classMap.get(this.newModel.getModelName());
-
- if (mainClass !=null){
- String dependTemp = StringUtils.replaceEach(mainClass.getDependency(), new String[]{"[", "]", " "}, new String[]{"", "", ""});
- ArrayList<String> dependency = new ArrayList<>(Arrays.asList(dependTemp.split(",")));
- dependency = getFullDependencyList(dependency);
- for (String element : dependency){
- MSAttributeObject temp = classMap.get(element);
- if (temp!=null){
- mainClass.addAllRefAttribute(temp.getRefAttribute());
- mainClass.addAllAttribute(temp.getAttribute());
- }
- }
- subAttribute = utils.createSubAttributes(dependency, classMap, this.newModel.getModelName());
- }else{
- subAttribute = "{}";
- this.newModel.setDependency("");
- }
+ private ArrayList<String> getFullDependencyList(ArrayList<String> dependency) {
+ ArrayList<String> returnList = new ArrayList<>();
+ ArrayList<String> workingList;
+ returnList.addAll(dependency);
+ for (String element : dependency ){
+ if (classMap.containsKey(element)){
+ MSAttributeObject value = classMap.get(element);
+ String rawValue = StringUtils.replaceEach(value.getDependency(), new String[]{"[", "]"}, new String[]{"", ""});
+ workingList = new ArrayList<>(Arrays.asList(rawValue.split(",")));
+ for(String depend : workingList){
+ if (!returnList.contains(depend) && !depend.isEmpty()){
+ returnList.add(depend.trim());
+ }
+ }
+ }
+ }
- if (mainClass != null && mainClass.getDependency()==null){
- mainClass.setDependency("");
- }
- if(mainClass != null){
- this.newModel.setDependency(mainClass.getDependency());
- this.newModel.setSubattributes(subAttribute);
- this.newModel.setAttributes(mainClass.getAttribute().toString().replace("{", "").replace("}", ""));
- this.newModel.setRefattributes(mainClass.getRefAttribute().toString().replace("{", "").replace("}", ""));
- this.newModel.setEnumValues(mainClass.getEnumType().toString().replace("{", "").replace("}", ""));
- this.newModel.setAnnotation(mainClass.getMatchingSet().toString().replace("{", "").replace("}", ""));
- }
- }
-
- private ArrayList<String> getFullDependencyList(ArrayList<String> dependency) {
- ArrayList<String> returnList = new ArrayList<>();
- ArrayList<String> workingList;
- returnList.addAll(dependency);
- for (String element : dependency ){
- if (classMap.containsKey(element)){
- MSAttributeObject value = classMap.get(element);
- String rawValue = StringUtils.replaceEach(value.getDependency(), new String[]{"[", "]"}, new String[]{"", ""});
- workingList = new ArrayList<>(Arrays.asList(rawValue.split(",")));
- for(String depend : workingList){
- if (!returnList.contains(depend) && !depend.isEmpty()){
- returnList.add(depend.trim());
- }
- }
- }
- }
-
- return returnList;
- }
+ return returnList;
+ }
}
diff --git a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/PolicyScopeDictionaryController.java b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/PolicyScopeDictionaryController.java
index fd3d2f641..965235cce 100644
--- a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/PolicyScopeDictionaryController.java
+++ b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/PolicyScopeDictionaryController.java
@@ -52,441 +52,441 @@ import com.fasterxml.jackson.databind.ObjectMapper;
@Controller
public class PolicyScopeDictionaryController {
- private static final Logger LOGGER = FlexLogger.getLogger(PolicyScopeDictionaryController.class);
-
- private static CommonClassDao commonClassDao;
- private static String operation = "operation";
- private static String groupPolicyScopeListData1 = "groupPolicyScopeListData1";
- private static String policyScope= "PolicyScope";
- private static String duplicateResponseString = "Duplicate";
- private static String groupPolicyScopeDatas = "groupPolicyScopeListDatas";
- private static String dictionaryFields = "dictionaryFields";
- private static String psCLDatas = "psClosedLoopDictionaryDatas";
- private static String psServiceDatas = "psServiceDictionaryDatas";
- private static String psTypeDatas = "psTypeDictionaryDatas";
- private static String psResourceDatas = "psResourceDictionaryDatas";
-
- public PolicyScopeDictionaryController(){
- super();
- }
-
- private DictionaryUtils getDictionaryUtilsInstance(){
- return DictionaryUtils.getDictionaryUtils();
- }
-
- @Autowired
- public PolicyScopeDictionaryController(CommonClassDao commonClassDao){
- PolicyScopeDictionaryController.commonClassDao = commonClassDao;
- }
-
- public void setCommonClassDao(CommonClassDao commonClassDao){
- PolicyScopeDictionaryController.commonClassDao = commonClassDao;
- }
-
- @RequestMapping(value={"/get_GroupPolicyScopeDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getGroupPolicyScopeEntityDataByName(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getDataByEntity(response, groupPolicyScopeDatas, "name", GroupPolicyScopeList.class);
- }
-
- @RequestMapping(value={"/get_GroupPolicyScopeData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getGroupPolicyScopeEntityData(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getData(response, groupPolicyScopeDatas, GroupPolicyScopeList.class);
- }
-
- @RequestMapping(value={"/ps_dictionary/save_psGroupPolicyScope"}, method={RequestMethod.POST})
- public ModelAndView savePSGroupScopeDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
- DictionaryUtils utils = getDictionaryUtilsInstance();
- try {
- boolean fromAPI = utils.isRequestFromAPI(request);
- ObjectMapper mapper = new ObjectMapper();
- mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- JsonNode root = mapper.readTree(request.getReader());
- GroupPolicyScopeList gpdata = null;
- GroupPolicyScope groupData = null;
- boolean duplicateGroupFlag = false;
- if (fromAPI) {
- gpdata = mapper.readValue(root.get(dictionaryFields).toString(), GroupPolicyScopeList.class);
- try{
- groupData = mapper.readValue(root.get(groupPolicyScopeListData1).toString(), GroupPolicyScope.class);
- }catch(Exception e){
- groupData = new GroupPolicyScope();
- groupData.setResource(root.get(dictionaryFields).get("resource").toString().replace("\"", ""));
- groupData.setClosedloop(root.get(dictionaryFields).get("closedloop").toString().replace("\"", ""));
- groupData.setService(root.get(dictionaryFields).get("service").toString().replace("\"", ""));
- groupData.setType(root.get(dictionaryFields).get("type").toString().replace("\"", ""));
- LOGGER.error(e);
- }
- } else {
- gpdata = mapper.readValue(root.get("groupPolicyScopeListData").toString(), GroupPolicyScopeList.class);
- try{
- groupData = mapper.readValue(root.get(groupPolicyScopeListData1).toString(), GroupPolicyScope.class);
- }catch(Exception e){
- LOGGER.error(e);
- groupData = new GroupPolicyScope();
- groupData.setResource(root.get(groupPolicyScopeListData1).get("resource").toString().replace("\"", ""));
- groupData.setClosedloop(root.get(groupPolicyScopeListData1).get("closedloop").toString().replace("\"", ""));
- groupData.setService(root.get(groupPolicyScopeListData1).get("service").toString().replace("\"", ""));
- groupData.setType(root.get(groupPolicyScopeListData1).get("type").toString().replace("\"", ""));
- }
- }
- if(!gpdata.getGroupName().startsWith(policyScope)){
- String name = "PolicyScope_" + gpdata.getGroupName();
- gpdata.setGroupName(name);
- }
- ArrayList<String> valueList = new ArrayList<>();
- String resourceValue = groupData.getResource();
- String typeValue = groupData.getType();
- String serviceValue = groupData.getService();
- String closedLoopValue = groupData.getClosedloop();
- valueList.add("resource=" + resourceValue);
- valueList.add("service=" + serviceValue);
- valueList.add("type=" + typeValue);
- valueList.add("closedLoopControlName=" + closedLoopValue);
- String list = StringUtils.replaceEach(valueList.toString(), new String[]{"[", "]", " "}, new String[]{"", "", ""});
- gpdata.setGroupList(list);
-
- List<Object> duplicateData = commonClassDao.checkDuplicateEntry(gpdata.getGroupName(), "name", GroupPolicyScopeList.class);
- if(duplicateData.isEmpty()){
- duplicateData = commonClassDao.checkDuplicateEntry(gpdata.getGroupList(), "groupList", GroupPolicyScopeList.class);
- if(duplicateData.isEmpty()){
- duplicateGroupFlag = true;
- }
- }
- boolean duplicateflag = false;
- if(!duplicateData.isEmpty()){
- GroupPolicyScopeList data = (GroupPolicyScopeList) duplicateData.get(0);
- if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
- gpdata.setId(data.getId());
- }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
- (request.getParameter(operation) == null && (data.getId() != gpdata.getId()))){
- duplicateflag = true;
- }
- }
- String responseString = null;
- if(!duplicateflag && !duplicateGroupFlag){
- if(gpdata.getId() == 0){
- commonClassDao.save(gpdata);
- }else{
- commonClassDao.update(gpdata);
- }
- responseString = mapper.writeValueAsString(commonClassDao.getData(GroupPolicyScopeList.class));
- }else if(duplicateGroupFlag){
- responseString = "DuplicateGroup";
- }else{
- responseString = duplicateResponseString;
- }
- if(fromAPI){
- return utils.getResultForApi(responseString);
- }else{
- utils.setResponseData(response, groupPolicyScopeDatas, responseString);
- }
- }catch (Exception e){
- utils.setErrorResponseData(response, e);
- }
- return null;
- }
-
- @RequestMapping(value={"/ps_dictionary/remove_GroupPolicyScope"}, method={RequestMethod.POST})
- public void removePSGroupScopeDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException {
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.removeData(request, response, groupPolicyScopeDatas, GroupPolicyScopeList.class);
- }
-
- @RequestMapping(value={"/get_PSClosedLoopDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getPSClosedLoopEntityDataByName(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getDataByEntity(response, psCLDatas, "name", OnapName.class);
- }
-
- @RequestMapping(value={"/get_PSClosedLoopData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getPSClosedLoopEntityData(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getData(response, psCLDatas, PolicyScopeClosedLoop.class);
- }
-
- @RequestMapping(value={"/ps_dictionary/save_psClosedLoop"}, method={RequestMethod.POST})
- public ModelAndView savePSClosedLoopDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
- DictionaryUtils utils = getDictionaryUtilsInstance();
- try {
- boolean fromAPI = utils.isRequestFromAPI(request);
- ObjectMapper mapper = new ObjectMapper();
- mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- JsonNode root = mapper.readTree(request.getReader());
- PolicyScopeClosedLoop onapData;
- if(fromAPI){
- onapData = mapper.readValue(root.get(dictionaryFields).toString(), PolicyScopeClosedLoop.class);
- }else{
- onapData = mapper.readValue(root.get("psClosedLoopDictionaryData").toString(), PolicyScopeClosedLoop.class);
- }
-
- List<Object> duplicateData = commonClassDao.checkDuplicateEntry(onapData.getName(), "name", PolicyScopeClosedLoop.class);
- boolean duplicateflag = false;
- if(!duplicateData.isEmpty()){
- PolicyScopeClosedLoop data = (PolicyScopeClosedLoop) duplicateData.get(0);
- if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
- onapData.setId(data.getId());
- }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
- (request.getParameter(operation) == null && (data.getId() != onapData.getId()))){
- duplicateflag = true;
- }
- }
- String responseString = null;
- if(!duplicateflag){
- if(onapData.getId() == 0){
- commonClassDao.save(onapData);
- }else{
- commonClassDao.update(onapData);
- }
- responseString = mapper.writeValueAsString(commonClassDao.getData(PolicyScopeClosedLoop.class));
- }else{
- responseString = duplicateResponseString;
- }
- if(fromAPI){
- return utils.getResultForApi(responseString);
- }else{
- utils.setResponseData(response, psCLDatas, responseString);
- }
- }catch (Exception e){
- utils.setErrorResponseData(response, e);
- }
- return null;
- }
-
- @RequestMapping(value={"/ps_dictionary/remove_PSClosedLoop"}, method={RequestMethod.POST})
- public void removePSClosedLoopDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException {
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.removeData(request, response, psCLDatas, PolicyScopeClosedLoop.class);
- }
-
- @RequestMapping(value={"/get_PSServiceDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getPSServiceEntityDataByName(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getDataByEntity(response, psServiceDatas, "name", PolicyScopeService.class);
- }
-
- @RequestMapping(value={"/get_PSServiceData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getPSServiceEntityData(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getData(response, psServiceDatas, PolicyScopeService.class);
- }
-
- @RequestMapping(value={"/ps_dictionary/save_psService"}, method={RequestMethod.POST})
- public ModelAndView savePSServiceDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
- DictionaryUtils utils = getDictionaryUtilsInstance();
- try {
- boolean fromAPI = utils.isRequestFromAPI(request);
- ObjectMapper mapper = new ObjectMapper();
- mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- JsonNode root = mapper.readTree(request.getReader());
- PolicyScopeService onapData;
- if (fromAPI) {
- onapData = mapper.readValue(root.get(dictionaryFields).toString(), PolicyScopeService.class);
- } else {
- onapData = mapper.readValue(root.get("psServiceDictionaryData").toString(), PolicyScopeService.class);
- }
-
- List<Object> duplicateData = commonClassDao.checkDuplicateEntry(onapData.getName(), "name", PolicyScopeService.class);
- boolean duplicateflag = false;
- if(!duplicateData.isEmpty()){
- PolicyScopeService data = (PolicyScopeService) duplicateData.get(0);
- if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
- onapData.setId(data.getId());
- }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
- (request.getParameter(operation) == null && (data.getId() != onapData.getId()))){
- duplicateflag = true;
- }
- }
- String responseString = null;
- if(!duplicateflag){
- if(onapData.getId() == 0){
- commonClassDao.save(onapData);
- }else{
- commonClassDao.update(onapData);
- }
- responseString = mapper.writeValueAsString(commonClassDao.getData(PolicyScopeService.class));
- }else{
- responseString = duplicateResponseString;
- }
- if(fromAPI){
- return utils.getResultForApi(responseString);
- }else{
- utils.setResponseData(response, psServiceDatas, responseString);
- }
- }catch (Exception e){
- utils.setErrorResponseData(response, e);
- }
- return null;
- }
-
- @RequestMapping(value={"/ps_dictionary/remove_PSService"}, method={RequestMethod.POST})
- public void removePSServiceDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.removeData(request, response, psServiceDatas, PolicyScopeService.class);
- }
-
- @RequestMapping(value={"/get_PSTypeDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getPSTypeEntityDataByName(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getDataByEntity(response, psTypeDatas, "name", PolicyScopeType.class);
- }
-
- @RequestMapping(value={"/get_PSTypeData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getPSTypeEntityData(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getData(response, psTypeDatas, PolicyScopeType.class);
- }
-
- @RequestMapping(value={"/ps_dictionary/save_psType"}, method={RequestMethod.POST})
- public ModelAndView savePSTypeDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
- DictionaryUtils utils = getDictionaryUtilsInstance();
- try {
- boolean fromAPI = utils.isRequestFromAPI(request);
- ObjectMapper mapper = new ObjectMapper();
- mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- JsonNode root = mapper.readTree(request.getReader());
- PolicyScopeType onapData;
- if(fromAPI){
- onapData = mapper.readValue(root.get(dictionaryFields).toString(), PolicyScopeType.class);
- }else{
- onapData = mapper.readValue(root.get("psTypeDictionaryData").toString(), PolicyScopeType.class);
- }
-
- List<Object> duplicateData = commonClassDao.checkDuplicateEntry(onapData.getName(), "name", PolicyScopeType.class);
- boolean duplicateflag = false;
- if(!duplicateData.isEmpty()){
- PolicyScopeType data = (PolicyScopeType) duplicateData.get(0);
- if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
- onapData.setId(data.getId());
- }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
- (request.getParameter(operation) == null && (data.getId() != onapData.getId()))){
- duplicateflag = true;
- }
- }
- String responseString = null;
- if(!duplicateflag){
- if(onapData.getId() == 0){
- commonClassDao.save(onapData);
- }else{
- commonClassDao.update(onapData);
- }
- responseString = mapper.writeValueAsString(commonClassDao.getData(PolicyScopeType.class));
- }else{
- responseString = duplicateResponseString;
- }
- if(fromAPI){
- return utils.getResultForApi(responseString);
- }else{
- utils.setResponseData(response, psTypeDatas, responseString);
- }
- }catch (Exception e){
- utils.setErrorResponseData(response, e);
- }
- return null;
- }
-
- @RequestMapping(value={"/ps_dictionary/remove_PSType"}, method={RequestMethod.POST})
- public void removePSTypeDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException {
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.removeData(request, response, psTypeDatas, PolicyScopeType.class);
- }
-
- @RequestMapping(value={"/get_PSResourceDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getPSResourceEntityDataByName(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getDataByEntity(response, psResourceDatas, "name", PolicyScopeResource.class);
- }
-
- @RequestMapping(value={"/get_PSResourceData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getPSResourceEntityData(HttpServletResponse response){
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getData(response, psResourceDatas, PolicyScopeResource.class);
- }
-
- @RequestMapping(value={"/ps_dictionary/save_psResource"}, method={RequestMethod.POST})
- public ModelAndView savePSResourceDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
- DictionaryUtils utils = getDictionaryUtilsInstance();
- try {
- boolean fromAPI = utils.isRequestFromAPI(request);
- ObjectMapper mapper = new ObjectMapper();
- mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- JsonNode root = mapper.readTree(request.getReader());
- PolicyScopeResource onapData;
- if (fromAPI) {
- onapData = mapper.readValue(root.get(dictionaryFields).toString(), PolicyScopeResource.class);
- } else {
- onapData = mapper.readValue(root.get("psResourceDictionaryData").toString(), PolicyScopeResource.class);
- }
-
- List<Object> duplicateData = commonClassDao.checkDuplicateEntry(onapData.getName(), "name", PolicyScopeResource.class);
- boolean duplicateflag = false;
- if(!duplicateData.isEmpty()){
- PolicyScopeResource data = (PolicyScopeResource) duplicateData.get(0);
- if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
- onapData.setId(data.getId());
- }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
- (request.getParameter(operation) == null && (data.getId() != onapData.getId()))){
- duplicateflag = true;
- }
- }
- String responseString = null;
- if(!duplicateflag){
- if(onapData.getId() == 0){
- commonClassDao.save(onapData);
- }else{
- commonClassDao.update(onapData);
- }
- responseString = mapper.writeValueAsString(commonClassDao.getData(PolicyScopeResource.class));
- }else{
- responseString = duplicateResponseString;
- }
- if(fromAPI){
- return utils.getResultForApi(responseString);
- }else{
- utils.setResponseData(response, psResourceDatas, responseString);
- }
- }catch (Exception e){
- utils.setErrorResponseData(response, e);
- }
- return null;
- }
-
- @RequestMapping(value={"/ps_dictionary/remove_PSResource"}, method={RequestMethod.POST})
- public void removePSResourceDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException {
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.removeData(request, response, psResourceDatas, PolicyScopeResource.class);
- }
+ private static final Logger LOGGER = FlexLogger.getLogger(PolicyScopeDictionaryController.class);
+
+ private static CommonClassDao commonClassDao;
+ private static String operation = "operation";
+ private static String groupPolicyScopeListData1 = "groupPolicyScopeListData1";
+ private static String policyScope= "PolicyScope";
+ private static String duplicateResponseString = "Duplicate";
+ private static String groupPolicyScopeDatas = "groupPolicyScopeListDatas";
+ private static String dictionaryFields = "dictionaryFields";
+ private static String psCLDatas = "psClosedLoopDictionaryDatas";
+ private static String psServiceDatas = "psServiceDictionaryDatas";
+ private static String psTypeDatas = "psTypeDictionaryDatas";
+ private static String psResourceDatas = "psResourceDictionaryDatas";
+
+ public PolicyScopeDictionaryController(){
+ super();
+ }
+
+ private DictionaryUtils getDictionaryUtilsInstance(){
+ return DictionaryUtils.getDictionaryUtils();
+ }
+
+ @Autowired
+ public PolicyScopeDictionaryController(CommonClassDao commonClassDao){
+ PolicyScopeDictionaryController.commonClassDao = commonClassDao;
+ }
+
+ public void setCommonClassDao(CommonClassDao commonClassDao){
+ PolicyScopeDictionaryController.commonClassDao = commonClassDao;
+ }
+
+ @RequestMapping(value={"/get_GroupPolicyScopeDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getGroupPolicyScopeEntityDataByName(HttpServletResponse response){
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getDataByEntity(response, groupPolicyScopeDatas, "name", GroupPolicyScopeList.class);
+ }
+
+ @RequestMapping(value={"/get_GroupPolicyScopeData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getGroupPolicyScopeEntityData(HttpServletResponse response){
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getData(response, groupPolicyScopeDatas, GroupPolicyScopeList.class);
+ }
+
+ @RequestMapping(value={"/ps_dictionary/save_psGroupPolicyScope"}, method={RequestMethod.POST})
+ public ModelAndView savePSGroupScopeDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ try {
+ boolean fromAPI = utils.isRequestFromAPI(request);
+ ObjectMapper mapper = new ObjectMapper();
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ JsonNode root = mapper.readTree(request.getReader());
+ GroupPolicyScopeList gpdata = null;
+ GroupPolicyScope groupData = null;
+ boolean duplicateGroupFlag = false;
+ if (fromAPI) {
+ gpdata = mapper.readValue(root.get(dictionaryFields).toString(), GroupPolicyScopeList.class);
+ try{
+ groupData = mapper.readValue(root.get(groupPolicyScopeListData1).toString(), GroupPolicyScope.class);
+ }catch(Exception e){
+ groupData = new GroupPolicyScope();
+ groupData.setResource(root.get(dictionaryFields).get("resource").toString().replace("\"", ""));
+ groupData.setClosedloop(root.get(dictionaryFields).get("closedloop").toString().replace("\"", ""));
+ groupData.setService(root.get(dictionaryFields).get("service").toString().replace("\"", ""));
+ groupData.setType(root.get(dictionaryFields).get("type").toString().replace("\"", ""));
+ LOGGER.error(e);
+ }
+ } else {
+ gpdata = mapper.readValue(root.get("groupPolicyScopeListData").toString(), GroupPolicyScopeList.class);
+ try{
+ groupData = mapper.readValue(root.get(groupPolicyScopeListData1).toString(), GroupPolicyScope.class);
+ }catch(Exception e){
+ LOGGER.error(e);
+ groupData = new GroupPolicyScope();
+ groupData.setResource(root.get(groupPolicyScopeListData1).get("resource").toString().replace("\"", ""));
+ groupData.setClosedloop(root.get(groupPolicyScopeListData1).get("closedloop").toString().replace("\"", ""));
+ groupData.setService(root.get(groupPolicyScopeListData1).get("service").toString().replace("\"", ""));
+ groupData.setType(root.get(groupPolicyScopeListData1).get("type").toString().replace("\"", ""));
+ }
+ }
+ if(!gpdata.getGroupName().startsWith(policyScope)){
+ String name = "PolicyScope_" + gpdata.getGroupName();
+ gpdata.setGroupName(name);
+ }
+ ArrayList<String> valueList = new ArrayList<>();
+ String resourceValue = groupData.getResource();
+ String typeValue = groupData.getType();
+ String serviceValue = groupData.getService();
+ String closedLoopValue = groupData.getClosedloop();
+ valueList.add("resource=" + resourceValue);
+ valueList.add("service=" + serviceValue);
+ valueList.add("type=" + typeValue);
+ valueList.add("closedLoopControlName=" + closedLoopValue);
+ String list = StringUtils.replaceEach(valueList.toString(), new String[]{"[", "]", " "}, new String[]{"", "", ""});
+ gpdata.setGroupList(list);
+
+ List<Object> duplicateData = commonClassDao.checkDuplicateEntry(gpdata.getGroupName(), "name", GroupPolicyScopeList.class);
+ if(duplicateData.isEmpty()){
+ duplicateData = commonClassDao.checkDuplicateEntry(gpdata.getGroupList(), "groupList", GroupPolicyScopeList.class);
+ if(duplicateData.isEmpty()){
+ duplicateGroupFlag = true;
+ }
+ }
+ boolean duplicateflag = false;
+ if(!duplicateData.isEmpty()){
+ GroupPolicyScopeList data = (GroupPolicyScopeList) duplicateData.get(0);
+ if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
+ gpdata.setId(data.getId());
+ }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
+ (request.getParameter(operation) == null && (data.getId() != gpdata.getId()))){
+ duplicateflag = true;
+ }
+ }
+ String responseString = null;
+ if(!duplicateflag && !duplicateGroupFlag){
+ if(gpdata.getId() == 0){
+ commonClassDao.save(gpdata);
+ }else{
+ commonClassDao.update(gpdata);
+ }
+ responseString = mapper.writeValueAsString(commonClassDao.getData(GroupPolicyScopeList.class));
+ }else if(duplicateGroupFlag){
+ responseString = "DuplicateGroup";
+ }else{
+ responseString = duplicateResponseString;
+ }
+ if(fromAPI){
+ return utils.getResultForApi(responseString);
+ }else{
+ utils.setResponseData(response, groupPolicyScopeDatas, responseString);
+ }
+ }catch (Exception e){
+ utils.setErrorResponseData(response, e);
+ }
+ return null;
+ }
+
+ @RequestMapping(value={"/ps_dictionary/remove_GroupPolicyScope"}, method={RequestMethod.POST})
+ public void removePSGroupScopeDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException {
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.removeData(request, response, groupPolicyScopeDatas, GroupPolicyScopeList.class);
+ }
+
+ @RequestMapping(value={"/get_PSClosedLoopDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getPSClosedLoopEntityDataByName(HttpServletResponse response){
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getDataByEntity(response, psCLDatas, "name", OnapName.class);
+ }
+
+ @RequestMapping(value={"/get_PSClosedLoopData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getPSClosedLoopEntityData(HttpServletResponse response){
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getData(response, psCLDatas, PolicyScopeClosedLoop.class);
+ }
+
+ @RequestMapping(value={"/ps_dictionary/save_psClosedLoop"}, method={RequestMethod.POST})
+ public ModelAndView savePSClosedLoopDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ try {
+ boolean fromAPI = utils.isRequestFromAPI(request);
+ ObjectMapper mapper = new ObjectMapper();
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ JsonNode root = mapper.readTree(request.getReader());
+ PolicyScopeClosedLoop onapData;
+ if(fromAPI){
+ onapData = mapper.readValue(root.get(dictionaryFields).toString(), PolicyScopeClosedLoop.class);
+ }else{
+ onapData = mapper.readValue(root.get("psClosedLoopDictionaryData").toString(), PolicyScopeClosedLoop.class);
+ }
+
+ List<Object> duplicateData = commonClassDao.checkDuplicateEntry(onapData.getName(), "name", PolicyScopeClosedLoop.class);
+ boolean duplicateflag = false;
+ if(!duplicateData.isEmpty()){
+ PolicyScopeClosedLoop data = (PolicyScopeClosedLoop) duplicateData.get(0);
+ if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
+ onapData.setId(data.getId());
+ }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
+ (request.getParameter(operation) == null && (data.getId() != onapData.getId()))){
+ duplicateflag = true;
+ }
+ }
+ String responseString = null;
+ if(!duplicateflag){
+ if(onapData.getId() == 0){
+ commonClassDao.save(onapData);
+ }else{
+ commonClassDao.update(onapData);
+ }
+ responseString = mapper.writeValueAsString(commonClassDao.getData(PolicyScopeClosedLoop.class));
+ }else{
+ responseString = duplicateResponseString;
+ }
+ if(fromAPI){
+ return utils.getResultForApi(responseString);
+ }else{
+ utils.setResponseData(response, psCLDatas, responseString);
+ }
+ }catch (Exception e){
+ utils.setErrorResponseData(response, e);
+ }
+ return null;
+ }
+
+ @RequestMapping(value={"/ps_dictionary/remove_PSClosedLoop"}, method={RequestMethod.POST})
+ public void removePSClosedLoopDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException {
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.removeData(request, response, psCLDatas, PolicyScopeClosedLoop.class);
+ }
+
+ @RequestMapping(value={"/get_PSServiceDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getPSServiceEntityDataByName(HttpServletResponse response){
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getDataByEntity(response, psServiceDatas, "name", PolicyScopeService.class);
+ }
+
+ @RequestMapping(value={"/get_PSServiceData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getPSServiceEntityData(HttpServletResponse response){
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getData(response, psServiceDatas, PolicyScopeService.class);
+ }
+
+ @RequestMapping(value={"/ps_dictionary/save_psService"}, method={RequestMethod.POST})
+ public ModelAndView savePSServiceDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ try {
+ boolean fromAPI = utils.isRequestFromAPI(request);
+ ObjectMapper mapper = new ObjectMapper();
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ JsonNode root = mapper.readTree(request.getReader());
+ PolicyScopeService onapData;
+ if (fromAPI) {
+ onapData = mapper.readValue(root.get(dictionaryFields).toString(), PolicyScopeService.class);
+ } else {
+ onapData = mapper.readValue(root.get("psServiceDictionaryData").toString(), PolicyScopeService.class);
+ }
+
+ List<Object> duplicateData = commonClassDao.checkDuplicateEntry(onapData.getName(), "name", PolicyScopeService.class);
+ boolean duplicateflag = false;
+ if(!duplicateData.isEmpty()){
+ PolicyScopeService data = (PolicyScopeService) duplicateData.get(0);
+ if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
+ onapData.setId(data.getId());
+ }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
+ (request.getParameter(operation) == null && (data.getId() != onapData.getId()))){
+ duplicateflag = true;
+ }
+ }
+ String responseString = null;
+ if(!duplicateflag){
+ if(onapData.getId() == 0){
+ commonClassDao.save(onapData);
+ }else{
+ commonClassDao.update(onapData);
+ }
+ responseString = mapper.writeValueAsString(commonClassDao.getData(PolicyScopeService.class));
+ }else{
+ responseString = duplicateResponseString;
+ }
+ if(fromAPI){
+ return utils.getResultForApi(responseString);
+ }else{
+ utils.setResponseData(response, psServiceDatas, responseString);
+ }
+ }catch (Exception e){
+ utils.setErrorResponseData(response, e);
+ }
+ return null;
+ }
+
+ @RequestMapping(value={"/ps_dictionary/remove_PSService"}, method={RequestMethod.POST})
+ public void removePSServiceDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.removeData(request, response, psServiceDatas, PolicyScopeService.class);
+ }
+
+ @RequestMapping(value={"/get_PSTypeDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getPSTypeEntityDataByName(HttpServletResponse response){
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getDataByEntity(response, psTypeDatas, "name", PolicyScopeType.class);
+ }
+
+ @RequestMapping(value={"/get_PSTypeData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getPSTypeEntityData(HttpServletResponse response){
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getData(response, psTypeDatas, PolicyScopeType.class);
+ }
+
+ @RequestMapping(value={"/ps_dictionary/save_psType"}, method={RequestMethod.POST})
+ public ModelAndView savePSTypeDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ try {
+ boolean fromAPI = utils.isRequestFromAPI(request);
+ ObjectMapper mapper = new ObjectMapper();
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ JsonNode root = mapper.readTree(request.getReader());
+ PolicyScopeType onapData;
+ if(fromAPI){
+ onapData = mapper.readValue(root.get(dictionaryFields).toString(), PolicyScopeType.class);
+ }else{
+ onapData = mapper.readValue(root.get("psTypeDictionaryData").toString(), PolicyScopeType.class);
+ }
+
+ List<Object> duplicateData = commonClassDao.checkDuplicateEntry(onapData.getName(), "name", PolicyScopeType.class);
+ boolean duplicateflag = false;
+ if(!duplicateData.isEmpty()){
+ PolicyScopeType data = (PolicyScopeType) duplicateData.get(0);
+ if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
+ onapData.setId(data.getId());
+ }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
+ (request.getParameter(operation) == null && (data.getId() != onapData.getId()))){
+ duplicateflag = true;
+ }
+ }
+ String responseString = null;
+ if(!duplicateflag){
+ if(onapData.getId() == 0){
+ commonClassDao.save(onapData);
+ }else{
+ commonClassDao.update(onapData);
+ }
+ responseString = mapper.writeValueAsString(commonClassDao.getData(PolicyScopeType.class));
+ }else{
+ responseString = duplicateResponseString;
+ }
+ if(fromAPI){
+ return utils.getResultForApi(responseString);
+ }else{
+ utils.setResponseData(response, psTypeDatas, responseString);
+ }
+ }catch (Exception e){
+ utils.setErrorResponseData(response, e);
+ }
+ return null;
+ }
+
+ @RequestMapping(value={"/ps_dictionary/remove_PSType"}, method={RequestMethod.POST})
+ public void removePSTypeDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException {
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.removeData(request, response, psTypeDatas, PolicyScopeType.class);
+ }
+
+ @RequestMapping(value={"/get_PSResourceDataByName"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getPSResourceEntityDataByName(HttpServletResponse response){
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getDataByEntity(response, psResourceDatas, "name", PolicyScopeResource.class);
+ }
+
+ @RequestMapping(value={"/get_PSResourceData"}, method={RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
+ public void getPSResourceEntityData(HttpServletResponse response){
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getData(response, psResourceDatas, PolicyScopeResource.class);
+ }
+
+ @RequestMapping(value={"/ps_dictionary/save_psResource"}, method={RequestMethod.POST})
+ public ModelAndView savePSResourceDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ try {
+ boolean fromAPI = utils.isRequestFromAPI(request);
+ ObjectMapper mapper = new ObjectMapper();
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ JsonNode root = mapper.readTree(request.getReader());
+ PolicyScopeResource onapData;
+ if (fromAPI) {
+ onapData = mapper.readValue(root.get(dictionaryFields).toString(), PolicyScopeResource.class);
+ } else {
+ onapData = mapper.readValue(root.get("psResourceDictionaryData").toString(), PolicyScopeResource.class);
+ }
+
+ List<Object> duplicateData = commonClassDao.checkDuplicateEntry(onapData.getName(), "name", PolicyScopeResource.class);
+ boolean duplicateflag = false;
+ if(!duplicateData.isEmpty()){
+ PolicyScopeResource data = (PolicyScopeResource) duplicateData.get(0);
+ if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
+ onapData.setId(data.getId());
+ }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
+ (request.getParameter(operation) == null && (data.getId() != onapData.getId()))){
+ duplicateflag = true;
+ }
+ }
+ String responseString = null;
+ if(!duplicateflag){
+ if(onapData.getId() == 0){
+ commonClassDao.save(onapData);
+ }else{
+ commonClassDao.update(onapData);
+ }
+ responseString = mapper.writeValueAsString(commonClassDao.getData(PolicyScopeResource.class));
+ }else{
+ responseString = duplicateResponseString;
+ }
+ if(fromAPI){
+ return utils.getResultForApi(responseString);
+ }else{
+ utils.setResponseData(response, psResourceDatas, responseString);
+ }
+ }catch (Exception e){
+ utils.setErrorResponseData(response, e);
+ }
+ return null;
+ }
+
+ @RequestMapping(value={"/ps_dictionary/remove_PSResource"}, method={RequestMethod.POST})
+ public void removePSResourceDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException {
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.removeData(request, response, psResourceDatas, PolicyScopeResource.class);
+ }
}
class GroupPolicyScope{
- String resource;
- String type;
- String service;
- String closedloop;
- public String getResource() {
- return resource;
- }
- public void setResource(String resource) {
- this.resource = resource;
- }
- public String getType() {
- return type;
- }
- public void setType(String type) {
- this.type = type;
- }
- public String getService() {
- return service;
- }
- public void setService(String service) {
- this.service = service;
- }
- public String getClosedloop() {
- return closedloop;
- }
- public void setClosedloop(String closedloop) {
- this.closedloop = closedloop;
- }
+ String resource;
+ String type;
+ String service;
+ String closedloop;
+ public String getResource() {
+ return resource;
+ }
+ public void setResource(String resource) {
+ this.resource = resource;
+ }
+ public String getType() {
+ return type;
+ }
+ public void setType(String type) {
+ this.type = type;
+ }
+ public String getService() {
+ return service;
+ }
+ public void setService(String service) {
+ this.service = service;
+ }
+ public String getClosedloop() {
+ return closedloop;
+ }
+ public void setClosedloop(String closedloop) {
+ this.closedloop = closedloop;
+ }
}
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 397904f30..227be1bdf 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
@@ -55,134 +55,134 @@ import com.fasterxml.jackson.databind.ObjectMapper;
@Controller
public class PushPolicyController {
- 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 operation = "operation";
- private static String messageContent = "message";
-
- private static final String REGEX = "[0-9a-zA-Z._ ]*";
-
- @Autowired
- public PushPolicyController(CommonClassDao commonClassDao){
- PushPolicyController.commonClassDao = commonClassDao;
- }
-
- public void setCommonClassDao(CommonClassDao commonClassDao){
- PushPolicyController.commonClassDao = commonClassDao;
- }
- /*
- * This is an empty constructor
- */
- public PushPolicyController(){}
-
- @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 {
- JsonNode root = mapper.readTree(request.getInputStream());
- String policyScope = root.get("policyScope").asText();
- String filePrefix = root.get("filePrefix").asText();
- String policyName = root.get(policyNames).asText();
- String pdpGroup = root.get("pdpGroup").asText();
- String requestID = request.getHeader("X-ECOMP-RequestID");
- if(requestID==null){
- requestID = UUID.randomUUID().toString();
+ 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 operation = "operation";
+ private static String messageContent = "message";
+
+ private static final String REGEX = "[0-9a-zA-Z._ ]*";
+
+ @Autowired
+ public PushPolicyController(CommonClassDao commonClassDao){
+ PushPolicyController.commonClassDao = commonClassDao;
+ }
+
+ public void setCommonClassDao(CommonClassDao commonClassDao){
+ PushPolicyController.commonClassDao = commonClassDao;
+ }
+ /*
+ * This is an empty constructor
+ */
+ public PushPolicyController(){}
+
+ @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 {
+ JsonNode root = mapper.readTree(request.getInputStream());
+ String policyScope = root.get("policyScope").asText();
+ String filePrefix = root.get("filePrefix").asText();
+ String policyName = root.get(policyNames).asText();
+ String pdpGroup = root.get("pdpGroup").asText();
+ String requestID = request.getHeader("X-ECOMP-RequestID");
+ 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){
- 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{
- 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;
- }
- }
+ }
+ 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){
+ 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{
+ 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) {
- StdPDPGroup selectedPDPGroup = null;
- StdPDPPolicy selectedPolicy = null;
- //Get the selected PDP Group to push the policy
- try {
- selectedPDPGroup = (StdPDPGroup) XACMLPapServlet.getPAPEngine().getGroup(pdpGroup);
- } catch (PAPException e1) {
- PolicyLogger.error(e1);
- }
- if(selectedPDPGroup==null){
- String message = "Unknown groupId '" + selectedPDPGroup + "'";
- if(!message.matches(REGEX) ){
- message = "Unknown groupId";
- }
- PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " " + message);
- response.addHeader(errorMsg, "unknownGroupId");
- response.addHeader(operation, "push");
- response.addHeader(messageContent, message);
- response.setStatus(HttpServletResponse.SC_NOT_FOUND);
- return;
- }
- //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");
- createPolicyQuery.setParameter("scope", policyScope);
- 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");
- 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;
- }
- File temp = new File(policyName);
- 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);
- }
- try {
- new ObjectOutputStream(response.getOutputStream()).writeObject(selectedPolicy);
- } catch (IOException e) {
- LOGGER.error(e);
- response.addHeader(errorMsg, "policyCopyError");
- response.addHeader(messageContent, e.getMessage());
- response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
- return;
- }
- 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.
- }
+ 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
+ try {
+ selectedPDPGroup = (StdPDPGroup) XACMLPapServlet.getPAPEngine().getGroup(pdpGroup);
+ } catch (PAPException e1) {
+ PolicyLogger.error(e1);
+ }
+ if(selectedPDPGroup==null){
+ String message = "Unknown groupId '" + selectedPDPGroup + "'";
+ if(!message.matches(REGEX) ){
+ message = "Unknown groupId";
+ }
+ PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + " " + message);
+ response.addHeader(errorMsg, "unknownGroupId");
+ response.addHeader(operation, "push");
+ response.addHeader(messageContent, message);
+ response.setStatus(HttpServletResponse.SC_NOT_FOUND);
+ return;
+ }
+ //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");
+ createPolicyQuery.setParameter("scope", policyScope);
+ 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");
+ 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;
+ }
+ File temp = new File(policyName);
+ 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);
+ }
+ try {
+ new ObjectOutputStream(response.getOutputStream()).writeObject(selectedPolicy);
+ } catch (IOException e) {
+ LOGGER.error(e);
+ response.addHeader(errorMsg, "policyCopyError");
+ response.addHeader(messageContent, e.getMessage());
+ response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+ return;
+ }
+ 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/controller/SafePolicyController.java b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/SafePolicyController.java
index 209ba4f45..fe49e3478 100644
--- a/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/SafePolicyController.java
+++ b/ONAP-PAP-REST/src/main/java/org/onap/policy/pap/xacml/rest/controller/SafePolicyController.java
@@ -46,165 +46,165 @@ import com.fasterxml.jackson.databind.ObjectMapper;
@Controller
public class SafePolicyController {
- private static CommonClassDao commonClassDao;
- private static String duplicateResponseString = "Duplicate";
- private static String operation = "operation";
- private static String riskTypeDatas = "riskTypeDictionaryDatas";
- private static String safePolicyWarningDatas = "safePolicyWarningDatas";
-
- @Autowired
- public SafePolicyController(CommonClassDao commonClassDao){
- SafePolicyController.commonClassDao = commonClassDao;
- }
-
- public void setCommonClassDao(CommonClassDao commonClassDao){
- SafePolicyController.commonClassDao = commonClassDao;
- }
-
- public SafePolicyController(){
- super();
- }
-
- private DictionaryUtils getDictionaryUtilsInstance(){
- return DictionaryUtils.getDictionaryUtils();
- }
-
- @RequestMapping(value = { "/get_RiskTypeDataByName" }, method = {RequestMethod.GET }, produces = MediaType.APPLICATION_JSON_VALUE)
- public void getRiskTypeDictionaryByNameEntityData(HttpServletResponse response) {
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getDataByEntity(response, riskTypeDatas, "name", RiskType.class);
- }
-
- @RequestMapping(value = { "/get_RiskTypeData" }, method = {RequestMethod.GET }, produces = MediaType.APPLICATION_JSON_VALUE)
- public void getRiskTypeDictionaryEntityData(HttpServletResponse response) {
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getData(response, riskTypeDatas, RiskType.class);
- }
-
- @RequestMapping(value = { "/sp_dictionary/save_riskType" }, method = {RequestMethod.POST })
- public ModelAndView saveRiskTypeDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException {
- DictionaryUtils utils = getDictionaryUtilsInstance();
- try {
- boolean fromAPI = utils.isRequestFromAPI(request);
- ObjectMapper mapper = new ObjectMapper();
- mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- JsonNode root = mapper.readTree(request.getReader());
+ private static CommonClassDao commonClassDao;
+ private static String duplicateResponseString = "Duplicate";
+ private static String operation = "operation";
+ private static String riskTypeDatas = "riskTypeDictionaryDatas";
+ private static String safePolicyWarningDatas = "safePolicyWarningDatas";
+
+ @Autowired
+ public SafePolicyController(CommonClassDao commonClassDao){
+ SafePolicyController.commonClassDao = commonClassDao;
+ }
+
+ public void setCommonClassDao(CommonClassDao commonClassDao){
+ SafePolicyController.commonClassDao = commonClassDao;
+ }
+
+ public SafePolicyController(){
+ super();
+ }
+
+ private DictionaryUtils getDictionaryUtilsInstance(){
+ return DictionaryUtils.getDictionaryUtils();
+ }
+
+ @RequestMapping(value = { "/get_RiskTypeDataByName" }, method = {RequestMethod.GET }, produces = MediaType.APPLICATION_JSON_VALUE)
+ public void getRiskTypeDictionaryByNameEntityData(HttpServletResponse response) {
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getDataByEntity(response, riskTypeDatas, "name", RiskType.class);
+ }
+
+ @RequestMapping(value = { "/get_RiskTypeData" }, method = {RequestMethod.GET }, produces = MediaType.APPLICATION_JSON_VALUE)
+ public void getRiskTypeDictionaryEntityData(HttpServletResponse response) {
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getData(response, riskTypeDatas, RiskType.class);
+ }
+
+ @RequestMapping(value = { "/sp_dictionary/save_riskType" }, method = {RequestMethod.POST })
+ public ModelAndView saveRiskTypeDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException {
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ try {
+ boolean fromAPI = utils.isRequestFromAPI(request);
+ ObjectMapper mapper = new ObjectMapper();
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ JsonNode root = mapper.readTree(request.getReader());
RiskType riskTypeData;
String userId = null;
if (fromAPI) {
riskTypeData = mapper.readValue(root.get("dictionaryFields").toString(), RiskType.class);
userId = "API";
} else {
- riskTypeData = mapper.readValue(root.get("riskTypeDictionaryData").toString(), RiskType.class);
- userId = root.get("userid").textValue();
+ riskTypeData = mapper.readValue(root.get("riskTypeDictionaryData").toString(), RiskType.class);
+ userId = root.get("userid").textValue();
}
UserInfo userInfo = utils.getUserInfo(userId);
List<Object> duplicateData = commonClassDao.checkDuplicateEntry(riskTypeData.getRiskName(), "name", RiskType.class);
- boolean duplicateflag = false;
+ boolean duplicateflag = false;
if(!duplicateData.isEmpty()){
- RiskType data = (RiskType) duplicateData.get(0);
- if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
- riskTypeData.setId(data.getId());
- }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
- (request.getParameter(operation) == null && (data.getId() != riskTypeData.getId()))){
- duplicateflag = true;
- }
- }
+ RiskType data = (RiskType) duplicateData.get(0);
+ if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
+ riskTypeData.setId(data.getId());
+ }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
+ (request.getParameter(operation) == null && (data.getId() != riskTypeData.getId()))){
+ duplicateflag = true;
+ }
+ }
String responseString = null;
- if(!duplicateflag){
- riskTypeData.setUserModifiedBy(userInfo);
- if(riskTypeData.getId() == 0){
- riskTypeData.setUserCreatedBy(userInfo);
- commonClassDao.save(riskTypeData);
- }else{
- riskTypeData.setModifiedDate(new Date());
- commonClassDao.update(riskTypeData);
- }
- responseString = mapper.writeValueAsString(commonClassDao.getData(RiskType.class));
- }else{
- responseString = duplicateResponseString;
- }
- if(fromAPI){
- return utils.getResultForApi(responseString);
- }else{
- utils.setResponseData(response, riskTypeDatas, responseString);
- }
+ if(!duplicateflag){
+ riskTypeData.setUserModifiedBy(userInfo);
+ if(riskTypeData.getId() == 0){
+ riskTypeData.setUserCreatedBy(userInfo);
+ commonClassDao.save(riskTypeData);
+ }else{
+ riskTypeData.setModifiedDate(new Date());
+ commonClassDao.update(riskTypeData);
+ }
+ responseString = mapper.writeValueAsString(commonClassDao.getData(RiskType.class));
+ }else{
+ responseString = duplicateResponseString;
+ }
+ if(fromAPI){
+ return utils.getResultForApi(responseString);
+ }else{
+ utils.setResponseData(response, riskTypeDatas, responseString);
+ }
}catch (Exception e) {
- utils.setErrorResponseData(response, e);
- }
- return null;
- }
-
- @RequestMapping(value = { "/sp_dictionary/remove_riskType" }, method = {RequestMethod.POST })
- public void removeRiskTypeDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.removeData(request, response, riskTypeDatas, RiskType.class);
- }
-
- @RequestMapping(value = { "/get_SafePolicyWarningDataByName" }, method = {RequestMethod.GET }, produces = MediaType.APPLICATION_JSON_VALUE)
- public void getSafePolicyWarningEntityDataByName(HttpServletResponse response) {
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getDataByEntity(response, safePolicyWarningDatas, "name", SafePolicyWarning.class);
- }
-
- @RequestMapping(value = { "/get_SafePolicyWarningData" }, method = {RequestMethod.GET }, produces = MediaType.APPLICATION_JSON_VALUE)
- public void getSafePolicyWarningeEntityData(HttpServletResponse response) {
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.getData(response, safePolicyWarningDatas, SafePolicyWarning.class);
- }
-
- @RequestMapping(value = { "/sp_dictionary/save_safePolicyWarning" }, method = {RequestMethod.POST })
- public ModelAndView saveSafePolicyWarningDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException {
- DictionaryUtils utils = getDictionaryUtilsInstance();
- try {
- boolean fromAPI = utils.isRequestFromAPI(request);
- ObjectMapper mapper = new ObjectMapper();
- mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- JsonNode root = mapper.readTree(request.getReader());
- SafePolicyWarning safePolicyWarning;
+ utils.setErrorResponseData(response, e);
+ }
+ return null;
+ }
+
+ @RequestMapping(value = { "/sp_dictionary/remove_riskType" }, method = {RequestMethod.POST })
+ public void removeRiskTypeDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException{
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.removeData(request, response, riskTypeDatas, RiskType.class);
+ }
+
+ @RequestMapping(value = { "/get_SafePolicyWarningDataByName" }, method = {RequestMethod.GET }, produces = MediaType.APPLICATION_JSON_VALUE)
+ public void getSafePolicyWarningEntityDataByName(HttpServletResponse response) {
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getDataByEntity(response, safePolicyWarningDatas, "name", SafePolicyWarning.class);
+ }
+
+ @RequestMapping(value = { "/get_SafePolicyWarningData" }, method = {RequestMethod.GET }, produces = MediaType.APPLICATION_JSON_VALUE)
+ public void getSafePolicyWarningeEntityData(HttpServletResponse response) {
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.getData(response, safePolicyWarningDatas, SafePolicyWarning.class);
+ }
+
+ @RequestMapping(value = { "/sp_dictionary/save_safePolicyWarning" }, method = {RequestMethod.POST })
+ public ModelAndView saveSafePolicyWarningDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException {
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ try {
+ boolean fromAPI = utils.isRequestFromAPI(request);
+ ObjectMapper mapper = new ObjectMapper();
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ JsonNode root = mapper.readTree(request.getReader());
+ SafePolicyWarning safePolicyWarning;
if (fromAPI) {
safePolicyWarning = mapper.readValue(root.get("dictionaryFields").toString(), SafePolicyWarning.class);
} else {
- safePolicyWarning = mapper.readValue(root.get("safePolicyWarningData").toString(), SafePolicyWarning.class);
+ safePolicyWarning = mapper.readValue(root.get("safePolicyWarningData").toString(), SafePolicyWarning.class);
}
List<Object> duplicateData = commonClassDao.checkDuplicateEntry(safePolicyWarning.getName(), "name", SafePolicyWarning.class);
- boolean duplicateflag = false;
- if(!duplicateData.isEmpty()){
- SafePolicyWarning data = (SafePolicyWarning) duplicateData.get(0);
- if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
- safePolicyWarning.setId(data.getId());
- }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
- (request.getParameter(operation) == null && (data.getId() != safePolicyWarning.getId()))){
- duplicateflag = true;
- }
- }
- String responseString = null;
- if(!duplicateflag){
- if(safePolicyWarning.getId() == 0){
- commonClassDao.save(safePolicyWarning);
- }else{
- commonClassDao.update(safePolicyWarning);
- }
- responseString = mapper.writeValueAsString(commonClassDao.getData(SafePolicyWarning.class));
- }else{
- responseString = duplicateResponseString;
- }
- if(fromAPI){
- return utils.getResultForApi(responseString);
- }else{
- utils.setResponseData(response, safePolicyWarningDatas, responseString);
- }
+ boolean duplicateflag = false;
+ if(!duplicateData.isEmpty()){
+ SafePolicyWarning data = (SafePolicyWarning) duplicateData.get(0);
+ if(request.getParameter(operation) != null && "update".equals(request.getParameter(operation))){
+ safePolicyWarning.setId(data.getId());
+ }else if((request.getParameter(operation) != null && !"update".equals(request.getParameter(operation))) ||
+ (request.getParameter(operation) == null && (data.getId() != safePolicyWarning.getId()))){
+ duplicateflag = true;
+ }
+ }
+ String responseString = null;
+ if(!duplicateflag){
+ if(safePolicyWarning.getId() == 0){
+ commonClassDao.save(safePolicyWarning);
+ }else{
+ commonClassDao.update(safePolicyWarning);
+ }
+ responseString = mapper.writeValueAsString(commonClassDao.getData(SafePolicyWarning.class));
+ }else{
+ responseString = duplicateResponseString;
+ }
+ if(fromAPI){
+ return utils.getResultForApi(responseString);
+ }else{
+ utils.setResponseData(response, safePolicyWarningDatas, responseString);
+ }
}catch (Exception e) {
- utils.setErrorResponseData(response, e);
- }
- return null;
- }
-
- @RequestMapping(value = { "/sp_dictionary/remove_SafePolicyWarning" }, method = {RequestMethod.POST })
- public void removeSafePolicyWarningDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException {
- DictionaryUtils utils = getDictionaryUtilsInstance();
- utils.removeData(request, response, safePolicyWarningDatas, SafePolicyWarning.class);
- }
+ utils.setErrorResponseData(response, e);
+ }
+ return null;
+ }
+
+ @RequestMapping(value = { "/sp_dictionary/remove_SafePolicyWarning" }, method = {RequestMethod.POST })
+ public void removeSafePolicyWarningDictionary(HttpServletRequest request, HttpServletResponse response) throws IOException {
+ DictionaryUtils utils = getDictionaryUtilsInstance();
+ utils.removeData(request, response, safePolicyWarningDatas, SafePolicyWarning.class);
+ }
}