(1)修复回调类IP转换提示不能为range的bug

(2)DDOS IP模板提交
(3)DDOS IP导入提交
(4)修复DDOS IP REGION CONFIG_IP_PORT_SHOW的值为3,4
This commit is contained in:
wangxin
2018-11-01 14:58:48 +08:00
parent 43fbee90a0
commit 70e8b207c5
15 changed files with 168 additions and 4 deletions

View File

@@ -25,7 +25,31 @@ public class IpPortCfg extends BaseIpCfg {
*/ */
private static final long serialVersionUID = 4664942095843594575L; 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) /* (non-Javadoc)
* @see com.nis.domain.configuration.BaseIpCfg#initDefaultValue() * @see com.nis.domain.configuration.BaseIpCfg#initDefaultValue()
*/ */

View File

@@ -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;
}
}

View File

@@ -6,6 +6,7 @@ package com.nis.domain.configuration.template;
* @author dell * @author dell
* *
*/ */
@Deprecated
public class IpAddrTemplate extends IpCfgTemplate { public class IpAddrTemplate extends IpCfgTemplate {

View File

@@ -13,6 +13,7 @@ import com.nis.util.excel.ExcelField;
/** /**
* @Description: excel导入IP类配置 * @Description: excel导入IP类配置
*/ */
@Deprecated
public class IpCfgTemplate { public class IpCfgTemplate {
/** /**

View File

@@ -7,6 +7,7 @@ import com.nis.util.excel.ExcelField;
* @author dell * @author dell
* *
*/ */
@Deprecated
public class IpMultiplexPolicyTemplate extends IpCfgTemplate { public class IpMultiplexPolicyTemplate extends IpCfgTemplate {
@Override @Override
@ExcelField(title="IP",align=2,sort=3) @ExcelField(title="IP",align=2,sort=3)

View File

@@ -6,6 +6,7 @@ package com.nis.domain.configuration.template;
* @author dell * @author dell
* *
*/ */
@Deprecated
public class IpsecTemplate extends IpCfgTemplate { public class IpsecTemplate extends IpCfgTemplate {

View File

@@ -6,6 +6,7 @@ package com.nis.domain.configuration.template;
* @author dell * @author dell
* *
*/ */
@Deprecated
public class TunnelIpTemplate extends IpCfgTemplate { public class TunnelIpTemplate extends IpCfgTemplate {

View File

@@ -6,6 +6,7 @@ package com.nis.domain.configuration.template;
* @author dell * @author dell
* *
*/ */
@Deprecated
public class WhiteListIpTemplate extends IpCfgTemplate { public class WhiteListIpTemplate extends IpCfgTemplate {
@Override @Override

View File

@@ -247,6 +247,31 @@ public class ExportExcel {
index++; index++;
} }
} }
if("antiddos_protocol".equals(headerStr)) {
commentStr="";
List<SysDataDictionaryItem> 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配置 if(region.getRegionType().equals(1)){//IP配置
//ip配置需要导入的信息srcIp srcPort destIp destPort Protocol Direction //ip配置需要导入的信息srcIp srcPort destIp destPort Protocol Direction
//确定需要导入的srcIp srcPort destIp destPort信息 //确定需要导入的srcIp srcPort destIp destPort信息

View File

@@ -57,6 +57,7 @@ import com.nis.domain.configuration.RequestInfo;
import com.nis.domain.configuration.StringCfgTemplate; import com.nis.domain.configuration.StringCfgTemplate;
import com.nis.domain.configuration.template.AsnIpTemplate; import com.nis.domain.configuration.template.AsnIpTemplate;
import com.nis.domain.configuration.template.ComplexStringAllTemplate; 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.DnsComplexStringTemplate;
import com.nis.domain.configuration.template.IpAllTemplate; import com.nis.domain.configuration.template.IpAllTemplate;
import com.nis.domain.configuration.template.IpCfgTemplate; 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 if (regionDict.getFunctionId().equals(510) && "p2p_ip".equals(regionDict.getConfigServiceType())) { // P2p
// IP // IP
String userRegion1 = baseIpCfg.getUserRegion1(); 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<SysDataDictionaryItem> 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)) { if (regionDict.getRegionType().equals(1)) {
// 校验必填的IP端口 // 校验必填的IP端口
/* /*
@@ -3167,6 +3199,9 @@ public class BaseController {
} else if (regionDict.getFunctionId().equals(600)) {// ANS IP } else if (regionDict.getFunctionId().equals(600)) {// ANS IP
List<AsnIpTemplate> list = ei.getDataList(AsnIpTemplate.class, this.getMsgProp(),regionDict); List<AsnIpTemplate> list = ei.getDataList(AsnIpTemplate.class, this.getMsgProp(),regionDict);
ipPortCfgs = this.checkIpCfg(serviceDict, regionDict, list); ipPortCfgs = this.checkIpCfg(serviceDict, regionDict, list);
} else if (regionDict.getFunctionId().equals(301)) {// ANS IP
List<DdosIpTemplate> list = ei.getDataList(DdosIpTemplate.class, this.getMsgProp(),regionDict);
ipPortCfgs = this.checkIpCfg(serviceDict, regionDict, list);
} else { } else {
List<IpAllTemplate> list = ei.getDataList(IpAllTemplate.class, this.getMsgProp(),regionDict); List<IpAllTemplate> list = ei.getDataList(IpAllTemplate.class, this.getMsgProp(),regionDict);
ipPortCfgs = this.checkIpCfg(serviceDict, regionDict, list); ipPortCfgs = this.checkIpCfg(serviceDict, regionDict, list);
@@ -3297,8 +3332,13 @@ public class BaseController {
} }
if(ipPortCfgs!=null&&ipPortCfgs.size()>0) { if(ipPortCfgs!=null&&ipPortCfgs.size()>0) {
if (regionDict.getFunctionId().equals(301)) {
ddosCfgService.saveDdosIpCfg(ipPortCfgs);
}else {
ipCfgService.saveBatch(ipPortCfgs, IpCfgDao.class); ipCfgService.saveBatch(ipPortCfgs, IpCfgDao.class);
} }
}
} }
} else if (regionDict.getRegionType().equals(2)) { } else if (regionDict.getRegionType().equals(2)) {

View File

@@ -30,6 +30,7 @@ import com.nis.domain.configuration.IpPortCfg;
import com.nis.domain.configuration.NtcSubscribeIdCfg; import com.nis.domain.configuration.NtcSubscribeIdCfg;
import com.nis.domain.configuration.template.AsnIpTemplate; import com.nis.domain.configuration.template.AsnIpTemplate;
import com.nis.domain.configuration.template.ComplexStringAllTemplate; 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.DnsComplexStringTemplate;
import com.nis.domain.configuration.template.DnsIpTemplate; import com.nis.domain.configuration.template.DnsIpTemplate;
import com.nis.domain.configuration.template.IpAllTemplate; 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); ExportExcel excel=new ExportExcel(serviceDict,regionDict,this.getMsgProp(),null, IpWhitelistTemplate.class, 2);
excel.setDataList(this.getMsgProp(),classList,null). excel.setDataList(this.getMsgProp(),classList,null).
write(request,response, fileName).dispose(); write(request,response, fileName).dispose();
}else if(regionDict.getFunctionId().equals(301)){ //ddos ip
List<DdosIpTemplate> classList=new ArrayList<DdosIpTemplate>();
ExportExcel excel=new ExportExcel(serviceDict,regionDict,this.getMsgProp(),null, DdosIpTemplate.class, 2);
excel.setDataList(this.getMsgProp(),classList,null).
write(request,response, fileName).dispose();
}else{ }else{
List<IpAllTemplate> classList=new ArrayList<IpAllTemplate>(); List<IpAllTemplate> classList=new ArrayList<IpAllTemplate>();
ExportExcel excel=new ExportExcel(serviceDict,regionDict,this.getMsgProp(),null, IpAllTemplate.class, 2); ExportExcel excel=new ExportExcel(serviceDict,regionDict,this.getMsgProp(),null, IpAllTemplate.class, 2);

View File

@@ -980,7 +980,7 @@ public abstract class BaseService {
//ip转换为callback用ip //ip转换为callback用ip
public InlineIp convertCallBackIp(BaseIpCfg cfg,Integer policyGroup){ public InlineIp convertCallBackIp(BaseIpCfg cfg,Integer policyGroup){
List<IpCfg> cfgs = ipConvert(new IpCfg(),cfg); List<IpCfg> cfgs = ipConvert(new IpCfg(),cfg);
if(cfgs.size()>0) { if(cfgs.size()>1) {
throw new RuntimeException("CallBack IP did not support IP range!"); throw new RuntimeException("CallBack IP did not support IP range!");
} }
IpCfg c=cfgs.get(0); IpCfg c=cfgs.get(0);

View File

@@ -7,6 +7,7 @@ import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@@ -14,7 +15,9 @@ import org.springframework.transaction.annotation.Transactional;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.nis.domain.Page; import com.nis.domain.Page;
import com.nis.domain.callback.InlineIp; import com.nis.domain.callback.InlineIp;
import com.nis.domain.configuration.BaseIpCfg;
import com.nis.domain.configuration.DdosIpCfg; import com.nis.domain.configuration.DdosIpCfg;
import com.nis.domain.configuration.IpPortCfg;
import com.nis.domain.maat.ToMaatResult; import com.nis.domain.maat.ToMaatResult;
import com.nis.exceptions.MaatConvertException; import com.nis.exceptions.MaatConvertException;
import com.nis.util.ConfigServiceUtil; import com.nis.util.ConfigServiceUtil;
@@ -47,6 +50,13 @@ public class DdosCfgService extends BaseService{
public DdosIpCfg getDdosIpCfg(Long cfgId) { public DdosIpCfg getDdosIpCfg(Long cfgId) {
return ddosCfgDao.getDdosIpCfg(cfgId); return ddosCfgDao.getDdosIpCfg(cfgId);
} }
public void saveDdosIpCfg(List<BaseIpCfg> ipPortCfgs) {
for(BaseIpCfg cfg:ipPortCfgs) {
DdosIpCfg ddosIpCfg=new DdosIpCfg();
BeanUtils.copyProperties(cfg, ddosIpCfg);
saveOrUpdate(ddosIpCfg);
}
}
@Transactional(readOnly=false,rollbackFor=RuntimeException.class) @Transactional(readOnly=false,rollbackFor=RuntimeException.class)
public void saveOrUpdate(DdosIpCfg entity){ public void saveOrUpdate(DdosIpCfg entity){
Date createTime=new Date(); Date createTime=new Date();

View File

@@ -18,3 +18,6 @@ UPDATE function_region_dict SET is_import=0 WHERE function_id=37 AND dict_id=600
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=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); 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;

View File

@@ -64,6 +64,23 @@
onClick="javascript:window.location='${ctx}/manipulation/ddos/form?functionId=${cfg.functionId}'"> onClick="javascript:window.location='${ctx}/manipulation/ddos/form?functionId=${cfg.functionId}'">
<i class="fa fa-plus"></i> <i class="fa fa-plus"></i>
<spring:message code="add"></spring:message></button> <spring:message code="add"></spring:message></button>
<c:set var="serviceImport" value="false"></c:set>
<c:set var="regionImport" value="false"></c:set>
<c:forEach items="${serviceList}" var="service" >
<c:if test="${(cfg.functionId eq service.functionId) && service.isImport eq 1}">
<c:set var="serviceImport" value="true"></c:set>
</c:if>
</c:forEach>
<c:forEach items="${regionList}" var="region" >
<c:if test="${(cfg.functionId eq region.functionId) && region.isImport eq 1}">
<c:set var="regionImport" value="true"></c:set>
</c:if>
</c:forEach>
<c:if test="${serviceImport eq 'true' && regionImport eq 'true'}">
<button type="button" class="btn btn-primary import" >
<i class="fa fa-plus"></i>
<spring:message code="import"></spring:message></button>
</c:if>
</shiro:hasPermission> </shiro:hasPermission>
</div> </div>
@@ -473,6 +490,8 @@
</div> </div>
</div> </div>
</div> </div>
<c:set var="importPath" value="/manipulation/ddos/list?functionId=${cfg.functionId}"/>
<!-- 模板导入start -->
<%@include file="/WEB-INF/include/excel/importModal.jsp" %>
</body> </body>
</html> </html>