diff --git a/src/main/java/com/nis/domain/configuration/IpPortCfg.java b/src/main/java/com/nis/domain/configuration/IpPortCfg.java index 47cabb63c..2d99450c6 100644 --- a/src/main/java/com/nis/domain/configuration/IpPortCfg.java +++ b/src/main/java/com/nis/domain/configuration/IpPortCfg.java @@ -25,13 +25,21 @@ public class IpPortCfg extends BaseIpCfg { */ private static final long serialVersionUID = 4664942095843594575L; - //仅用作导入时copy属性 + //仅用作导入时copy属性使用 private String antiddosProtocol; - //仅用作导入时copy属性 + //仅用作导入时copy属性使用 private Long bpsThreadshold; - //仅用作导入时copy属性 + //仅用作导入时copy属性使用 private Long ppsThreadshold; + //仅用作导入时copy属性使用 + private Integer policyGroup; + public Integer getPolicyGroup() { + return policyGroup; + } + public void setPolicyGroup(Integer policyGroup) { + this.policyGroup = policyGroup; + } public String getAntiddosProtocol() { return antiddosProtocol; } diff --git a/src/main/java/com/nis/domain/configuration/template/SnatTemplate.java b/src/main/java/com/nis/domain/configuration/template/SnatTemplate.java new file mode 100644 index 000000000..ccd4c814c --- /dev/null +++ b/src/main/java/com/nis/domain/configuration/template/SnatTemplate.java @@ -0,0 +1,11 @@ +package com.nis.domain.configuration.template; + +import com.nis.util.excel.ExcelField; + +public class SnatTemplate extends IpAllTemplate{ + + @ExcelField(title="group",align=2,sort=2) + private Integer policyGroup; + @ExcelField(title="isp",align=2,sort=3) + private String isp; +} diff --git a/src/main/java/com/nis/util/excel/ExportExcel.java b/src/main/java/com/nis/util/excel/ExportExcel.java index 028d66e4f..c6df0aa04 100644 --- a/src/main/java/com/nis/util/excel/ExportExcel.java +++ b/src/main/java/com/nis/util/excel/ExportExcel.java @@ -49,6 +49,7 @@ import com.nis.domain.FunctionServiceDict; import com.nis.domain.SysDataDictionaryItem; import com.nis.domain.basics.PolicyGroupInfo; import com.nis.domain.basics.ServiceDictInfo; +import com.nis.domain.basics.SysDictInfo; import com.nis.domain.configuration.DnsResStrategy; import com.nis.util.Constants; import com.nis.util.DictUtils; @@ -57,6 +58,7 @@ import com.nis.util.Reflections; import com.nis.util.StringUtil; import com.nis.web.dao.FunctionServiceDictDao; import com.nis.web.dao.basics.PolicyGroupInfoDao; +import com.nis.web.dao.basics.SysDictInfoDao; import com.nis.web.dao.configuration.DnsResStrategyDao; import com.nis.web.service.SpringContextHolder; import com.nis.web.service.configuration.DnsResStrategyService; @@ -74,6 +76,8 @@ public class ExportExcel { private static Logger log = LoggerFactory.getLogger(ExportExcel.class); private static DnsResStrategyDao dnsResStrategyDao = SpringContextHolder.getBean(DnsResStrategyDao.class); + private static PolicyGroupInfoDao policyGroupInfoDao = SpringContextHolder.getBean(PolicyGroupInfoDao.class); + private static SysDictInfoDao sysDictInfoDao = SpringContextHolder.getBean(SysDictInfoDao.class); /** * 工作薄对象 @@ -272,6 +276,35 @@ public class ExportExcel { commentStr=msgProp.getProperty("input_integer")+":\n"+commentStr; index++; } + if("group".equals(headerStr)) { + commentStr=""; + //查询ip复用地址池配置的policyGroup列表 + List list=policyGroupInfoDao.findPolicyGroupInfosByType(2); + if(!StringUtil.isEmpty(list)){ + for (PolicyGroupInfo policyGroupInfo : list) { + commentStr=commentStr+policyGroupInfo.getGroupId()+"("+policyGroupInfo.getGroupName()+")\n"; + index++; + } + } + commentStr=msgProp.getProperty("select")+":\n"+commentStr; + index++; + } + if("isp".equals(headerStr)) { + commentStr=""; + List itTypeList = new ArrayList(); + itTypeList.add(Constants.ITEM_TYPE_ISP); + SysDictInfo sysDictInfo=new SysDictInfo(); + sysDictInfo.setConditionType(itTypeList); + List isps=sysDictInfoDao.findAllSysDictInfo(sysDictInfo,null); + if(!StringUtil.isEmpty(isps)){ + for (SysDictInfo _sysDictInfo : isps) { + commentStr=commentStr+_sysDictInfo.getItemCode()+"("+_sysDictInfo.getItemValue()+")\n"; + index++; + } + } + commentStr=msgProp.getProperty("select")+":\n"+commentStr; + index++; + } if(region.getRegionType().equals(1)){//IP配置 //ip配置需要导入的信息:srcIp srcPort destIp destPort Protocol Direction //确定需要导入的srcIp srcPort destIp destPort信息 diff --git a/src/main/java/com/nis/web/controller/BaseController.java b/src/main/java/com/nis/web/controller/BaseController.java index 973932d74..11a71dfca 100644 --- a/src/main/java/com/nis/web/controller/BaseController.java +++ b/src/main/java/com/nis/web/controller/BaseController.java @@ -59,6 +59,7 @@ import com.nis.domain.configuration.template.AsnIpTemplate; import com.nis.domain.configuration.template.ComplexStringAllTemplate; import com.nis.domain.configuration.template.DdosIpTemplate; import com.nis.domain.configuration.template.DnsComplexStringTemplate; +import com.nis.domain.configuration.template.DnsIpTemplate; import com.nis.domain.configuration.template.IpAllTemplate; import com.nis.domain.configuration.template.IpCfgTemplate; import com.nis.domain.configuration.template.IpPayloadTemplate; @@ -70,6 +71,7 @@ import com.nis.domain.log.BaseLogEntity; import com.nis.domain.log.SearchReport; import com.nis.domain.specific.SpecificServiceCfg; import com.nis.exceptions.MaatConvertException; +import com.nis.util.ConfigServiceUtil; import com.nis.util.Configurations; //import com.nis.main.ConvertTool; import com.nis.util.Constants; @@ -1424,6 +1426,23 @@ public class BaseController { } } } + // dns fake ip + if (regionDict.getFunctionId().equals(401)) { + Integer dnsStrategyId = baseIpCfg.getDnsStrategyId(); + if (dnsStrategyId != null) { + if(dnsStrategyId>0) { + List dnsStrategys = dnsResStrategyService + .findDnsResStrategys(Long.valueOf(dnsStrategyId), Constants.VALID_YES, Constants.AUDIT_YES); + if (dnsStrategys == null || dnsStrategys.size() == 0) { + errInfo.append( + String.format(prop.getProperty("is_incorrect"), prop.getProperty("dns_res_strategy")) + + ";"); + } + } + }else { + baseIpCfg.setDnsStrategyId(0); + } + } //p2p ip if (regionDict.getFunctionId().equals(510) && "p2p_ip".equals(regionDict.getConfigServiceType())) { // P2p // IP @@ -3189,7 +3208,13 @@ public class BaseController { List list = ei.getDataList(IpAllTemplate.class, this.getMsgProp(),regionDict); ipPortCfgs = this.checkIpCfg(serviceDict, regionDict, list); } - } else if (regionDict.getFunctionId().equals(212)) { + } else if (regionDict.getFunctionId().equals(7)&&serviceDict!=null&&serviceDict.getAction().intValue()==16) { + List list = ei.getDataList(DnsIpTemplate.class, this.getMsgProp(),regionDict); + ipPortCfgs = this.checkIpCfg(serviceDict, regionDict, list); + }else if(regionDict.getFunctionId().equals(401)) { + List list = ei.getDataList(DnsIpTemplate.class, this.getMsgProp(),regionDict); + ipPortCfgs = this.checkIpCfg(serviceDict, regionDict, list); + }else if (regionDict.getFunctionId().equals(212)) { List list = ei.getDataList(IpPayloadTemplate.class, this.getMsgProp(),regionDict); ipPortCfgs = this.checkIpCfg(serviceDict, regionDict, list); } else if (regionDict.getFunctionId().equals(510) @@ -3278,6 +3303,15 @@ public class BaseController { ipPortCfgs.clear(); asnIpCfgService.saveAsnIpBatch(asnIpCfgs); }else { + List compileIds=Lists.newArrayList(); + try { + compileIds = ConfigServiceUtil.getId(1,ipPortCfgs.size()); + } catch (Exception e) { + e.printStackTrace(); + logger.info("获取编译ID出错"); + throw new MaatConvertException(":"+e.getMessage()); + } + int ind=0; for (BaseIpCfg cfg : ipPortCfgs) { cfg.setAction(serviceDict==null?null:serviceDict.getAction()); cfg.setAuditorId(UserUtils.getUser().getId()); @@ -3297,7 +3331,7 @@ public class BaseController { cfg.setRequestId(StringUtil.isEmpty(requestId) ? 0 : requestId); cfg.setServiceId(serviceDict==null?null:serviceDict.getServiceId()); cfg.setTableName("ip_port_cfg"); - cfg.setCompileId(ipCfgService.getCompileId()); + cfg.setCompileId(compileIds.get(ind)); if (serviceDict!=null&&(serviceDict.getServiceId().intValue() == 33 || serviceDict.getServiceId().intValue() == 145 || serviceDict.getServiceId().intValue() == 35 @@ -3322,26 +3356,38 @@ public class BaseController { appPolicyCfgs.add(appPolicyCfg); } } else { - if(regionDict.getFunctionId().intValue()!=600) { + if(regionDict.getFunctionId().intValue()!=600 + &®ionDict.getFunctionId().intValue()!=301 + &®ionDict.getFunctionId().intValue()!=401) { CfgIndexInfo cfgIndexInfo = new CfgIndexInfo(); BeanUtils.copyProperties(cfg, cfgIndexInfo); cfgIndexInfos.add(cfgIndexInfo); } } - + ind++; } if(ipPortCfgs!=null&&ipPortCfgs.size()>0) { if (regionDict.getFunctionId().equals(301)) { ddosCfgService.saveDdosIpCfg(ipPortCfgs); + }else if (regionDict.getFunctionId().equals(401)) { + dnsIpCfgService.saveDnsIpCfg(ipPortCfgs); }else { ipCfgService.saveBatch(ipPortCfgs, IpCfgDao.class); } - } } } else if (regionDict.getRegionType().equals(2)) { + List compileIds=Lists.newArrayList(); + try { + compileIds = ConfigServiceUtil.getId(1,stringCfgs.size()); + } catch (Exception e) { + e.printStackTrace(); + logger.info("获取编译ID出错"); + throw new MaatConvertException(":"+e.getMessage()); + } + int ind=0; for (BaseStringCfg cfg : stringCfgs) { cfg.setAction(serviceDict.getAction()); cfg.setAuditorId(UserUtils.getUser().getId()); @@ -3360,7 +3406,7 @@ public class BaseController { cfg.setLable("0"); cfg.setRequestId(StringUtil.isEmpty(requestId) ? 0 : requestId); cfg.setServiceId(serviceDict.getServiceId()); - cfg.setCompileId(ipCfgService.getCompileId()); + cfg.setCompileId(compileIds.get(i)); if (serviceDict.getServiceId().intValue() == 33 || serviceDict.getServiceId().intValue() == 145 || serviceDict.getServiceId().intValue() == 35 @@ -3389,6 +3435,7 @@ public class BaseController { BeanUtils.copyProperties(cfg, cfgIndexInfo, new String[] {"cfgId"}); cfgIndexInfos.add(cfgIndexInfo); } + ind++; } // 调用对应配置的service if (regionDict.getDictId().intValue() == 167) { @@ -3425,6 +3472,15 @@ public class BaseController { avContentCfgService.saveVoIpAccountCfg(stringCfgs); } } else if (regionDict.getRegionType().equals(3)) { + List compileIds=Lists.newArrayList(); + try { + compileIds = ConfigServiceUtil.getId(1,complexkeywordCfgs.size()); + } catch (Exception e) { + e.printStackTrace(); + logger.info("获取编译ID出错"); + throw new MaatConvertException(":"+e.getMessage()); + } + int ind=0; for (ComplexkeywordCfg cfg : complexkeywordCfgs) { cfg.setAction(serviceDict.getAction()); cfg.setAuditorId(UserUtils.getUser().getId()); @@ -3443,7 +3499,7 @@ public class BaseController { cfg.setLable("0"); cfg.setRequestId(StringUtil.isEmpty(requestId) ? 0 : requestId); cfg.setServiceId(serviceDict.getServiceId()); - cfg.setCompileId(ipCfgService.getCompileId()); + cfg.setCompileId(compileIds.get(ind)); if (serviceDict.getServiceId().intValue() == 33 || serviceDict.getServiceId().intValue() == 145 || serviceDict.getServiceId().intValue() == 35 @@ -3472,6 +3528,7 @@ public class BaseController { BeanUtils.copyProperties(cfg, cfgIndexInfo); cfgIndexInfos.add(cfgIndexInfo); } + ind++; } if (regionDict.getDictId().intValue() == 28) { websiteCfgService.saveDnsCfg(complexkeywordCfgs); 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 580f4aa62..f30592c6c 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 @@ -39,6 +39,7 @@ import com.nis.domain.configuration.template.IpRateLimitTemplate; import com.nis.domain.configuration.template.IpWhitelistTemplate; import com.nis.domain.configuration.template.P2pHashStringTemplate; import com.nis.domain.configuration.template.P2pIpTemplate; +import com.nis.domain.configuration.template.SnatTemplate; import com.nis.domain.configuration.template.StringAllTemplate; import com.nis.domain.specific.ConfigGroupInfo; import com.nis.exceptions.MaatConvertException; @@ -263,7 +264,7 @@ public class IpController extends BaseController{ ExportExcel excel=new ExportExcel(serviceDict,regionDict,this.getMsgProp(),null, IpPayloadTemplate.class, 2); excel.setDataList(this.getMsgProp(),classList,null). write(request,response, fileName).dispose(); - }else if(regionDict.getFunctionId().equals(7)){ //Dns IP + }else if(regionDict.getFunctionId().equals(7)||regionDict.getFunctionId().equals(401)){ //Dns IP,DNS FAKE IP List classList=new ArrayList(); ExportExcel excel=new ExportExcel(serviceDict,regionDict,this.getMsgProp(),null, DnsIpTemplate.class, 2); excel.setDataList(this.getMsgProp(),classList,null). @@ -288,6 +289,11 @@ public class IpController extends BaseController{ ExportExcel excel=new ExportExcel(serviceDict,regionDict,this.getMsgProp(),null, DdosIpTemplate.class, 2); excel.setDataList(this.getMsgProp(),classList,null). write(request,response, fileName).dispose(); + }else if(regionDict.getFunctionId().equals(633)){ //snat ip池 + List classList=new ArrayList(); + ExportExcel excel=new ExportExcel(serviceDict,regionDict,this.getMsgProp(),null, SnatTemplate.class, 2); + excel.setDataList(this.getMsgProp(),classList,null). + write(request,response, fileName).dispose(); }else{ List classList=new ArrayList(); ExportExcel excel=new ExportExcel(serviceDict,regionDict,this.getMsgProp(),null, IpAllTemplate.class, 2); diff --git a/src/main/java/com/nis/web/service/configuration/DdosCfgService.java b/src/main/java/com/nis/web/service/configuration/DdosCfgService.java index bb03d298e..5e72817f9 100644 --- a/src/main/java/com/nis/web/service/configuration/DdosCfgService.java +++ b/src/main/java/com/nis/web/service/configuration/DdosCfgService.java @@ -80,20 +80,26 @@ public class DdosCfgService extends BaseService{ entity.setCreateTime(createTime); entity.setIsValid(0); entity.setIsAudit(0); - //调用服务接口获取compileId - List compileIds = new ArrayList(); - try { - compileIds = ConfigServiceUtil.getId(1,1); - } catch (Exception e) { - e.printStackTrace(); - logger.info("获取编译ID出错"); - throw new MaatConvertException(e.getMessage()); + if(entity.getCompileId()==null||entity.getCompileId().intValue()==0) { + //调用服务接口获取compileId + List compileIds = new ArrayList(); + try { + compileIds = ConfigServiceUtil.getId(1,1); + } catch (Exception e) { + e.printStackTrace(); + logger.info("获取编译ID出错"); + throw new MaatConvertException(e.getMessage()); + } + if(compileIds != null && compileIds.size() >0 && compileIds.get(0) != 0){ + entity.setCompileId(compileIds.get(0)); + }else{ + throw new MaatConvertException(""); + } } - if(compileIds != null && compileIds.size() >0 && compileIds.get(0) != 0){ - entity.setCompileId(compileIds.get(0)); + if(entity.getCompileId()!=null&&entity.getCompileId().intValue()>0) { ddosCfgDao.insert(entity); - }else{ - throw new MaatConvertException(""); + }else { + throw new RuntimeException("Could not get compileId!"); } //修改 diff --git a/src/main/java/com/nis/web/service/configuration/DnsIpCfgService.java b/src/main/java/com/nis/web/service/configuration/DnsIpCfgService.java index 657ce65d2..f93acf66c 100644 --- a/src/main/java/com/nis/web/service/configuration/DnsIpCfgService.java +++ b/src/main/java/com/nis/web/service/configuration/DnsIpCfgService.java @@ -5,12 +5,14 @@ import java.util.ArrayList; import java.util.Date; import java.util.List; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.nis.domain.Page; import com.nis.domain.callback.InlineIp; +import com.nis.domain.configuration.BaseIpCfg; import com.nis.domain.configuration.DnsIpCfg; import com.nis.domain.maat.ToMaatResult; import com.nis.exceptions.MaatConvertException; @@ -43,6 +45,13 @@ public class DnsIpCfgService extends BaseService{ public DnsIpCfg getDnsIpCfg(Long cfgId) { return dnsIpCfgDao.getDnsIpCfg(cfgId); } + public void saveDnsIpCfg(List cfgs) { + for(BaseIpCfg cfg:cfgs) { + DnsIpCfg _cfg=new DnsIpCfg(); + BeanUtils.copyProperties(cfg, _cfg); + saveOrUpdate(_cfg); + } + } @Transactional(readOnly=false,rollbackFor=RuntimeException.class) public void saveOrUpdate(DnsIpCfg entity){ Date createTime=new Date(); @@ -54,20 +63,27 @@ public class DnsIpCfgService extends BaseService{ entity.setCreateTime(createTime); entity.setIsValid(0); entity.setIsAudit(0); - //调用服务接口获取compileId - List compileIds = new ArrayList(); - try { - compileIds = ConfigServiceUtil.getId(1,1); - } catch (Exception e) { - e.printStackTrace(); - logger.info("获取编译ID出错"); - throw new MaatConvertException(":"+e.getMessage()); + if(entity.getCompileId()==null||entity.getCompileId()==0) { + //调用服务接口获取compileId + List compileIds = new ArrayList(); + try { + compileIds = ConfigServiceUtil.getId(1,1); + } catch (Exception e) { + e.printStackTrace(); + logger.info("获取编译ID出错"); + throw new MaatConvertException(":"+e.getMessage()); + } + if(compileIds != null && compileIds.size() >0 && compileIds.get(0) != 0){ + entity.setCompileId(compileIds.get(0)); + + }else{ + throw new MaatConvertException(""); + } } - if(compileIds != null && compileIds.size() >0 && compileIds.get(0) != 0){ - entity.setCompileId(compileIds.get(0)); + if(entity.getCompileId()!=null&&entity.getCompileId()>0) { dnsIpCfgDao.insert(entity); - }else{ - throw new MaatConvertException(""); + }else { + throw new RuntimeException("Could not get compileId!"); } //修改 diff --git a/src/main/resources/sql/20181030/update_region.sql b/src/main/resources/sql/20181030/update_region.sql index 62dbc029f..5458add73 100644 --- a/src/main/resources/sql/20181030/update_region.sql +++ b/src/main/resources/sql/20181030/update_region.sql @@ -20,4 +20,10 @@ UPDATE function_region_dict SET is_import=1 WHERE function_id=8 AND dict_id IN( UPDATE function_region_dict SET is_import=1 WHERE function_id=22 AND dict_id IN(25,597); #DDOS IP UPDATE function_region_dict SET is_import=1,config_ip_port_show='3,4' WHERE function_id=301 AND dict_id IN(74); -UPDATE function_service_dict SET is_import=1 WHERE function_id=301; \ No newline at end of file +UPDATE function_service_dict SET is_import=1 WHERE function_id=301; +#SNAT 导入先不做 +UPDATE function_region_dict SET is_import=0,region_type=1,config_ip_port_show='3' WHERE function_id=633; +UPDATE function_service_dict SET is_import=0 WHERE function_id=633; +#DNS欺骗IP +UPDATE function_region_dict SET is_import=1 WHERE function_id=401; +UPDATE function_service_dict SET is_import=1 WHERE function_id=401; \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/cfg/dnsIpCfgList.jsp b/src/main/webapp/WEB-INF/views/cfg/dnsIpCfgList.jsp index 9aeb430bc..1db8c9d14 100644 --- a/src/main/webapp/WEB-INF/views/cfg/dnsIpCfgList.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/dnsIpCfgList.jsp @@ -61,6 +61,23 @@ onClick="javascript:window.location='${ctx}/cfg/dnsIp/form?functionId=${cfg.functionId}'"> + + + + + + + + + + + + + + + @@ -440,6 +457,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/maintenance/ipMultiplexPool/snatlist.jsp b/src/main/webapp/WEB-INF/views/cfg/maintenance/ipMultiplexPool/snatlist.jsp index ab8c78e51..bf2681ac2 100644 --- a/src/main/webapp/WEB-INF/views/cfg/maintenance/ipMultiplexPool/snatlist.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/maintenance/ipMultiplexPool/snatlist.jsp @@ -46,6 +46,23 @@ onClick="javascript:window.location='${ctx}/maintenance/ipMultiplexPoolCfg/snatform?functionId=${cfg.functionId}'"> + + + + + + + + + + + + + + + @@ -451,6 +468,8 @@ - + + +<%@include file="/WEB-INF/include/excel/importModal.jsp" %> \ No newline at end of file