X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=POLICY-SDK-APP%2Fsrc%2Fmain%2Fjava%2Forg%2Fopenecomp%2Fpolicy%2Fcontroller%2FCreateFirewallController.java;h=2232da6084e27e7a1f3e4b6c1ca7cdd512856845;hb=4ca818fdfb9b807562166800a086b413593d6894;hp=ecc39cdb612995e58bc23a0e5cb5d211bd334402;hpb=a330af579866dacbe595e2e4ad1dd29cd3c96945;p=policy%2Fengine.git diff --git a/POLICY-SDK-APP/src/main/java/org/openecomp/policy/controller/CreateFirewallController.java b/POLICY-SDK-APP/src/main/java/org/openecomp/policy/controller/CreateFirewallController.java index ecc39cdb6..2232da608 100644 --- a/POLICY-SDK-APP/src/main/java/org/openecomp/policy/controller/CreateFirewallController.java +++ b/POLICY-SDK-APP/src/main/java/org/openecomp/policy/controller/CreateFirewallController.java @@ -19,9 +19,6 @@ */ package org.openecomp.policy.controller; - - -import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import java.util.HashMap; @@ -43,6 +40,7 @@ import org.openecomp.policy.rest.adapter.AddressGroupJson; import org.openecomp.policy.rest.adapter.AddressJson; import org.openecomp.policy.rest.adapter.AddressMembers; import org.openecomp.policy.rest.adapter.DeployNowJson; +import org.openecomp.policy.rest.adapter.IdMap; import org.openecomp.policy.rest.adapter.PolicyRestAdapter; import org.openecomp.policy.rest.adapter.PrefixIPList; import org.openecomp.policy.rest.adapter.ServiceGroupJson; @@ -53,6 +51,7 @@ import org.openecomp.policy.rest.adapter.TagDefines; import org.openecomp.policy.rest.adapter.Tags; import org.openecomp.policy.rest.adapter.Term; import org.openecomp.policy.rest.adapter.TermCollector; +import org.openecomp.policy.rest.adapter.VendorSpecificData; import org.openecomp.policy.rest.dao.CommonClassDao; import org.openecomp.policy.rest.jpa.AddressGroup; import org.openecomp.policy.rest.jpa.FWTagPicker; @@ -67,17 +66,15 @@ import org.openecomp.portalsdk.core.controller.RestrictedBaseController; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.servlet.ModelAndView; -import com.fasterxml.jackson.core.JsonGenerationException; import com.fasterxml.jackson.databind.DeserializationFeature; -import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectWriter; import oasis.names.tc.xacml._3_0.core.schema.wd_17.AllOfType; import oasis.names.tc.xacml._3_0.core.schema.wd_17.AnyOfType; +import oasis.names.tc.xacml._3_0.core.schema.wd_17.AttributeDesignatorType; import oasis.names.tc.xacml._3_0.core.schema.wd_17.AttributeValueType; import oasis.names.tc.xacml._3_0.core.schema.wd_17.MatchType; import oasis.names.tc.xacml._3_0.core.schema.wd_17.PolicyType; @@ -86,7 +83,7 @@ import oasis.names.tc.xacml._3_0.core.schema.wd_17.TargetType; @Controller @RequestMapping("/") public class CreateFirewallController extends RestrictedBaseController { - private static Logger logger = FlexLogger.getLogger(CreateFirewallController.class); + private static Logger policyLogger = FlexLogger.getLogger(CreateFirewallController.class); @Autowired SessionFactory sessionFactory; @@ -95,8 +92,8 @@ public class CreateFirewallController extends RestrictedBaseController { private List tagCollectorList; private String jsonBody; - List expandablePrefixIPList = new ArrayList(); - List expandableServicesList= new ArrayList(); + List expandablePrefixIPList = new ArrayList<>(); + List expandableServicesList= new ArrayList<>(); @Autowired private CreateFirewallController(CommonClassDao commonClassDao){ CreateFirewallController.commonClassDao = commonClassDao; @@ -109,9 +106,9 @@ public class CreateFirewallController extends RestrictedBaseController { public PolicyRestAdapter setDataToPolicyRestAdapter(PolicyRestAdapter policyData){ - termCollectorList = new ArrayList(); - tagCollectorList = new ArrayList(); - if(policyData.getAttributes().size() > 0){ + termCollectorList = new ArrayList<>(); + tagCollectorList = new ArrayList<>(); + if(!policyData.getAttributes().isEmpty()){ for(Object attribute : policyData.getAttributes()){ if(attribute instanceof LinkedHashMap){ String key = ((LinkedHashMap) attribute).get("key").toString(); @@ -123,9 +120,8 @@ public class CreateFirewallController extends RestrictedBaseController { } } jsonBody = constructJson(policyData); - if (jsonBody != null || jsonBody.equalsIgnoreCase("")) { + if (jsonBody != null && !jsonBody.equalsIgnoreCase("")) { policyData.setJsonBody(jsonBody); - } else { policyData.setJsonBody("{}"); } @@ -135,16 +131,14 @@ public class CreateFirewallController extends RestrictedBaseController { } private List mapping(String expandableList) { - String value = new String(); - String desc = new String(); - List valueDesc= new ArrayList(); + List valueDesc= new ArrayList<>(); List prefixListData = commonClassDao.getData(PrefixList.class); for (int i = 0; i< prefixListData.size(); i++) { PrefixList prefixList = (PrefixList) prefixListData.get(i); if (prefixList.getPrefixListName().equals(expandableList)) { - value = prefixList.getPrefixListValue(); + String value = prefixList.getPrefixListValue(); valueDesc.add(value); - desc= prefixList.getDescription(); + String desc= prefixList.getDescription(); valueDesc.add(desc); break; } @@ -191,21 +185,22 @@ public class CreateFirewallController extends RestrictedBaseController { } public void prePopulateFWPolicyData(PolicyRestAdapter policyAdapter, PolicyEntity entity) { - attributeList = new ArrayList(); + attributeList = new ArrayList<>(); if (policyAdapter.getPolicyData() instanceof PolicyType) { Object policyData = policyAdapter.getPolicyData(); PolicyType policy = (PolicyType) policyData; // policy name value is the policy name without any prefix and Extensions. policyAdapter.setOldPolicyFileName(policyAdapter.getPolicyName()); String policyNameValue = policyAdapter.getPolicyName().substring(policyAdapter.getPolicyName().indexOf("FW_") +3); - if (logger.isDebugEnabled()) { - logger.debug("Prepopulating form data for Config Policy selected:"+ policyAdapter.getPolicyName()); + if (policyLogger.isDebugEnabled()) { + policyLogger.debug("Prepopulating form data for Config Policy selected:"+ policyAdapter.getPolicyName()); } policyAdapter.setPolicyName(policyNameValue); String description = ""; try{ description = policy.getDescription().substring(0, policy.getDescription().indexOf("@CreatedBy:")); }catch(Exception e){ + policyLogger.info("General error", e); description = policy.getDescription(); } policyAdapter.setPolicyDescription(description); @@ -229,18 +224,19 @@ public class CreateFirewallController extends RestrictedBaseController { } } catch(Exception e) { - logger.error("Exception Caused while Retriving the JSON body data" +e); + policyLogger.error("Exception Caused while Retriving the JSON body data" +e); } Map termTagMap=null; - - for(int i=0;i(); - String ruleName= tc1.getFirewallRuleList().get(i).getRuleName(); - String tagPickerName=tc1.getRuleToTag().get(i).getTagPickerName(); - termTagMap.put("key", ruleName); - termTagMap.put("value", tagPickerName); - attributeList.add(termTagMap); + if(tc1 != null){ + for(int i=0;i(); + String ruleName= tc1.getFirewallRuleList().get(i).getRuleName(); + String tagPickerName=tc1.getRuleToTag().get(i).getTagPickerName(); + termTagMap.put("key", ruleName); + termTagMap.put("value", tagPickerName); + attributeList.add(termTagMap); + } } policyAdapter.setAttributes(attributeList); // Get the target data under policy. @@ -249,7 +245,6 @@ public class CreateFirewallController extends RestrictedBaseController { // Under target we have AnyOFType List anyOfList = target.getAnyOf(); if (anyOfList != null) { - int index = 0; Iterator iterAnyOf = anyOfList.iterator(); while (iterAnyOf.hasNext()) { AnyOfType anyOf = iterAnyOf.next(); @@ -272,25 +267,24 @@ public class CreateFirewallController extends RestrictedBaseController { // AttributeValueType attributeValue = match.getAttributeValue(); String value = (String) attributeValue.getContent().get(0); - if (index == 1) { + AttributeDesignatorType designator = match.getAttributeDesignator(); + String attributeId = designator.getAttributeId(); + if (attributeId.equals("ConfigName")) { policyAdapter.setConfigName(value); } - if (index == 2){ + if (attributeId.equals("RiskType")){ policyAdapter.setRiskType(value); } - - if (index == 3){ + if (attributeId.equals("RiskLevel")){ policyAdapter.setRiskLevel(value); } - - if (index == 4){ + if (attributeId.equals("guard")){ policyAdapter.setGuard(value); } - if (index == 5 && !value.contains("NA")){ + if (attributeId.equals("TTLDate") && !value.contains("NA")){ String newDate = convertDate(value, true); policyAdapter.setTtlDate(newDate); } - index++; } } } @@ -318,14 +312,14 @@ public class CreateFirewallController extends RestrictedBaseController { } @RequestMapping(value={"/policyController/ViewFWPolicyRule.htm"}, method={org.springframework.web.bind.annotation.RequestMethod.POST}) - public ModelAndView setFWViewRule(HttpServletRequest request, HttpServletResponse response) throws Exception{ + public void setFWViewRule(HttpServletRequest request, HttpServletResponse response){ try { - termCollectorList = new ArrayList(); + termCollectorList = new ArrayList<>(); ObjectMapper mapper = new ObjectMapper(); mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); JsonNode root = mapper.readTree(request.getReader()); PolicyRestAdapter policyData = (PolicyRestAdapter)mapper.readValue(root.get("policyData").toString(), PolicyRestAdapter.class); - if(policyData.getAttributes().size() > 0){ + if(!policyData.getAttributes().isEmpty()){ for(Object attribute : policyData.getAttributes()){ if(attribute instanceof LinkedHashMap){ String key = ((LinkedHashMap) attribute).get("key").toString(); @@ -339,7 +333,7 @@ public class CreateFirewallController extends RestrictedBaseController { String ruleSrcPort=null; String ruleDestPort=null; String ruleAction=null; - List valueDesc= new ArrayList(); + List valueDesc= new ArrayList<>(); StringBuffer displayString = new StringBuffer(); for (String id : termCollectorList) { List tmList = commonClassDao.getDataById(TermList.class, "termName", id); @@ -451,7 +445,7 @@ public class CreateFirewallController extends RestrictedBaseController { } } } - displayString.append("\n"); + displayString.append("\n"); } ruleAction=(jpaTermList).getAction(); @@ -470,11 +464,9 @@ public class CreateFirewallController extends RestrictedBaseController { String responseString = mapper.writeValueAsString(displayString); JSONObject j = new JSONObject("{policyData: " + responseString + "}"); out.write(j.toString()); - return null; } catch (Exception e) { - logger.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e); + policyLogger.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e); } - return null; } private String constructJson(PolicyRestAdapter policyData) { @@ -500,21 +492,21 @@ public class CreateFirewallController extends RestrictedBaseController { String json = null; - List expandableList = new ArrayList(); + List expandableList = new ArrayList<>(); TermList jpaTermList; TermCollector tc = new TermCollector(); SecurityZone jpaSecurityZone; - List termList = new ArrayList(); + List termList = new ArrayList<>(); Tags tags=null; - ListtagsList= new ArrayList(); + ListtagsList= new ArrayList<>(); TagDefines tagDefine= new TagDefines(); List tagList=null; ServiceListJson targetSl=null; int i=0; try{ - + String networkRole=""; for(String tag:tagCollectorList){ tags= new Tags(); List tagListData = commonClassDao.getData(FWTagPicker.class); @@ -522,7 +514,7 @@ public class CreateFirewallController extends RestrictedBaseController { FWTagPicker jpaTagPickerList=(FWTagPicker) tagListData.get(tagCounter); if (jpaTagPickerList.getTagPickerName().equals(tag) ){ String tagValues=jpaTagPickerList.getTagValues(); - tagList= new ArrayList(); + tagList= new ArrayList<>(); for(String val:tagValues.split("#")) { int index=val.indexOf(":"); String keyToStore=val.substring(0,index); @@ -535,12 +527,14 @@ public class CreateFirewallController extends RestrictedBaseController { tagList.add(tagDefine); } - + networkRole=jpaTagPickerList.getNetworkRole(); + break; } } tags.setTags(tagList); tags.setTagPickerName(tag); tags.setRuleName(termCollectorList.get(i)); + tags.setNetworkRole(networkRole); tagsList.add(tags); i++; } @@ -562,46 +556,46 @@ public class CreateFirewallController extends RestrictedBaseController { ruleFromZone=jpaTermList.getFromZone(); if ((ruleFromZone != null) && (!ruleFromZone.isEmpty())){ - fromZone_map = new HashMap(); + fromZone_map = new HashMap<>(); fromZone_map.put(tl, ruleFromZone); } ruleToZone=jpaTermList.getToZone(); if ((ruleToZone != null) && (!ruleToZone.isEmpty())){ - toZone_map = new HashMap(); + toZone_map = new HashMap<>(); toZone_map.put(tl, ruleToZone); } ruleSrcPrefixList=jpaTermList.getSrcIPList(); if ((ruleSrcPrefixList != null) && (!ruleSrcPrefixList.isEmpty())){ - srcIP_map = new HashMap(); + srcIP_map = new HashMap<>(); srcIP_map.put(tl, ruleSrcPrefixList); } ruleDestPrefixList= jpaTermList.getDestIPList(); if ((ruleDestPrefixList != null) && (!ruleDestPrefixList.isEmpty())){ - destIP_map = new HashMap(); + destIP_map = new HashMap<>(); destIP_map.put(tl, ruleDestPrefixList); } ruleSrcPort=jpaTermList.getSrcPortList(); if (ruleSrcPort != null && (!ruleSrcPort.isEmpty())){ - srcPort_map = new HashMap(); + srcPort_map = new HashMap<>(); srcPort_map.put(tl, ruleSrcPort); } ruleDestPort= jpaTermList.getDestPortList(); if (ruleDestPort!= null && (!jpaTermList.getDestPortList().isEmpty())){ - destPort_map = new HashMap(); + destPort_map = new HashMap<>(); destPort_map.put(tl, ruleDestPort); } ruleAction=jpaTermList.getAction(); if (( ruleAction!= null) && (!ruleAction.isEmpty())){ - action_map = new HashMap(); + action_map = new HashMap<>(); action_map.put(tl, ruleAction); } } @@ -617,7 +611,7 @@ public class CreateFirewallController extends RestrictedBaseController { //FromZone arrays if(fromZone_map!=null){ - List fromZone= new ArrayList(); + List fromZone= new ArrayList<>(); for(String fromZoneStr:fromZone_map.get(tl).split(",") ){ fromZone.add(fromZoneStr); } @@ -626,7 +620,7 @@ public class CreateFirewallController extends RestrictedBaseController { //ToZone arrays if(toZone_map!=null){ - List toZone= new ArrayList(); + List toZone= new ArrayList<>(); for(String toZoneStr:toZone_map.get(tl).split(",") ){ toZone.add(toZoneStr); } @@ -635,7 +629,7 @@ public class CreateFirewallController extends RestrictedBaseController { //Destination Services. if(destPort_map!=null){ - Set destServicesJsonList= new HashSet(); + Set destServicesJsonList= new HashSet<>(); for(String destServices:destPort_map.get(tl).split(",") ){ ServicesJson destServicesJson= new ServicesJson(); destServicesJson.setType("REFERENCE"); @@ -666,7 +660,7 @@ public class CreateFirewallController extends RestrictedBaseController { if(srcIP_map!=null){ //Source List - List sourceListArrayJson= new ArrayList(); + List sourceListArrayJson= new ArrayList<>(); for(String srcList:srcIP_map.get(tl).split(",") ){ AddressJson srcListJson= new AddressJson(); if(srcList.equals("ANY")){ @@ -687,7 +681,7 @@ public class CreateFirewallController extends RestrictedBaseController { } if(destIP_map!=null){ //Destination List - List destListArrayJson= new ArrayList(); + List destListArrayJson= new ArrayList<>(); for(String destList:destIP_map.get(tl).split(",")){ AddressJson destListJson= new AddressJson(); if(destList.equals("ANY")){ @@ -728,25 +722,32 @@ public class CreateFirewallController extends RestrictedBaseController { jpaSecurityZone = (SecurityZone) securityZoneData.get(j); if (jpaSecurityZone.getZoneName().equals(policyData.getSecurityZone())){ tc.setSecurityZoneId(jpaSecurityZone.getZoneValue()); - //setParentSecurityZone(jpaSecurityZone.getZoneValue());//For storing the securityZone IDs to the DB + IdMap idMapInstance= new IdMap(); + idMapInstance.setAstraId(jpaSecurityZone.getZoneValue()); + idMapInstance.setVendorId("deviceGroup:dev"); + + List idMap = new ArrayList(); + idMap.add(idMapInstance); + + VendorSpecificData vendorStructure= new VendorSpecificData(); + vendorStructure.setIdMap(idMap); + tc.setVendorSpecificData(vendorStructure); break; } } tc.setServiceTypeId("/v0/firewall/pan"); tc.setConfigName(policyData.getConfigName()); + tc.setVendorServiceId("vipr"); - //Astra is rejecting the packet when it sees a new JSON field, so removing it for now. - //tc.setTemplateVersion(XACMLProperties.getProperty(XACMLRestProperties.TemplateVersion_FW)); - DeployNowJson deployNow= new DeployNowJson(); deployNow.setDeployNow(false); tc.setDeploymentOption(deployNow); - Set servListArray = new HashSet(); - Set servGroupArray= new HashSet(); - Set addrGroupArray= new HashSet(); + Set servListArray = new HashSet<>(); + Set servGroupArray= new HashSet<>(); + Set addrGroupArray= new HashSet<>(); ServiceGroupJson targetSg= null; AddressGroupJson addressSg=null; @@ -802,7 +803,7 @@ public class CreateFirewallController extends RestrictedBaseController { String name=sg.getGroupName(); //Removing the "Group_" prepending string before packing the JSON targetSg.setName(name.substring(6,name.length())); - List servMembersList= new ArrayList(); + List servMembersList= new ArrayList<>(); for(String groupString: sg.getServiceList().split(",")){ ServiceMembers serviceMembers= new ServiceMembers(); @@ -829,20 +830,20 @@ public class CreateFirewallController extends RestrictedBaseController { } } - Set prefixIPList = new HashSet(); + Set prefixIPList = new HashSet<>(); for(String prefixList:expandablePrefixIPList){ for(String prefixIP: prefixList.split(",")){ if((!prefixIP.startsWith("Group_"))){ if(!prefixIP.equals("ANY")){ - List addMembersList= new ArrayList(); - List valueDesc= new ArrayList(); + List addMembersList= new ArrayList<>(); + List valueDesc= new ArrayList<>(); PrefixIPList targetAddressList = new PrefixIPList(); AddressMembers addressMembers= new AddressMembers(); targetAddressList.setName(prefixIP); - logger.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "PrefixList value:"+prefixIP); + policyLogger.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "PrefixList value:"+prefixIP); valueDesc = mapping(prefixIP); if(!valueDesc.isEmpty()){ - logger.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "PrefixList description:"+valueDesc.get(1)); + policyLogger.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "PrefixList description:"+valueDesc.get(1)); targetAddressList.setDescription(valueDesc.get(1)); } @@ -867,9 +868,9 @@ public class CreateFirewallController extends RestrictedBaseController { //Removing the "Group_" prepending string before packing the JSON addressSg.setName(name.substring(6,name.length())); - List addrMembersList= new ArrayList(); + List addrMembersList= new ArrayList<>(); for(String groupString: ag.getPrefixList().split(",")){ - List valueDesc= new ArrayList(); + List valueDesc= new ArrayList<>(); AddressMembers addressMembers= new AddressMembers(); valueDesc= mapping (groupString); if(valueDesc.size() > 0){ @@ -887,7 +888,7 @@ public class CreateFirewallController extends RestrictedBaseController { } } - Set serviceGroup= new HashSet(); + Set serviceGroup= new HashSet<>(); for(Object obj1:servGroupArray){ serviceGroup.add(obj1); @@ -897,7 +898,7 @@ public class CreateFirewallController extends RestrictedBaseController { serviceGroup.add(obj); } - Set addressGroup= new HashSet(); + Set addressGroup= new HashSet<>(); for(Object addObj:prefixIPList){ addressGroup.add(addObj); @@ -914,16 +915,12 @@ public class CreateFirewallController extends RestrictedBaseController { ObjectWriter om = new ObjectMapper().writer(); try { json = om.writeValueAsString(tc); - } catch (JsonGenerationException e) { - e.printStackTrace(); - } catch (JsonMappingException e) { - e.printStackTrace(); - } catch (IOException e) { - e.printStackTrace(); + } catch (Exception e) { + policyLogger.error("Exception Occured"+e); } }catch (Exception e) { - e.printStackTrace(); + policyLogger.error("Exception Occured"+e); } return json;