(1)dns欺骗ip模板替换,不和dnsip共用

(2)导入一行格式错误不终止导入,略过该行继续导入
This commit is contained in:
wangxin
2018-12-20 15:53:02 +06:00
parent 87e3a77d7e
commit 81ddac4f9f
9 changed files with 157 additions and 83 deletions

View File

@@ -79,6 +79,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.DnsFakeIpTemplate;
import com.nis.domain.configuration.template.DnsIpTemplate;
import com.nis.domain.configuration.template.DnsResStrategyTemplate;
import com.nis.domain.configuration.template.DomainInterceptMonitTemplate;
@@ -931,7 +932,7 @@ public class BaseController {
* @throws InterruptedException
* @throws ExecutionException
*/
public BlockingQueue<BaseIpCfg> checkIpCfgMulity(FunctionServiceDict serviceDict, FunctionRegionDict regionDict,List<Map<Long,Integer>> asnNos, BlockingQueue<? extends Object> list) throws ServiceException, InterruptedException, ExecutionException{
public BlockingQueue<BaseIpCfg> checkIpCfgMulity(StringBuffer _msg,FunctionServiceDict serviceDict, FunctionRegionDict regionDict,List<Map<Long,Integer>> asnNos, BlockingQueue<? extends Object> list) throws ServiceException, InterruptedException, ExecutionException{
logger.warn("start checkIpCfgMulity ,size "+list.size());
long start=System.currentTimeMillis();
BlockingQueue<BaseIpCfg> queue=new ArrayBlockingQueue<>(list.size());
@@ -954,7 +955,8 @@ public class BaseController {
for(Future<String> future:futures) {
String msg = future.get();
if(StringUtils.isNotBlank(msg)) {
throw new ServiceException(msg);
//throw new ServiceException(msg);
_msg.append(msg);
}
}
long end=System.currentTimeMillis();
@@ -971,7 +973,7 @@ public class BaseController {
* @throws ExecutionException
* @throws ServiceException
*/
public BlockingQueue<BaseStringCfg<?>> checkStringCfgMulity(FunctionServiceDict serviceDict, FunctionRegionDict regionDict, BlockingQueue<? extends Object> list) throws InterruptedException, ExecutionException, ServiceException{
public BlockingQueue<BaseStringCfg<?>> checkStringCfgMulity(StringBuffer _msg,FunctionServiceDict serviceDict, FunctionRegionDict regionDict, BlockingQueue<? extends Object> list) throws InterruptedException, ExecutionException, ServiceException{
logger.warn("start checkStringCfgMulity ,size "+list.size());
long start=System.currentTimeMillis();
BlockingQueue<BaseStringCfg<?>> queue=new ArrayBlockingQueue<>(list.size());
@@ -993,7 +995,8 @@ public class BaseController {
for(Future<String> future:futures) {
String msg = future.get();
if(StringUtils.isNotBlank(msg)) {
throw new ServiceException(msg);
//throw new ServiceException(msg);
_msg.append(msg);
}
}
long end=System.currentTimeMillis();
@@ -1010,7 +1013,7 @@ public class BaseController {
* @throws ExecutionException
* @throws ServiceException
*/
public BlockingQueue<ComplexkeywordCfg> checkComplexStringCfgMulity(FunctionServiceDict serviceDict, FunctionRegionDict regionDict,BlockingQueue<? extends Object> list) throws InterruptedException, ExecutionException, ServiceException{
public BlockingQueue<ComplexkeywordCfg> checkComplexStringCfgMulity(StringBuffer _msg,FunctionServiceDict serviceDict, FunctionRegionDict regionDict,BlockingQueue<? extends Object> list) throws InterruptedException, ExecutionException, ServiceException{
logger.warn("start checkComplexStringCfgMulity ,size "+list.size());
long start=System.currentTimeMillis();
BlockingQueue<ComplexkeywordCfg> queue=new ArrayBlockingQueue<>(list.size());
@@ -1032,7 +1035,8 @@ public class BaseController {
for(Future<String> future:futures) {
String msg = future.get();
if(StringUtils.isNotBlank(msg)) {
throw new ServiceException(msg);
//throw new ServiceException(msg);
_msg.append(msg);
}
}
long end=System.currentTimeMillis();
@@ -1049,7 +1053,7 @@ public class BaseController {
* @throws ExecutionException
* @throws ServiceException
*/
public BlockingQueue<DnsResStrategy> checkDnsResStrategyCfgMulity(FunctionServiceDict serviceDict, FunctionRegionDict regionDict,BlockingQueue<? extends Object> list) throws InterruptedException, ExecutionException, ServiceException{
public BlockingQueue<DnsResStrategy> checkDnsResStrategyCfgMulity(StringBuffer _msg,FunctionServiceDict serviceDict, FunctionRegionDict regionDict,BlockingQueue<? extends Object> list) throws InterruptedException, ExecutionException, ServiceException{
logger.warn("start checkDnsResStrategyCfgMulity ,size "+list.size());
long start=System.currentTimeMillis();
BlockingQueue<DnsResStrategy> queue=new ArrayBlockingQueue<>(list.size());
@@ -1071,7 +1075,8 @@ public class BaseController {
for(Future<String> future:futures) {
String msg = future.get();
if(StringUtils.isNotBlank(msg)) {
throw new ServiceException(msg);
_msg.append(msg);
//throw new ServiceException(msg);
}
}
long end=System.currentTimeMillis();
@@ -1210,6 +1215,7 @@ public class BaseController {
ImportBigExcel ei=null;
try {
FunctionServiceDict serviceDict = DictUtils.getFunctionServiceDict(serviceDictId);
StringBuffer errTip=new StringBuffer();
BlockingQueue<BaseIpCfg> ipPortCfgs =null;
BlockingQueue<BaseStringCfg<?>> stringCfgs =null;
BlockingQueue<ComplexkeywordCfg> complexkeywordCfgs =null;
@@ -1250,78 +1256,78 @@ public class BaseController {
if (serviceDict!=null&&serviceDict.getAction().equals(64)) {
BlockingQueue<IpRateLimitTemplate> list = ei.getDataList(IpRateLimitTemplate.class
);
ipPortCfgs=this.checkIpCfgMulity(serviceDict, regionDict, null, list);
ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict, null, list);
} else {
BlockingQueue<IpAllTemplate> list = ei.getDataList(IpAllTemplate.class );
ipPortCfgs=this.checkIpCfgMulity(serviceDict, regionDict, null, list);
ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict, null, list);
}
} else if (regionDict.getFunctionId().equals(7)&&serviceDict!=null&&serviceDict.getAction().intValue()==16) {
BlockingQueue<DnsIpTemplate> list = ei.getDataList(DnsIpTemplate.class );
ipPortCfgs=this.checkIpCfgMulity(serviceDict, regionDict, null, list);
ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict, null, list);
}else if(regionDict.getFunctionId().equals(401)) {
BlockingQueue<DnsIpTemplate> list = ei.getDataList(DnsIpTemplate.class );
ipPortCfgs=this.checkIpCfgMulity(serviceDict, regionDict, null, list);
BlockingQueue<DnsFakeIpTemplate> list = ei.getDataList(DnsFakeIpTemplate.class );
ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict, null, list);
}else if (regionDict.getFunctionId().equals(212)) {
BlockingQueue<IpPayloadTemplate> list = ei.getDataList(IpPayloadTemplate.class );
ipPortCfgs=this.checkIpCfgMulity(serviceDict, regionDict, null, list);
ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict, null, list);
} else if (regionDict.getFunctionId().equals(510)
&& "p2p_ip".equals(regionDict.getConfigServiceType())) { // P2p IP
BlockingQueue<P2pIpTemplate> list = ei.getDataList(P2pIpTemplate.class );
ipPortCfgs=this.checkIpCfgMulity(serviceDict, regionDict, null, list);
ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict, null, list);
} else if (regionDict.getFunctionId().equals(600)) {// ASN IP
//加载asn缓存
AsnCacheUtils.init(true);
BlockingQueue<AsnIpTemplate> list = ei.getDataList(AsnIpTemplate.class );
ipPortCfgs=this.checkIpCfgMulity(serviceDict, regionDict, asnNoMaps, list);
ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict, asnNoMaps, list);
} else if (regionDict.getFunctionId().equals(301)) {// DDOS IP
BlockingQueue<DdosIpTemplate> list = ei.getDataList(DdosIpTemplate.class );
ipPortCfgs=this.checkIpCfgMulity(serviceDict, regionDict, null, list);
ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict, null, list);
} else {
BlockingQueue<IpAllTemplate> list = ei.getDataList(IpAllTemplate.class );
ipPortCfgs=this.checkIpCfgMulity(serviceDict, regionDict, null, list);
ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict, null, list);
}
} else if (regionDict.getRegionType().equals(2)) {// 字符串类
if (regionDict.getFunctionId().equals(510)
&& "p2p_hash".equals(regionDict.getConfigServiceType())) { // P2p hash
BlockingQueue<P2pHashStringTemplate> list = ei.getDataList(P2pHashStringTemplate.class
);
stringCfgs=this.checkStringCfgMulity(serviceDict, regionDict, list);
stringCfgs=this.checkStringCfgMulity(errTip,serviceDict, regionDict, list);
}else if (regionDict.getFunctionId().equals(403)) {
BlockingQueue<AppDomainTemplate> list = ei.getDataList(AppDomainTemplate.class
);
stringCfgs=this.checkStringCfgMulity(serviceDict, regionDict, list);
stringCfgs=this.checkStringCfgMulity(errTip,serviceDict, regionDict, list);
}else if (regionDict.getFunctionId().equals(201)){// Domain Intercept
if(serviceDict.getAction().equals(1)){// 监测
BlockingQueue<DomainInterceptMonitTemplate> list = ei.getDataList(DomainInterceptMonitTemplate.class);
stringCfgs=this.checkStringCfgMulity(serviceDict, regionDict, list);
stringCfgs=this.checkStringCfgMulity(errTip,serviceDict, regionDict, list);
}else if(serviceDict.getAction().equals(64)){// 限速
BlockingQueue<DomainInterceptRateLimitTemplate> list = ei.getDataList(DomainInterceptRateLimitTemplate.class);
stringCfgs=this.checkStringCfgMulity(serviceDict, regionDict, list);
stringCfgs=this.checkStringCfgMulity(errTip,serviceDict, regionDict, list);
}else{// 白名单
BlockingQueue<DomainInterceptTemplate> list = ei.getDataList(DomainInterceptTemplate.class);
stringCfgs=this.checkStringCfgMulity(serviceDict, regionDict, list);
stringCfgs=this.checkStringCfgMulity(errTip,serviceDict, regionDict, list);
}
}else {
BlockingQueue<StringAllTemplate> list = ei.getDataList(StringAllTemplate.class );
stringCfgs=this.checkStringCfgMulity(serviceDict, regionDict, list);
stringCfgs=this.checkStringCfgMulity(errTip,serviceDict, regionDict, list);
}
} else if (regionDict.getRegionType().equals(3)) {// 增强字符串类
if (regionDict.getFunctionId().equals(7)&&serviceDict!=null&&serviceDict.getAction().intValue()==16) {
BlockingQueue<DnsComplexStringTemplate> list = ei.getDataList(DnsComplexStringTemplate.class
);
complexkeywordCfgs = this.checkComplexStringCfgMulity(serviceDict, regionDict, list);
complexkeywordCfgs = this.checkComplexStringCfgMulity(errTip,serviceDict, regionDict, list);
} else {
BlockingQueue<ComplexStringAllTemplate> list = ei.getDataList(ComplexStringAllTemplate.class
);
complexkeywordCfgs = this.checkComplexStringCfgMulity(serviceDict, regionDict, list);
complexkeywordCfgs = this.checkComplexStringCfgMulity(errTip,serviceDict, regionDict, list);
}
}else if (regionDict.getRegionType().equals(6)) {// 回调类
if (regionDict.getFunctionId().equals(400)) {
BlockingQueue<DnsResStrategyTemplate> list = ei.getDataList(DnsResStrategyTemplate.class
);
dnsResStrategies=this.checkDnsResStrategyCfgMulity(serviceDict, regionDict, list);
dnsResStrategies=this.checkDnsResStrategyCfgMulity(errTip,serviceDict, regionDict, list);
}
}
//删除文件
@@ -1868,7 +1874,9 @@ public class BaseController {
}
}
}
if(errTip.toString().length()>0) {
addMessage(redirectAttributes,"error", errTip.toString());
}
} catch (Exception e) {
if(ei!=null) {
if(ei.getUploadFile().exists()) {
@@ -1907,7 +1915,7 @@ public class BaseController {
} else if (regionDict.getFunctionId().equals(7)&&serviceDict!=null&&serviceDict.getAction().intValue()==16) {
ei.loadInitParams(DnsIpTemplate.class, msgProp, regionDict, serviceDict);
}else if(regionDict.getFunctionId().equals(401)) {
ei.loadInitParams(DnsIpTemplate.class, msgProp, regionDict, serviceDict);
ei.loadInitParams(DnsFakeIpTemplate.class, msgProp, regionDict, serviceDict);
}else if (regionDict.getFunctionId().equals(212)) {
ei.loadInitParams(IpPayloadTemplate.class, msgProp, regionDict, serviceDict);
} else if (regionDict.getFunctionId().equals(510)