diff --git a/src/main/java/com/nis/domain/configuration/IpPortCfg.java b/src/main/java/com/nis/domain/configuration/IpPortCfg.java index 1b5684027..47cabb63c 100644 --- a/src/main/java/com/nis/domain/configuration/IpPortCfg.java +++ b/src/main/java/com/nis/domain/configuration/IpPortCfg.java @@ -25,7 +25,31 @@ public class IpPortCfg extends BaseIpCfg { */ private static final long serialVersionUID = 4664942095843594575L; + //仅用作导入时copy属性 + private String antiddosProtocol; + //仅用作导入时copy属性 + private Long bpsThreadshold; + //仅用作导入时copy属性 + private Long ppsThreadshold; + public String getAntiddosProtocol() { + return antiddosProtocol; + } + public void setAntiddosProtocol(String antiddosProtocol) { + this.antiddosProtocol = antiddosProtocol; + } + public Long getBpsThreadshold() { + return bpsThreadshold; + } + public void setBpsThreadshold(Long bpsThreadshold) { + this.bpsThreadshold = bpsThreadshold; + } + public Long getPpsThreadshold() { + return ppsThreadshold; + } + public void setPpsThreadshold(Long ppsThreadshold) { + this.ppsThreadshold = ppsThreadshold; + } /* (non-Javadoc) * @see com.nis.domain.configuration.BaseIpCfg#initDefaultValue() */ diff --git a/src/main/java/com/nis/domain/configuration/template/DdosIpTemplate.java b/src/main/java/com/nis/domain/configuration/template/DdosIpTemplate.java new file mode 100644 index 000000000..cd7167df6 --- /dev/null +++ b/src/main/java/com/nis/domain/configuration/template/DdosIpTemplate.java @@ -0,0 +1,31 @@ +package com.nis.domain.configuration.template; + +import com.nis.util.excel.ExcelField; + +public class DdosIpTemplate extends IpAllTemplate { + private String antiddosProtocol; + private Long bpsThreadshold; + private Long ppsThreadshold; + @ExcelField(title="antiddos_protocol",align=2,sort=2) + public String getAntiddosProtocol() { + return antiddosProtocol; + } + public void setAntiddosProtocol(String antiddosProtocol) { + this.antiddosProtocol = antiddosProtocol; + } + @ExcelField(title="bps_threadshold",align=2,sort=3) + public Long getBpsThreadshold() { + return bpsThreadshold; + } + public void setBpsThreadshold(Long bpsThreadshold) { + this.bpsThreadshold = bpsThreadshold; + } + @ExcelField(title="pps_threadshold",align=2,sort=4) + public Long getPpsThreadshold() { + return ppsThreadshold; + } + public void setPpsThreadshold(Long ppsThreadshold) { + this.ppsThreadshold = ppsThreadshold; + } + +} diff --git a/src/main/java/com/nis/domain/configuration/template/IpAddrTemplate.java b/src/main/java/com/nis/domain/configuration/template/IpAddrTemplate.java index 91417546c..148755b30 100644 --- a/src/main/java/com/nis/domain/configuration/template/IpAddrTemplate.java +++ b/src/main/java/com/nis/domain/configuration/template/IpAddrTemplate.java @@ -6,6 +6,7 @@ package com.nis.domain.configuration.template; * @author dell * */ +@Deprecated public class IpAddrTemplate extends IpCfgTemplate { diff --git a/src/main/java/com/nis/domain/configuration/template/IpCfgTemplate.java b/src/main/java/com/nis/domain/configuration/template/IpCfgTemplate.java index dd08bbfe9..06b94dfe2 100644 --- a/src/main/java/com/nis/domain/configuration/template/IpCfgTemplate.java +++ b/src/main/java/com/nis/domain/configuration/template/IpCfgTemplate.java @@ -13,6 +13,7 @@ import com.nis.util.excel.ExcelField; /** * @Description: excel导入IP类配置 */ +@Deprecated public class IpCfgTemplate { /** diff --git a/src/main/java/com/nis/domain/configuration/template/IpMultiplexPolicyTemplate.java b/src/main/java/com/nis/domain/configuration/template/IpMultiplexPolicyTemplate.java index 06e489d15..543019390 100644 --- a/src/main/java/com/nis/domain/configuration/template/IpMultiplexPolicyTemplate.java +++ b/src/main/java/com/nis/domain/configuration/template/IpMultiplexPolicyTemplate.java @@ -7,6 +7,7 @@ import com.nis.util.excel.ExcelField; * @author dell * */ +@Deprecated public class IpMultiplexPolicyTemplate extends IpCfgTemplate { @Override @ExcelField(title="IP",align=2,sort=3) diff --git a/src/main/java/com/nis/domain/configuration/template/IpsecTemplate.java b/src/main/java/com/nis/domain/configuration/template/IpsecTemplate.java index c4515e7c4..5805e99ad 100644 --- a/src/main/java/com/nis/domain/configuration/template/IpsecTemplate.java +++ b/src/main/java/com/nis/domain/configuration/template/IpsecTemplate.java @@ -6,6 +6,7 @@ package com.nis.domain.configuration.template; * @author dell * */ +@Deprecated public class IpsecTemplate extends IpCfgTemplate { diff --git a/src/main/java/com/nis/domain/configuration/template/TunnelIpTemplate.java b/src/main/java/com/nis/domain/configuration/template/TunnelIpTemplate.java index b94bc7841..c2cde9b73 100644 --- a/src/main/java/com/nis/domain/configuration/template/TunnelIpTemplate.java +++ b/src/main/java/com/nis/domain/configuration/template/TunnelIpTemplate.java @@ -6,6 +6,7 @@ package com.nis.domain.configuration.template; * @author dell * */ +@Deprecated public class TunnelIpTemplate extends IpCfgTemplate { diff --git a/src/main/java/com/nis/domain/configuration/template/WhiteListIpTemplate.java b/src/main/java/com/nis/domain/configuration/template/WhiteListIpTemplate.java index 337f0413c..63167ab56 100644 --- a/src/main/java/com/nis/domain/configuration/template/WhiteListIpTemplate.java +++ b/src/main/java/com/nis/domain/configuration/template/WhiteListIpTemplate.java @@ -6,6 +6,7 @@ package com.nis.domain.configuration.template; * @author dell * */ +@Deprecated public class WhiteListIpTemplate extends IpCfgTemplate { @Override diff --git a/src/main/java/com/nis/util/excel/ExportExcel.java b/src/main/java/com/nis/util/excel/ExportExcel.java index 8bae8aa6e..028d66e4f 100644 --- a/src/main/java/com/nis/util/excel/ExportExcel.java +++ b/src/main/java/com/nis/util/excel/ExportExcel.java @@ -247,6 +247,31 @@ public class ExportExcel { index++; } } + if("antiddos_protocol".equals(headerStr)) { + commentStr=""; + List antiddosProtocol=DictUtils.getDictList("ANTIDDOS_PROTOCOL"); + if(antiddosProtocol !=null && antiddosProtocol.size()>0){ + for (SysDataDictionaryItem sysDataDictionaryItem : antiddosProtocol) { + if(StringUtil.isEmpty(msgProp.getProperty(sysDataDictionaryItem.getItemValue()))){ + commentStr=commentStr+sysDataDictionaryItem.getItemCode()+"("+sysDataDictionaryItem.getItemValue()+")\n"; + index++; + }else{ + commentStr=commentStr+sysDataDictionaryItem.getItemCode()+"("+msgProp.getProperty(sysDataDictionaryItem.getItemValue())+")\n"; + index++; + } + } + } + commentStr=msgProp.getProperty("select")+":\n"+commentStr; + index++; + } + if("bps_threadshold".equals(headerStr)){ + commentStr=msgProp.getProperty("input_integer")+":\n"+commentStr; + index++; + } + if("pps_threadshold".equals(headerStr)){ + commentStr=msgProp.getProperty("input_integer")+":\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 295310b4a..973932d74 100644 --- a/src/main/java/com/nis/web/controller/BaseController.java +++ b/src/main/java/com/nis/web/controller/BaseController.java @@ -57,6 +57,7 @@ import com.nis.domain.configuration.RequestInfo; import com.nis.domain.configuration.StringCfgTemplate; 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.IpAllTemplate; import com.nis.domain.configuration.template.IpCfgTemplate; @@ -1423,6 +1424,7 @@ public class BaseController { } } } + //p2p ip if (regionDict.getFunctionId().equals(510) && "p2p_ip".equals(regionDict.getConfigServiceType())) { // P2p // IP String userRegion1 = baseIpCfg.getUserRegion1(); @@ -1469,6 +1471,36 @@ public class BaseController { } } } + if (regionDict.getFunctionId().equals(301)) { + String antiddosProtocol=baseIpCfg.getAntiddosProtocol(); + Long bpsThreadshold= baseIpCfg.getBpsThreadshold(); + Long ppsThreadshold= baseIpCfg.getPpsThreadshold(); + if(StringUtils.isNotBlank(antiddosProtocol)) { + List antiddosProtocolDicts=DictUtils.getDictList("ANTIDDOS_PROTOCOL"); + boolean has=false; + for(SysDataDictionaryItem ditc:antiddosProtocolDicts) { + if(ditc.getItemCode().equals(antiddosProtocol)) { + has=true; + break; + } + } + if(!has) { + errInfo.append( + String.format(prop.getProperty("is_incorrect"), prop.getProperty("antiddos_protocol")) + + ";"); + } + if(bpsThreadshold==null) { + errInfo.append( + String.format(prop.getProperty("can_not_null"), prop.getProperty("bps_threadshold")) + + ";"); + } + if(ppsThreadshold==null) { + errInfo.append( + String.format(prop.getProperty("can_not_null"), prop.getProperty("pps_threadshold")) + + ";"); + } + } + } if (regionDict.getRegionType().equals(1)) { // 校验必填的IP,端口 /* @@ -3167,6 +3199,9 @@ public class BaseController { } else if (regionDict.getFunctionId().equals(600)) {// ANS IP List list = ei.getDataList(AsnIpTemplate.class, this.getMsgProp(),regionDict); ipPortCfgs = this.checkIpCfg(serviceDict, regionDict, list); + } else if (regionDict.getFunctionId().equals(301)) {// ANS IP + List list = ei.getDataList(DdosIpTemplate.class, this.getMsgProp(),regionDict); + ipPortCfgs = this.checkIpCfg(serviceDict, regionDict, list); } else { List list = ei.getDataList(IpAllTemplate.class, this.getMsgProp(),regionDict); ipPortCfgs = this.checkIpCfg(serviceDict, regionDict, list); @@ -3297,7 +3332,12 @@ public class BaseController { } if(ipPortCfgs!=null&&ipPortCfgs.size()>0) { - ipCfgService.saveBatch(ipPortCfgs, IpCfgDao.class); + if (regionDict.getFunctionId().equals(301)) { + ddosCfgService.saveDdosIpCfg(ipPortCfgs); + }else { + ipCfgService.saveBatch(ipPortCfgs, IpCfgDao.class); + } + } } 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 eee744f8b..580f4aa62 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 @@ -30,6 +30,7 @@ import com.nis.domain.configuration.IpPortCfg; import com.nis.domain.configuration.NtcSubscribeIdCfg; 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; @@ -282,6 +283,11 @@ public class IpController extends BaseController{ ExportExcel excel=new ExportExcel(serviceDict,regionDict,this.getMsgProp(),null, IpWhitelistTemplate.class, 2); excel.setDataList(this.getMsgProp(),classList,null). write(request,response, fileName).dispose(); + }else if(regionDict.getFunctionId().equals(301)){ //ddos ip + List classList=new ArrayList(); + ExportExcel excel=new ExportExcel(serviceDict,regionDict,this.getMsgProp(),null, DdosIpTemplate.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/BaseService.java b/src/main/java/com/nis/web/service/BaseService.java index f63dc77c0..6ac4e436e 100644 --- a/src/main/java/com/nis/web/service/BaseService.java +++ b/src/main/java/com/nis/web/service/BaseService.java @@ -980,7 +980,7 @@ public abstract class BaseService { //ip转换为callback用ip public InlineIp convertCallBackIp(BaseIpCfg cfg,Integer policyGroup){ List cfgs = ipConvert(new IpCfg(),cfg); - if(cfgs.size()>0) { + if(cfgs.size()>1) { throw new RuntimeException("CallBack IP did not support IP range!"); } IpCfg c=cfgs.get(0); 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 7ba835604..bb03d298e 100644 --- a/src/main/java/com/nis/web/service/configuration/DdosCfgService.java +++ b/src/main/java/com/nis/web/service/configuration/DdosCfgService.java @@ -7,6 +7,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -14,7 +15,9 @@ import org.springframework.transaction.annotation.Transactional; import com.google.gson.Gson; import com.nis.domain.Page; import com.nis.domain.callback.InlineIp; +import com.nis.domain.configuration.BaseIpCfg; import com.nis.domain.configuration.DdosIpCfg; +import com.nis.domain.configuration.IpPortCfg; import com.nis.domain.maat.ToMaatResult; import com.nis.exceptions.MaatConvertException; import com.nis.util.ConfigServiceUtil; @@ -47,6 +50,13 @@ public class DdosCfgService extends BaseService{ public DdosIpCfg getDdosIpCfg(Long cfgId) { return ddosCfgDao.getDdosIpCfg(cfgId); } + public void saveDdosIpCfg(List ipPortCfgs) { + for(BaseIpCfg cfg:ipPortCfgs) { + DdosIpCfg ddosIpCfg=new DdosIpCfg(); + BeanUtils.copyProperties(cfg, ddosIpCfg); + saveOrUpdate(ddosIpCfg); + } + } @Transactional(readOnly=false,rollbackFor=RuntimeException.class) public void saveOrUpdate(DdosIpCfg entity){ Date createTime=new Date(); diff --git a/src/main/resources/sql/20181030/update_region.sql b/src/main/resources/sql/20181030/update_region.sql index 1f19ba3fd..62dbc029f 100644 --- a/src/main/resources/sql/20181030/update_region.sql +++ b/src/main/resources/sql/20181030/update_region.sql @@ -17,4 +17,7 @@ UPDATE function_region_dict SET is_import=0 WHERE function_id=37 AND dict_id=600 #http 高级 UPDATE function_region_dict SET is_import=1 WHERE function_id=8 AND dict_id IN(9,10,11,12,13); #流媒体 -UPDATE function_region_dict SET is_import=1 WHERE function_id=22 AND dict_id IN(25,597); \ No newline at end of file +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 diff --git a/src/main/webapp/WEB-INF/views/cfg/ddosIpCfgList.jsp b/src/main/webapp/WEB-INF/views/cfg/ddosIpCfgList.jsp index cc48e619c..da5c5a348 100644 --- a/src/main/webapp/WEB-INF/views/cfg/ddosIpCfgList.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/ddosIpCfgList.jsp @@ -64,6 +64,23 @@ onClick="javascript:window.location='${ctx}/manipulation/ddos/form?functionId=${cfg.functionId}'"> + + + + + + + + + + + + + + + @@ -473,6 +490,8 @@ - + + +<%@include file="/WEB-INF/include/excel/importModal.jsp" %> \ No newline at end of file