From 3be9eb7aead3dab64e8ced551195c90ff38ff288 Mon Sep 17 00:00:00 2001 From: wangxin Date: Sat, 20 Oct 2018 23:38:56 +0800 Subject: [PATCH] =?UTF-8?q?(1)=E4=BF=AE=E5=A4=8Dapp=E7=AD=89=E9=80=89?= =?UTF-8?q?=E6=8B=A9=E8=A1=8C=E4=B8=BA=E7=9A=84=E6=97=B6=E5=80=99=E8=A1=A8?= =?UTF-8?q?=E8=BE=BE=E5=BC=8F=E4=B8=BA=E4=B8=8E=E8=A1=A8=E8=BE=BE=E5=BC=8F?= =?UTF-8?q?=20(2)http,dns,mail,ftp,url=E9=85=8D=E7=BD=AE=E5=AF=BC=E5=85=A5?= =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nis/web/controller/BaseController.java | 443 +++++++++++++++--- .../configuration/ntc/IpController.java | 2 +- .../configuration/FileTransferCfgService.java | 6 +- .../configuration/InterceptCfgService.java | 9 + .../service/configuration/MailCfgService.java | 6 +- .../configuration/WebsiteCfgService.java | 12 + .../update_app_policy_region_service_.sql | 4 +- .../views/cfg/fileTransfer/ftpList.jsp | 7 +- .../WEB-INF/views/cfg/mail/mailList.jsp | 7 +- .../WEB-INF/views/cfg/website/dnsList.jsp | 7 +- .../WEB-INF/views/cfg/website/httpList.jsp | 7 +- .../views/cfg/whitelist/domainList.jsp | 7 +- 12 files changed, 450 insertions(+), 67 deletions(-) diff --git a/src/main/java/com/nis/web/controller/BaseController.java b/src/main/java/com/nis/web/controller/BaseController.java index 899f4f0af..0d768a9af 100644 --- a/src/main/java/com/nis/web/controller/BaseController.java +++ b/src/main/java/com/nis/web/controller/BaseController.java @@ -44,15 +44,19 @@ import com.nis.domain.configuration.AreaBean; import com.nis.domain.configuration.AreaIpCfg; import com.nis.domain.configuration.BaseCfg; import com.nis.domain.configuration.BaseIpCfg; +import com.nis.domain.configuration.BaseStringCfg; import com.nis.domain.configuration.CfgIndexInfo; import com.nis.domain.configuration.ComplexStringCfgTemplate; +import com.nis.domain.configuration.ComplexkeywordCfg; import com.nis.domain.configuration.IpPortCfg; import com.nis.domain.configuration.RequestInfo; import com.nis.domain.configuration.StringCfgTemplate; +import com.nis.domain.configuration.template.ComplexStringAllTemplate; import com.nis.domain.configuration.template.IpAllTemplate; import com.nis.domain.configuration.template.IpCfgTemplate; import com.nis.domain.configuration.template.IpPayloadTemplate; import com.nis.domain.configuration.template.IpRateLimitTemplate; +import com.nis.domain.configuration.template.StringAllTemplate; import com.nis.domain.log.BaseLogEntity; import com.nis.domain.log.SearchReport; import com.nis.domain.specific.SpecificServiceCfg; @@ -797,7 +801,218 @@ public class BaseController { params.put("searchCfgId", entry.getCfgId()); } } - + public List> checkStringCfg(FunctionServiceDict serviceDict, FunctionRegionDict regionDict, List list) + throws ServiceException { + List> stringList = new ArrayList>(); + Properties prop = this.getMsgProp(); + String exprTypeP=regionDict.getConfigExprType(); + if (StringUtil.isEmpty(exprTypeP)) { + throw new RuntimeException("Found String region,but exprType is Empty"); + } + String matchMethodP=regionDict.getConfigMatchMethod(); + if (StringUtil.isEmpty(matchMethodP)) { + throw new RuntimeException("Found String region,but matchMethod is Empty"); + } + String hexP=regionDict.getConfigHex(); + if (StringUtil.isEmpty(hexP)) { + throw new RuntimeException("Found String region,but hex is Empty"); + } + String mulityKeywordsP=regionDict.getConfigMultiKeywords(); + if (StringUtil.isEmpty(mulityKeywordsP)) { + throw new RuntimeException("Found String region,but mulityKeywords is Empty"); + } + StringBuffer errTip = new StringBuffer(); + for (int i = 0; i < list.size(); i++) { + StringBuffer errInfo = new StringBuffer(); + BaseStringCfg baseStringCfg = new BaseStringCfg(); + BeanUtils.copyProperties(list.get(i), baseStringCfg); + if (regionDict.getRegionType().equals(2)) { + String keyword=baseStringCfg.getCfgKeywords(); + if(StringUtils.isBlank(keyword)) { + errInfo.append(String.format(prop.getProperty("can_not_null"), prop.getProperty("key_word")+" ")+";"); + } + if(mulityKeywordsP.equals("0")) { + if(keyword.indexOf("\n")>-1) { + errInfo.append(String.format(prop.getProperty("is_incorrect"), prop.getProperty("key_word"))+";"); + } + }else { + String reWord=keyword.replaceAll("\n", Constants.KEYWORD_EXPR); + baseStringCfg.setCfgKeywords(reWord); + } + Integer exprType=baseStringCfg.getExprType(); + boolean has=false; + for(String exp:exprTypeP.split(",")) { + if(exp.equals(exprType.toString())) { + has=true; + break; + } + } + if(!has) { + errInfo.append(String.format(prop.getProperty("is_incorrect"), prop.getProperty("expression_type"))+";"); + } + has=false; + Integer matchMethod=baseStringCfg.getMatchMethod(); + for(String exp:matchMethodP.split(",")) { + if(exp.equals(matchMethod.toString())) { + has=true; + break; + } + } + if(!has) { + errInfo.append(String.format(prop.getProperty("is_incorrect"), prop.getProperty("match_method"))+";"); + } + + Integer isHex=baseStringCfg.getIsHex(); + Integer isCaseInsenstive=baseStringCfg.getIsCaseInsenstive(); + if(isHex.intValue()!=0&&isHex.intValue()!=1) { + errInfo.append(String.format(prop.getProperty("is_incorrect"), prop.getProperty("is_hex"))+";"); + } + if(isCaseInsenstive.intValue()!=0&&isCaseInsenstive.intValue()!=1) { + errInfo.append(String.format(prop.getProperty("is_incorrect"), prop.getProperty("is_case_insenstive"))+";"); + } + if(hexP.indexOf("1")==-1&&isHex.intValue()==1){ + errInfo.append(String.format(prop.getProperty("is_incorrect"), prop.getProperty("is_hex"))+";"); + } + if(hexP.equals("1")&&isHex.intValue()==0){ + errInfo.append(String.format(prop.getProperty("is_incorrect"), prop.getProperty("is_hex"))+";"); + } + if(hexP.indexOf("2")==-1&&isCaseInsenstive.intValue()==1){ + errInfo.append(String.format(prop.getProperty("is_incorrect"), prop.getProperty("is_case_insenstive"))+";"); + } + if(hexP.equals("2")&&isCaseInsenstive.intValue()==0){ + errInfo.append(String.format(prop.getProperty("is_incorrect"), prop.getProperty("is_case_insenstive"))+";"); + } + if(isHex==0&&isCaseInsenstive==0) { + baseStringCfg.setIsHexbin(0); + }else if(isHex==1&&isCaseInsenstive==0) { + baseStringCfg.setIsHexbin(1); + }else if(isHex==1&&isCaseInsenstive==1) { + baseStringCfg.setIsHexbin(2); + } + } + if (errInfo.toString().length() > 0) {// + errTip.append(String.format(prop.getProperty("line"), i + 2) + ","); + errTip.append(errInfo); + errTip.append("
"); + } + stringList.add(baseStringCfg); + } + if (errTip.toString().length() > 0) { + throw new ServiceException(errTip.toString()); + } + return stringList; + } + public List checkComplexStringCfg(FunctionServiceDict serviceDict, FunctionRegionDict regionDict, List list) + throws ServiceException { + List stringList = new ArrayList(); + Properties prop = this.getMsgProp(); + String exprTypeP=regionDict.getConfigExprType(); + if (StringUtil.isEmpty(exprTypeP)) { + throw new RuntimeException("Found String region,but exprType is Empty"); + } + String matchMethodP=regionDict.getConfigMatchMethod(); + if (StringUtil.isEmpty(matchMethodP)) { + throw new RuntimeException("Found String region,but matchMethod is Empty"); + } + String hexP=regionDict.getConfigHex(); + if (StringUtil.isEmpty(hexP)) { + throw new RuntimeException("Found String region,but hex is Empty"); + } + String mulityKeywordsP=regionDict.getConfigMultiKeywords(); + if (StringUtil.isEmpty(mulityKeywordsP)) { + throw new RuntimeException("Found String region,but mulityKeywords is Empty"); + } + String dirtrictP=regionDict.getConfigDistrict(); + StringBuffer errTip = new StringBuffer(); + for (int i = 0; i < list.size(); i++) { + StringBuffer errInfo = new StringBuffer(); + ComplexkeywordCfg baseStringCfg = new ComplexkeywordCfg(); + BeanUtils.copyProperties(list.get(i), baseStringCfg); + if (regionDict.getRegionType().equals(3)) { + String keyword=baseStringCfg.getCfgKeywords(); + String district=baseStringCfg.getDistrict(); + if(StringUtils.isBlank(keyword)) { + errInfo.append(String.format(prop.getProperty("can_not_null"), prop.getProperty("key_word")+" ")+";"); + } + if(StringUtils.isNotBlank(dirtrictP)) { + if(StringUtils.isBlank(district)) { + errInfo.append(String.format(prop.getProperty("can_not_null"), prop.getProperty("district")+" ")+";"); + } + if(dirtrictP.indexOf(district)==-1) { + errInfo.append(String.format(prop.getProperty("is_incorrect"), prop.getProperty("district")+" ")+";"); + } + } + if(mulityKeywordsP.equals("0")) { + if(keyword.indexOf("\n")>-1) { + errInfo.append(String.format(prop.getProperty("is_incorrect"), prop.getProperty("key_word"))+";"); + } + }else { + String reWord=keyword.replaceAll("\n", Constants.KEYWORD_EXPR); + baseStringCfg.setCfgKeywords(reWord); + } + Integer exprType=baseStringCfg.getExprType(); + boolean has=false; + for(String exp:exprTypeP.split(",")) { + if(exp.equals(exprType.toString())) { + has=true; + break; + } + } + if(!has) { + errInfo.append(String.format(prop.getProperty("is_incorrect"), prop.getProperty("expression_type"))+";"); + } + has=false; + Integer matchMethod=baseStringCfg.getMatchMethod(); + for(String exp:matchMethodP.split(",")) { + if(exp.equals(matchMethod.toString())) { + has=true; + break; + } + } + if(!has) { + errInfo.append(String.format(prop.getProperty("is_incorrect"), prop.getProperty("match_method"))+";"); + } + + Integer isHex=baseStringCfg.getIsHex(); + Integer isCaseInsenstive=baseStringCfg.getIsCaseInsenstive(); + if(isHex.intValue()!=0&&isHex.intValue()!=1) { + errInfo.append(String.format(prop.getProperty("is_incorrect"), prop.getProperty("is_hex"))+";"); + } + if(isCaseInsenstive.intValue()!=0&&isCaseInsenstive.intValue()!=1) { + errInfo.append(String.format(prop.getProperty("is_incorrect"), prop.getProperty("is_case_insenstive"))+";"); + } + if(hexP.indexOf("1")==-1&&isHex.intValue()==1){ + errInfo.append(String.format(prop.getProperty("is_incorrect"), prop.getProperty("is_hex"))+";"); + } + if(hexP.equals("1")&&isHex.intValue()==0){ + errInfo.append(String.format(prop.getProperty("is_incorrect"), prop.getProperty("is_hex"))+";"); + } + if(hexP.indexOf("2")==-1&&isCaseInsenstive.intValue()==1){ + errInfo.append(String.format(prop.getProperty("is_incorrect"), prop.getProperty("is_case_insenstive"))+";"); + } + if(hexP.equals("2")&&isCaseInsenstive.intValue()==0){ + errInfo.append(String.format(prop.getProperty("is_incorrect"), prop.getProperty("is_case_insenstive"))+";"); + } + if(isHex==0&&isCaseInsenstive==0) { + baseStringCfg.setIsHexbin(0); + }else if(isHex==1&&isCaseInsenstive==0) { + baseStringCfg.setIsHexbin(1); + }else if(isHex==1&&isCaseInsenstive==1) { + baseStringCfg.setIsHexbin(2); + } + } + if (errInfo.toString().length() > 0) {// + errTip.append(String.format(prop.getProperty("line"), i + 2) + ","); + errTip.append(errInfo); + errTip.append("
"); + } + stringList.add(baseStringCfg); + } + if (errTip.toString().length() > 0) { + throw new ServiceException(errTip.toString()); + } + return stringList; + } public List checkIpCfg(FunctionServiceDict serviceDict, FunctionRegionDict regionDict, List list) throws ServiceException { List ipList = new ArrayList(); @@ -2438,13 +2653,15 @@ public class BaseController { FunctionServiceDict serviceDict = DictUtils.getFunctionServiceDict(serviceDictId); String regionCode=serviceDict.getRegionCode(); List ipPortCfgs = new ArrayList(); + List> stringCfgs = new ArrayList>(); + List complexkeywordCfgs = new ArrayList(); List cfgIndexInfos = new ArrayList(); List appPolicyCfgs = new ArrayList(); FunctionRegionDict appRegion=null; for(String code:regionCode.split(",")) { if(StringUtils.isNotBlank(code)) { FunctionRegionDict d=DictUtils.getFunctionRegionDictByRegionCode(serviceDict.getFunctionId(),Integer.parseInt(code)); - if(d.getConfigServiceType().equals("app_policy")) { + if(d!=null&&d.getConfigServiceType()!=null&&d.getConfigServiceType().equals("app_policy")) { appRegion=d; break; } @@ -2458,26 +2675,28 @@ public class BaseController { FunctionRegionDict regionDict = DictUtils .getFunctionRegionDict(Integer.parseInt(regionDictIds.split(",")[i])); - if (regionDict.getFunctionId().equals(5)) { - if (serviceDict.getAction().equals(64)) {// ip - if (regionDict.getRegionType().equals(1)) { + if (regionDict.getRegionType().equals(1)) {//IP + if (regionDict.getFunctionId().equals(5)) { + if (serviceDict.getAction().equals(64)) { List list = ei.getDataList(IpRateLimitTemplate.class); ipPortCfgs = this.checkIpCfg(serviceDict, regionDict, list); - } - } else { - if (regionDict.getRegionType().equals(1)) { + }else { List list = ei.getDataList(IpAllTemplate.class); ipPortCfgs = this.checkIpCfg(serviceDict, regionDict, list); } - } - }else if(regionDict.getFunctionId().equals(212)) { - if (regionDict.getRegionType().equals(1)) { + }else if(regionDict.getFunctionId().equals(212)) { List list = ei.getDataList(IpPayloadTemplate.class); ipPortCfgs = this.checkIpCfg(serviceDict, regionDict, list); + }else { + List list = ei.getDataList(IpAllTemplate.class); + ipPortCfgs = this.checkIpCfg(serviceDict, regionDict, list); } - } else if (regionDict.getRegionType().equals(1)) { - List list = ei.getDataList(IpAllTemplate.class); - ipPortCfgs = this.checkIpCfg(serviceDict, regionDict, list); + }else if(regionDict.getRegionType().equals(2)) {//字符串类 + List list = ei.getDataList(StringAllTemplate.class); + stringCfgs=this.checkStringCfg(serviceDict, regionDict, list); + }else if(regionDict.getRegionType().equals(3)) {//增强字符串类 + List list = ei.getDataList(ComplexStringAllTemplate.class); + complexkeywordCfgs=this.checkComplexStringCfg(serviceDict, regionDict, list); } Date date = new Date(); String specServiceId=request.getParameter("appId"); @@ -2490,52 +2709,164 @@ public class BaseController { specificServiceCfg=specificServiceCfgService.getBySpecServiceId(Integer.parseInt(specServiceId)); } } - for (BaseIpCfg cfg : ipPortCfgs) { - cfg.setAction(serviceDict.getAction()); - cfg.setAuditorId(UserUtils.getUser().getId()); - cfg.setAuditTime(date); - cfg.setCfgRegionCode(regionDict.getConfigRegionCode()); - cfg.setCfgType(regionDict.getConfigRegionValue()); - cfg.setCreateTime(date); - cfg.setCreatorId(UserUtils.getUser().getId()); - cfg.setDoLog(1); - cfg.setFunctionId(regionDict.getFunctionId()); - cfg.setIsAudit(0); - cfg.setIsValid(0); - cfg.setIsAreaEffective(0); - cfg.setAttribute("0"); - cfg.setClassify("0"); - cfg.setLable("0"); - cfg.setRequestId(StringUtil.isEmpty(requestId) ? 0 : requestId); - cfg.setServiceId(serviceDict.getServiceId()); - cfg.setTableName("ip_port_cfg"); - cfg.setCompileId(ipCfgService.getCompileId()); - if(serviceDict.getServiceId().intValue()==33||serviceDict.getServiceId().intValue()==145|| - serviceDict.getServiceId().intValue()==35||serviceDict.getServiceId().intValue()==147|| - serviceDict.getServiceId().intValue()==36||serviceDict.getServiceId().intValue()==148) { - if(specificServiceCfg!=null&&appRegion!=null) { - AppPolicyCfg appPolicyCfg=new AppPolicyCfg(); - BeanUtils.copyProperties(cfg, appPolicyCfg); - appPolicyCfg.setSpecServiceId(specificServiceCfg.getSpecServiceId()); - appPolicyCfg.setAppCode(specificServiceCfg.getSpecServiceCode()); - appPolicyCfg.setExprType(0); - appPolicyCfg.setMatchMethod(0); - appPolicyCfg.setIsHexbin(0); - appPolicyCfg.setCfgType(appRegion.getConfigRegionValue()); - appPolicyCfg.setCfgRegionCode(appRegion.getConfigRegionCode()); - if(StringUtils.isNotBlank(behaviorId)) { - appPolicyCfg.setBehavCode(Integer.parseInt(behaviorId)); + if (regionDict.getRegionType().equals(1)) {//IP + for (BaseIpCfg cfg : ipPortCfgs) { + cfg.setAction(serviceDict.getAction()); + cfg.setAuditorId(UserUtils.getUser().getId()); + cfg.setAuditTime(date); + cfg.setCfgRegionCode(regionDict.getConfigRegionCode()); + cfg.setCfgType(regionDict.getConfigRegionValue()); + cfg.setCreateTime(date); + cfg.setCreatorId(UserUtils.getUser().getId()); + cfg.setDoLog(1); + cfg.setFunctionId(regionDict.getFunctionId()); + cfg.setIsAudit(0); + cfg.setIsValid(0); + cfg.setIsAreaEffective(0); + cfg.setAttribute("0"); + cfg.setClassify("0"); + cfg.setLable("0"); + cfg.setRequestId(StringUtil.isEmpty(requestId) ? 0 : requestId); + cfg.setServiceId(serviceDict.getServiceId()); + cfg.setTableName("ip_port_cfg"); + cfg.setCompileId(ipCfgService.getCompileId()); + if(serviceDict.getServiceId().intValue()==33||serviceDict.getServiceId().intValue()==145|| + serviceDict.getServiceId().intValue()==35||serviceDict.getServiceId().intValue()==147|| + serviceDict.getServiceId().intValue()==36||serviceDict.getServiceId().intValue()==148) { + if(specificServiceCfg!=null&&appRegion!=null) { + AppPolicyCfg appPolicyCfg=new AppPolicyCfg(); + BeanUtils.copyProperties(cfg, appPolicyCfg); + appPolicyCfg.setSpecServiceId(specificServiceCfg.getSpecServiceId()); + appPolicyCfg.setAppCode(specificServiceCfg.getSpecServiceCode()); + appPolicyCfg.setMatchMethod(0); + appPolicyCfg.setIsHexbin(0); + appPolicyCfg.setCfgType(appRegion.getConfigRegionValue()); + appPolicyCfg.setCfgRegionCode(appRegion.getConfigRegionCode()); + if(StringUtils.isNotBlank(behaviorId)) { + appPolicyCfg.setBehavCode(Integer.parseInt(behaviorId)); + appPolicyCfg.setExprType(1); + }else { + appPolicyCfg.setExprType(0); + } + appPolicyCfgs.add(appPolicyCfg); } - appPolicyCfgs.add(appPolicyCfg); + }else { + CfgIndexInfo cfgIndexInfo = new CfgIndexInfo(); + BeanUtils.copyProperties(cfg, cfgIndexInfo); + cfgIndexInfos.add(cfgIndexInfo); } - }else { - CfgIndexInfo cfgIndexInfo = new CfgIndexInfo(); - BeanUtils.copyProperties(cfg, cfgIndexInfo); - cfgIndexInfos.add(cfgIndexInfo); + + } + ipCfgService.saveBatch(ipPortCfgs, IpCfgDao.class); + }else if (regionDict.getRegionType().equals(2)) { + for(BaseStringCfg cfg:stringCfgs) { + cfg.setAction(serviceDict.getAction()); + cfg.setAuditorId(UserUtils.getUser().getId()); + cfg.setAuditTime(date); + cfg.setCfgRegionCode(regionDict.getConfigRegionCode()); + cfg.setCfgType(regionDict.getConfigRegionValue()); + cfg.setCreateTime(date); + cfg.setCreatorId(UserUtils.getUser().getId()); + cfg.setDoLog(1); + cfg.setFunctionId(regionDict.getFunctionId()); + cfg.setIsAudit(0); + cfg.setIsValid(0); + cfg.setIsAreaEffective(0); + cfg.setAttribute("0"); + cfg.setClassify("0"); + cfg.setLable("0"); + cfg.setRequestId(StringUtil.isEmpty(requestId) ? 0 : requestId); + cfg.setServiceId(serviceDict.getServiceId()); + cfg.setCompileId(ipCfgService.getCompileId()); + if(serviceDict.getServiceId().intValue()==33||serviceDict.getServiceId().intValue()==145|| + serviceDict.getServiceId().intValue()==35||serviceDict.getServiceId().intValue()==147|| + serviceDict.getServiceId().intValue()==36||serviceDict.getServiceId().intValue()==148) { + if(specificServiceCfg!=null&&appRegion!=null) { + AppPolicyCfg appPolicyCfg=new AppPolicyCfg(); + BeanUtils.copyProperties(cfg, appPolicyCfg); + appPolicyCfg.setSpecServiceId(specificServiceCfg.getSpecServiceId()); + appPolicyCfg.setAppCode(specificServiceCfg.getSpecServiceCode()); + appPolicyCfg.setMatchMethod(0); + appPolicyCfg.setIsHexbin(0); + appPolicyCfg.setCfgType(appRegion.getConfigRegionValue()); + appPolicyCfg.setCfgRegionCode(appRegion.getConfigRegionCode()); + if(StringUtils.isNotBlank(behaviorId)) { + appPolicyCfg.setBehavCode(Integer.parseInt(behaviorId)); + appPolicyCfg.setExprType(1); + }else { + appPolicyCfg.setExprType(0); + } + appPolicyCfgs.add(appPolicyCfg); + } + }else { + CfgIndexInfo cfgIndexInfo = new CfgIndexInfo(); + BeanUtils.copyProperties(cfg, cfgIndexInfo); + cfgIndexInfos.add(cfgIndexInfo); + } + } + //调用对应配置的service + if(regionDict.getDictId().intValue()==167) { + interceptCfgService.saveInterceptCfg(stringCfgs); + } + if(regionDict.getDictId().intValue()==15||regionDict.getDictId().intValue()==596) { + websiteCfgService.saveHttpUrlCfg(stringCfgs); + } + if(regionDict.getDictId().intValue()==36) { + fileTransferCfgService.saveFtpCfg(stringCfgs); + } + }else if (regionDict.getRegionType().equals(3)) { + for(ComplexkeywordCfg cfg:complexkeywordCfgs) { + cfg.setAction(serviceDict.getAction()); + cfg.setAuditorId(UserUtils.getUser().getId()); + cfg.setAuditTime(date); + cfg.setCfgRegionCode(regionDict.getConfigRegionCode()); + cfg.setCfgType(regionDict.getConfigRegionValue()); + cfg.setCreateTime(date); + cfg.setCreatorId(UserUtils.getUser().getId()); + cfg.setDoLog(1); + cfg.setFunctionId(regionDict.getFunctionId()); + cfg.setIsAudit(0); + cfg.setIsValid(0); + cfg.setIsAreaEffective(0); + cfg.setAttribute("0"); + cfg.setClassify("0"); + cfg.setLable("0"); + cfg.setRequestId(StringUtil.isEmpty(requestId) ? 0 : requestId); + cfg.setServiceId(serviceDict.getServiceId()); + cfg.setCompileId(ipCfgService.getCompileId()); + if(serviceDict.getServiceId().intValue()==33||serviceDict.getServiceId().intValue()==145|| + serviceDict.getServiceId().intValue()==35||serviceDict.getServiceId().intValue()==147|| + serviceDict.getServiceId().intValue()==36||serviceDict.getServiceId().intValue()==148) { + if(specificServiceCfg!=null&&appRegion!=null) { + AppPolicyCfg appPolicyCfg=new AppPolicyCfg(); + BeanUtils.copyProperties(cfg, appPolicyCfg); + appPolicyCfg.setSpecServiceId(specificServiceCfg.getSpecServiceId()); + appPolicyCfg.setAppCode(specificServiceCfg.getSpecServiceCode()); + appPolicyCfg.setMatchMethod(0); + appPolicyCfg.setIsHexbin(0); + appPolicyCfg.setCfgType(appRegion.getConfigRegionValue()); + appPolicyCfg.setCfgRegionCode(appRegion.getConfigRegionCode()); + if(StringUtils.isNotBlank(behaviorId)) { + appPolicyCfg.setBehavCode(Integer.parseInt(behaviorId)); + appPolicyCfg.setExprType(1); + }else { + appPolicyCfg.setExprType(0); + } + appPolicyCfgs.add(appPolicyCfg); + } + }else { + CfgIndexInfo cfgIndexInfo = new CfgIndexInfo(); + BeanUtils.copyProperties(cfg, cfgIndexInfo); + cfgIndexInfos.add(cfgIndexInfo); + } + } + if(regionDict.getDictId().intValue()==28) { + websiteCfgService.saveDnsCfg(complexkeywordCfgs); + } + if(regionDict.getDictId().intValue()==30||regionDict.getDictId().intValue()==31) { + mailCfgService.saveMailCfg(complexkeywordCfgs); } - } - ipCfgService.saveBatch(ipPortCfgs, IpCfgDao.class); ipCfgService.saveCfgIndexOf(cfgIndexInfos); appCfgService.savePolicyList(appPolicyCfgs); } diff --git a/src/main/java/com/nis/web/controller/configuration/ntc/IpController.java b/src/main/java/com/nis/web/controller/configuration/ntc/IpController.java index 8f22c380a..26ae17f7c 100644 --- a/src/main/java/com/nis/web/controller/configuration/ntc/IpController.java +++ b/src/main/java/com/nis/web/controller/configuration/ntc/IpController.java @@ -281,7 +281,7 @@ public class IpController extends BaseController{ if(regionDict.getRegionType().equals(3)){ if(regionDict.getFunctionId().equals(7)){//DNS DISTRICT STRING List classList=new ArrayList(); - ExportExcel excel=new ExportExcel(serviceDict,regionDict,this.getMsgProp(),null, StringAllTemplate.class, 2); + ExportExcel excel=new ExportExcel(serviceDict,regionDict,this.getMsgProp(),null, DnsComplexStringTemplate.class, 2); excel.setDataList(this.getMsgProp(),classList,null). write(request,response, fileName).dispose(); }else{ diff --git a/src/main/java/com/nis/web/service/configuration/FileTransferCfgService.java b/src/main/java/com/nis/web/service/configuration/FileTransferCfgService.java index 6af0b2d27..c24c22dd1 100644 --- a/src/main/java/com/nis/web/service/configuration/FileTransferCfgService.java +++ b/src/main/java/com/nis/web/service/configuration/FileTransferCfgService.java @@ -104,7 +104,11 @@ public class FileTransferCfgService extends CrudService> cfgs){ + for(BaseStringCfg cfg:cfgs){ + fileTransferCfgDao.saveFtpKeywordCfg(cfg); + } + } /** * 保存ftp配置 * @param entity diff --git a/src/main/java/com/nis/web/service/configuration/InterceptCfgService.java b/src/main/java/com/nis/web/service/configuration/InterceptCfgService.java index c3a7db693..d9f69bd51 100644 --- a/src/main/java/com/nis/web/service/configuration/InterceptCfgService.java +++ b/src/main/java/com/nis/web/service/configuration/InterceptCfgService.java @@ -84,6 +84,15 @@ public class InterceptCfgService extends CrudService return entity; } + public void saveInterceptCfg(List> interceptPktBins){ + for(BaseStringCfg cfg:interceptPktBins){ + InterceptPktBin _cfg=new InterceptPktBin(); + BeanUtils.copyProperties(cfg, _cfg); + if(StringUtils.isNotBlank(cfg.getCfgKeywords())){ + interceptCfgDao.saveInterceptPktBin(_cfg); + } + } + } public void saveInterceptCfg(CfgIndexInfo entity){ if(!entity.getAction().equals(Constants.REPLACE_ACTION)){ entity.setInterceptPktBinList(null); diff --git a/src/main/java/com/nis/web/service/configuration/MailCfgService.java b/src/main/java/com/nis/web/service/configuration/MailCfgService.java index d0f4ef148..6a8089acd 100644 --- a/src/main/java/com/nis/web/service/configuration/MailCfgService.java +++ b/src/main/java/com/nis/web/service/configuration/MailCfgService.java @@ -95,7 +95,11 @@ public class MailCfgService extends CrudService { dataMap.put("NTC_UNIVERSAL_IP", ipPortList); return dataMap; } - + public void saveMailCfg(List complexkeywordCfgs){ + for(ComplexkeywordCfg cfg:complexkeywordCfgs){ + mailCfgDao.saveMailKeywordCfg(cfg); + } + } /** * 保存mail配置 * @param entity diff --git a/src/main/java/com/nis/web/service/configuration/WebsiteCfgService.java b/src/main/java/com/nis/web/service/configuration/WebsiteCfgService.java index fc88040d4..d5444e73c 100644 --- a/src/main/java/com/nis/web/service/configuration/WebsiteCfgService.java +++ b/src/main/java/com/nis/web/service/configuration/WebsiteCfgService.java @@ -824,6 +824,18 @@ public class WebsiteCfgService extends CrudService { logger.info("ssl配置取消配置响应信息:"+result.getMsg()); } } + public void saveDnsCfg(List complexkeywordCfgs){ + for(ComplexkeywordCfg cfg:complexkeywordCfgs){ + websiteCfgDao.saveDnsDomainCfg(cfg); + } + } + public void saveHttpUrlCfg(List> cfgs){ + for(BaseStringCfg cfg:cfgs){ + HttpUrlCfg _cfg=new HttpUrlCfg(); + BeanUtils.copyProperties(cfg, _cfg); + websiteCfgDao.saveHttpUrlCfg(_cfg); + } + } /** * 保存dns配置 * @param entity diff --git a/src/main/resources/sql/20181020/update_app_policy_region_service_.sql b/src/main/resources/sql/20181020/update_app_policy_region_service_.sql index 3addc3c66..91cfad62d 100644 --- a/src/main/resources/sql/20181020/update_app_policy_region_service_.sql +++ b/src/main/resources/sql/20181020/update_app_policy_region_service_.sql @@ -2,6 +2,4 @@ UPDATE function_service_dict SET region_code='1,2,3' WHERE function_id=63; UPDATE function_service_dict SET region_code='1,2,3' WHERE function_id=407; UPDATE function_service_dict SET region_code='1,2,3' WHERE function_id=408; -UPDATE function_region_dict SET is_import=1 WHERE function_id=63 AND config_service_type='app_policy'; -UPDATE function_region_dict SET is_import=1 WHERE function_id=407 AND config_service_type='app_policy'; -UPDATE function_region_dict SET is_import=1 WHERE function_id=408 AND config_service_type='app_policy'; \ No newline at end of file +UPDATE function_region_dict SET is_import=1 WHERE function_id=8 AND dict_id=14; diff --git a/src/main/webapp/WEB-INF/views/cfg/fileTransfer/ftpList.jsp b/src/main/webapp/WEB-INF/views/cfg/fileTransfer/ftpList.jsp index 14e5c3baf..3ce09e941 100644 --- a/src/main/webapp/WEB-INF/views/cfg/fileTransfer/ftpList.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/fileTransfer/ftpList.jsp @@ -95,6 +95,9 @@ onClick="javascript:window.location='${ctx}/ntc/fileTransfer/ftpForm?functionId=${cfg.functionId}'"> + @@ -466,6 +469,8 @@ - + + + <%@include file="/WEB-INF/include/excel/importModal.jsp" %> \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/cfg/mail/mailList.jsp b/src/main/webapp/WEB-INF/views/cfg/mail/mailList.jsp index 22f30c464..f233bb9e4 100644 --- a/src/main/webapp/WEB-INF/views/cfg/mail/mailList.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/mail/mailList.jsp @@ -92,6 +92,9 @@ onClick="javascript:window.location='${ctx}/ntc/mail/mailForm?functionId=${cfg.functionId}'"> + @@ -463,6 +466,8 @@ - + + + <%@include file="/WEB-INF/include/excel/importModal.jsp" %> \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/cfg/website/dnsList.jsp b/src/main/webapp/WEB-INF/views/cfg/website/dnsList.jsp index 728ab4e17..d76196300 100644 --- a/src/main/webapp/WEB-INF/views/cfg/website/dnsList.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/website/dnsList.jsp @@ -91,6 +91,9 @@ onClick="javascript:window.location='${ctx}/ntc/website/dnsForm?functionId=${cfg.functionId}'"> + @@ -468,6 +471,8 @@ - + + + <%@include file="/WEB-INF/include/excel/importModal.jsp" %> \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/cfg/website/httpList.jsp b/src/main/webapp/WEB-INF/views/cfg/website/httpList.jsp index 3197fce98..5b6374f21 100644 --- a/src/main/webapp/WEB-INF/views/cfg/website/httpList.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/website/httpList.jsp @@ -236,6 +236,9 @@ onClick="javascript:window.location='${ctx}/ntc/website/httpForm?functionId=${cfg.functionId}'"> + <%--
- + + + <%@include file="/WEB-INF/include/excel/importModal.jsp" %> \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/cfg/whitelist/domainList.jsp b/src/main/webapp/WEB-INF/views/cfg/whitelist/domainList.jsp index 5d21fb660..b5cd4ad34 100644 --- a/src/main/webapp/WEB-INF/views/cfg/whitelist/domainList.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/whitelist/domainList.jsp @@ -91,6 +91,9 @@ onClick="javascript:window.location='${ctx}/ntc/whitelist/domain/form?functionId=${cfg.functionId}'"> + @@ -462,6 +465,8 @@ - + + + <%@include file="/WEB-INF/include/excel/importModal.jsp" %> \ No newline at end of file