diff --git a/src/main/java/com/nis/web/controller/BaseController.java b/src/main/java/com/nis/web/controller/BaseController.java
index 8776aa3ba..098860ccd 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;
@@ -107,6 +110,7 @@ import com.nis.util.Configurations;
import com.nis.util.Constants;
import com.nis.util.DateUtils;
import com.nis.util.DictUtils;
+import com.nis.util.FileUtils;
import com.nis.util.JsonMapper;
import com.nis.util.ServiceConfigTemplateUtil;
import com.nis.util.StringUtil;
@@ -160,6 +164,7 @@ import com.nis.web.service.configuration.MailCfgService;
import com.nis.web.service.configuration.NumCfgService;
import com.nis.web.service.configuration.ProxyFileStrategyService;
import com.nis.web.service.configuration.PxyObjKeyringService;
+import com.nis.web.service.configuration.PxyObjSpoofingIpPoolService;
import com.nis.web.service.configuration.RequestInfoService;
import com.nis.web.service.configuration.UserManageService;
import com.nis.web.service.configuration.WebsiteCfgService;
@@ -296,6 +301,9 @@ public class BaseController {
protected IpAddrPoolCfgService ipAddrPoolCfgService;// 地址池管理service
@Autowired
protected ConfigGroupInfoService configGroupInfoService;// 分组复用
+
+ @Autowired
+ protected PxyObjSpoofingIpPoolService pxyObjSpoofingIpPoolService;// 欺骗IP池
/**
* 管理基础路径
*/
@@ -356,6 +364,20 @@ public class BaseController {
model.addAttribute("message", sb.toString());
}
+ /**
+ * 添加Model消息
+ *
+ * @param message
+ * @param messageType 消息类型:info、success、warning、error、loading
+ */
+ protected void addMessage(String messageType,Model model,String... messages) {
+ StringBuilder sb = new StringBuilder();
+ for (String message : messages) {
+ sb.append(message).append(messages.length > 1 ? "
" : "");
+ }
+ model.addAttribute("message", sb.toString());
+ model.addAttribute("messageType", messageType);
+ }
/**
* 添加Model消息 日志用
*
@@ -1288,7 +1310,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 +1751,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);
}
@@ -1862,6 +1899,8 @@ public class BaseController {
addMessage(redirectAttributes,"error", "request_service_failed");
}else if(e instanceof ServiceException) {
addMessage(redirectAttributes,"error", e.getMessage());
+ }else if(e instanceof IndexOutOfBoundsException){
+ addMessage(redirectAttributes,"error", "template_error");
}else {
addMessage(redirectAttributes,"error", "import_failed");
}
@@ -1906,6 +1945,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);
}
@@ -2248,9 +2295,6 @@ public class BaseController {
/************************多域maat cfg_index_info 处理****************************************/
boolean hasData = true;
while(hasData){
- page.setPageSize(Constants.MAAT_JSON_SEND_SIZE);
- page.setOrderBy("");
- page.setPageNo(1);
List list=getDataList(page,searchCfg,null,null,null);
if(!StringUtil.isEmpty(list)){
//配置生效处理 复用全量下发