diff --git a/src/main/java/com/nis/domain/configuration/template/DomainInterceptMonitTemplate.java b/src/main/java/com/nis/domain/configuration/template/DomainInterceptMonitTemplate.java new file mode 100644 index 000000000..e99cf60ed --- /dev/null +++ b/src/main/java/com/nis/domain/configuration/template/DomainInterceptMonitTemplate.java @@ -0,0 +1,32 @@ +package com.nis.domain.configuration.template; + +import com.nis.util.excel.ExcelField; + +/** + * EXCEL DomainIntercept 导入模板(监测) + * @author dell + * + */ +public class DomainInterceptMonitTemplate extends StringAllTemplate{ + + private String userRegion5; + private String cfgKeywords; + + @ExcelField(title="intercept_intensity",dictType="INTERCEPT_DOMAIN_INTENSITY",align=2,sort=2) + public String getUserRegion5() { + return userRegion5; + } + + public void setUserRegion5(String userRegion5) { + this.userRegion5 = userRegion5; + } + + @ExcelField(title="domain_name",sort=11) + public String getCfgKeywords() { + return cfgKeywords; + } + + public void setCfgKeywords(String cfgKeywords) { + this.cfgKeywords = cfgKeywords; + } +} diff --git a/src/main/java/com/nis/domain/configuration/template/DomainInterceptRateLimitTemplate.java b/src/main/java/com/nis/domain/configuration/template/DomainInterceptRateLimitTemplate.java new file mode 100644 index 000000000..62426cef6 --- /dev/null +++ b/src/main/java/com/nis/domain/configuration/template/DomainInterceptRateLimitTemplate.java @@ -0,0 +1,33 @@ +package com.nis.domain.configuration.template; + +import com.nis.util.excel.ExcelField; + +/** + * EXCEL DomainIntercept 导入模板(限速) + * @author dell + * + */ +public class DomainInterceptRateLimitTemplate extends StringAllTemplate{ + + private String userRegion2; + private String cfgKeywords; + + @ExcelField(title="ratelimit",dictType="RATE_LIMIT",align=2,sort=2) + public String getUserRegion2() { + return userRegion2; + } + + public void setUserRegion2(String userRegion2) { + this.userRegion2 = userRegion2; + } + + @ExcelField(title="domain_name",sort=11) + public String getCfgKeywords() { + return cfgKeywords; + } + + public void setCfgKeywords(String cfgKeywords) { + this.cfgKeywords = cfgKeywords; + } + +} diff --git a/src/main/java/com/nis/domain/configuration/template/DomainInterceptTemplate.java b/src/main/java/com/nis/domain/configuration/template/DomainInterceptTemplate.java new file mode 100644 index 000000000..8e81e44fb --- /dev/null +++ b/src/main/java/com/nis/domain/configuration/template/DomainInterceptTemplate.java @@ -0,0 +1,16 @@ +package com.nis.domain.configuration.template; + +import com.nis.util.excel.ExcelField; + +public class DomainInterceptTemplate extends StringAllTemplate{ + private String cfgKeywords; + + @ExcelField(title="domain_name",sort=11) + public String getCfgKeywords() { + return cfgKeywords; + } + + public void setCfgKeywords(String cfgKeywords) { + this.cfgKeywords = cfgKeywords; + } +} diff --git a/src/main/java/com/nis/domain/configuration/template/IpInterceptMonitTemplate.java b/src/main/java/com/nis/domain/configuration/template/IpInterceptMonitTemplate.java new file mode 100644 index 000000000..4bc1b8ed2 --- /dev/null +++ b/src/main/java/com/nis/domain/configuration/template/IpInterceptMonitTemplate.java @@ -0,0 +1,14 @@ +package com.nis.domain.configuration.template; + +/** + * IP拦截 拦截 + * @author dell + * + */ +public class IpInterceptMonitTemplate extends IpAllTemplate{ + + @Override + public Integer getProtocol() { + return super.getProtocol(); + } +} diff --git a/src/main/java/com/nis/util/excel/ExportExcel.java b/src/main/java/com/nis/util/excel/ExportExcel.java index 0d34ebfa3..a5da629d2 100644 --- a/src/main/java/com/nis/util/excel/ExportExcel.java +++ b/src/main/java/com/nis/util/excel/ExportExcel.java @@ -205,6 +205,28 @@ public class ExportExcel { index++; } } + // 拦截强度 + if("intercept_intensity".equals(headerStr)){ + commentStr=""; + List dict=DictUtils.getDictList("INTERCEPT_DOMAIN_INTENSITY"); + if(dict !=null && dict.size()>0){ + for (SysDataDictionaryItem sysDataDictionaryItem : dict) { + commentStr=commentStr+sysDataDictionaryItem.getItemCode()+"("+msgProp.getProperty(sysDataDictionaryItem.getItemValue(),sysDataDictionaryItem.getItemValue())+")\n"; + index++; + } + //defaultValue=dict.get(0).getItemCode(); + } + commentStr=msgProp.getProperty("select")+":\n"+commentStr; + index++; + /*commentStr=commentStr+"\n"+msgProp.getProperty("rule_desc_tip")+":\n"; + index++; + if(!StringUtil.isEmpty(defaultValue)){ + //1、默认值说明 + commentStr=commentStr+"▶"+msgProp.getProperty("default_value")+":"+defaultValue+"\n"; + index++; + index++; + }*/ + } /***发现内容***/ if("replaced_content".equals(headerStr)){ commentStr=commentStr+msgProp.getProperty("rule_desc_tip")+":\n"; @@ -805,6 +827,10 @@ public class ExportExcel { List protocol=DictUtils.getDictList("PROTOCOL"); if(protocol !=null && protocol.size()>0){ for (SysDataDictionaryItem sysDataDictionaryItem : protocol) { + // IP拦截 监测 + if((sysDataDictionaryItem.getItemCode().equals("17")) && (region.getFunctionId().equals(200) && service.getAction().equals(1))){ + continue; + } if((","+region.getConfigProtocol()+",").indexOf(","+sysDataDictionaryItem.getItemCode()+",") >-1){ if(StringUtil.isEmpty(msgProp.getProperty(sysDataDictionaryItem.getItemValue()))){ commentStr=commentStr+sysDataDictionaryItem.getItemCode()+"("+sysDataDictionaryItem.getItemValue()+")"+"\n"; diff --git a/src/main/java/com/nis/util/excel/thread/CheckIpFormatThread.java b/src/main/java/com/nis/util/excel/thread/CheckIpFormatThread.java index f714c0d72..44f6b9f24 100644 --- a/src/main/java/com/nis/util/excel/thread/CheckIpFormatThread.java +++ b/src/main/java/com/nis/util/excel/thread/CheckIpFormatThread.java @@ -93,6 +93,10 @@ public class CheckIpFormatThread implements Callable{ String protocol = regionDict.getConfigProtocol(); String direction = regionDict.getConfigDirection(); StringBuffer errTip = new StringBuffer(); + // 因IP拦截 监测 + if(regionDict.getFunctionId().equals(200) && serviceDict.getAction().equals(1)){ + protocol="6"; + } for (int i = 0; i < list.size(); i++) { StringBuffer errInfo = new StringBuffer(); IpPortCfg baseIpCfg = new IpPortCfg(); diff --git a/src/main/java/com/nis/util/excel/thread/CheckStringFormatThread.java b/src/main/java/com/nis/util/excel/thread/CheckStringFormatThread.java index ff7e7d6e1..ff9b4cc55 100644 --- a/src/main/java/com/nis/util/excel/thread/CheckStringFormatThread.java +++ b/src/main/java/com/nis/util/excel/thread/CheckStringFormatThread.java @@ -105,8 +105,41 @@ public class CheckStringFormatThread implements Callable{ } } } + // 代理-域名拦截 + if (regionDict.getFunctionId().equals(201) && "intercept_domain".equals(regionDict.getConfigServiceType())) { + String userRegion5 = baseStringCfg.getUserRegion5();// 拦截强度 + String userRegion2 = baseStringCfg.getUserRegion2();// 丢包率 + if (StringUtils.isNotBlank(userRegion5)) { + List dicts = DictUtils.getDictList("INTERCEPT_DOMAIN_INTENSITY"); + boolean has = false; + for (SysDataDictionaryItem dict : dicts) { + if (dict.getItemCode().equals(userRegion5)) { + has = true; + break; + } + } + if (!has) { + errInfo.append(String.format(prop.getProperty("is_incorrect"), + prop.getProperty("intercept_intensity") + " ") + ";"); + } + } + if (StringUtils.isNotBlank(userRegion2)) { + List dicts = DictUtils.getDictList("RATE_LIMIT"); + boolean has = false; + for (SysDataDictionaryItem dict : dicts) { + if (dict.getItemCode().equals(userRegion2)) { + has = true; + break; + } + } + if (!has) { + errInfo.append(String.format(prop.getProperty("is_incorrect"), + prop.getProperty("ratelimit") + " ") + ";"); + } + } + } String keyword = baseStringCfg.getCfgKeywords(); - if (!regionDict.getFunctionId().equals(403)) { + if (!regionDict.getFunctionId().equals(403) && !regionDict.getFunctionId().equals(201)) {// 201域名拦截 if (StringUtils.isBlank(keyword)) { errInfo.append( String.format(prop.getProperty("can_not_null"), prop.getProperty("key_word") + " ") + ";"); diff --git a/src/main/java/com/nis/web/controller/BaseController.java b/src/main/java/com/nis/web/controller/BaseController.java index 8776aa3ba..56e5c68bd 100644 --- a/src/main/java/com/nis/web/controller/BaseController.java +++ b/src/main/java/com/nis/web/controller/BaseController.java @@ -81,6 +81,9 @@ 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.DnsResStrategyTemplate; +import com.nis.domain.configuration.template.DomainInterceptMonitTemplate; +import com.nis.domain.configuration.template.DomainInterceptRateLimitTemplate; +import com.nis.domain.configuration.template.DomainInterceptTemplate; import com.nis.domain.configuration.template.IpAllTemplate; import com.nis.domain.configuration.template.IpCfgTemplate; import com.nis.domain.configuration.template.IpPayloadTemplate; @@ -91,12 +94,12 @@ import com.nis.domain.configuration.template.StringAllTemplate; import com.nis.domain.log.BaseLogEntity; import com.nis.domain.log.SearchReport; import com.nis.domain.maat.MaatCfg; -import com.nis.domain.maat.ToMaatBean; import com.nis.domain.maat.MaatCfg.DigestCfg; import com.nis.domain.maat.MaatCfg.GroupCfg; import com.nis.domain.maat.MaatCfg.IpCfg; import com.nis.domain.maat.MaatCfg.NumBoundaryCfg; import com.nis.domain.maat.MaatCfg.StringCfg; +import com.nis.domain.maat.ToMaatBean; import com.nis.domain.specific.ConfigGroupInfo; import com.nis.domain.specific.SpecificServiceCfg; import com.nis.exceptions.MaatConvertException; @@ -1288,7 +1291,18 @@ public class BaseController { BlockingQueue list = ei.getDataList(AppDomainTemplate.class ); stringCfgs=this.checkStringCfgMulity(serviceDict, regionDict, list); - } else { + }else if (regionDict.getFunctionId().equals(201)){// Domain Intercept + if(serviceDict.getAction().equals(1)){// 监测 + BlockingQueue list = ei.getDataList(DomainInterceptMonitTemplate.class); + stringCfgs=this.checkStringCfgMulity(serviceDict, regionDict, list); + }else if(serviceDict.getAction().equals(64)){// 限速 + BlockingQueue list = ei.getDataList(DomainInterceptRateLimitTemplate.class); + stringCfgs=this.checkStringCfgMulity(serviceDict, regionDict, list); + }else{// 白名单 + BlockingQueue list = ei.getDataList(DomainInterceptTemplate.class); + stringCfgs=this.checkStringCfgMulity(serviceDict, regionDict, list); + } + }else { BlockingQueue list = ei.getDataList(StringAllTemplate.class ); stringCfgs=this.checkStringCfgMulity(serviceDict, regionDict, list); } @@ -1718,6 +1732,10 @@ public class BaseController { } else { if(!regionDict.getFunctionId().equals(403)) { CfgIndexInfo cfgIndexInfo = new CfgIndexInfo(); + // 因域名阻断 -限速 -丢包率 + if(serviceDict.getFunctionId().equals(201) && serviceDict.getAction().equals(64)){ + cfg.setUserRegion1("0"); + } BeanUtils.copyProperties(cfg, cfgIndexInfo, new String[] {"cfgId"}); cfgIndexInfos.add(cfgIndexInfo); } @@ -1906,6 +1924,14 @@ public class BaseController { ei.loadInitParams(P2pHashStringTemplate.class, this.getMsgProp(), regionDict, serviceDict); }else if (regionDict.getFunctionId().equals(403)) { ei.loadInitParams(AppDomainTemplate.class, this.getMsgProp(), regionDict, serviceDict); + } else if(regionDict.getFunctionId().equals(201)){// Domain Intercept + if(serviceDict.getAction().equals(1)){// 监测 + ei.loadInitParams(DomainInterceptMonitTemplate.class, this.getMsgProp(), regionDict, serviceDict); + }else if(serviceDict.getAction().equals(64)){// 限速 + ei.loadInitParams(DomainInterceptRateLimitTemplate.class, this.getMsgProp(), regionDict, serviceDict); + }else{// 白名单 + ei.loadInitParams(DomainInterceptTemplate.class, this.getMsgProp(), regionDict, serviceDict); + } } else { ei.loadInitParams(StringAllTemplate.class, this.getMsgProp(), regionDict, serviceDict); } 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 b71986290..39cc183b9 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 @@ -37,6 +37,9 @@ import com.nis.domain.configuration.template.DnsComplexStringTemplate; import com.nis.domain.configuration.template.DnsIpTemplate; import com.nis.domain.configuration.template.DnsResStrategyTemplate; import com.nis.domain.configuration.template.IpAllTemplate; +import com.nis.domain.configuration.template.DomainInterceptMonitTemplate; +import com.nis.domain.configuration.template.DomainInterceptRateLimitTemplate; +import com.nis.domain.configuration.template.DomainInterceptTemplate; import com.nis.domain.configuration.template.IpPayloadTemplate; import com.nis.domain.configuration.template.IpRateLimitTemplate; import com.nis.domain.configuration.template.IpWhitelistTemplate; @@ -360,6 +363,23 @@ public class IpController extends BaseController{ ExportExcel excel=new ExportExcel(serviceDict,regionDict,this.getMsgProp(),null, AppDomainTemplate.class, 2); excel.setDataList(this.getMsgProp(),classList,null). write(request,response, fileName).dispose(); + }else if(regionDict.getFunctionId().equals(201)){// Domain Intercept + if(serviceDict.getAction().equals(1)){// 监测 + List classList=new ArrayList(); + ExportExcel excel=new ExportExcel(serviceDict,regionDict,this.getMsgProp(),null, DomainInterceptMonitTemplate.class, 2); + excel.setDataList(this.getMsgProp(),classList,null). + write(request,response, fileName).dispose(); + }else if(serviceDict.getAction().equals(64)){// 限速 + List classList=new ArrayList(); + ExportExcel excel=new ExportExcel(serviceDict,regionDict,this.getMsgProp(),null, DomainInterceptRateLimitTemplate.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, DomainInterceptTemplate.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, StringAllTemplate.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 727676eb3..accb9ca9a 100644 --- a/src/main/java/com/nis/web/service/BaseService.java +++ b/src/main/java/com/nis/web/service/BaseService.java @@ -1671,6 +1671,10 @@ public abstract class BaseService { if(regionDict.getDictId().intValue()==64){ // appCfgService.saveAppDomainCfg(listPage); this.saveStringCfgBatch(regionDict,serviceDict,listPage, AppDomainCfg.getTablename(),send); + }else + // 域名拦截 + if(regionDict.getDictId().intValue()==56){ + this.saveStringCfgBatch(regionDict,serviceDict,listPage, "http_url_cfg",send); } }else if("ComplexkeywordCfg".equals(type)) { List listPage = (List) list;