IP拦截、域名拦截导入提交.

This commit is contained in:
zhangwq
2018-12-16 20:27:25 +08:00
parent 153e1d43e1
commit e75e120ecc
10 changed files with 211 additions and 3 deletions

View File

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

View File

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

View File

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

View File

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

View File

@@ -205,6 +205,28 @@ public class ExportExcel {
index++;
}
}
// 拦截强度
if("intercept_intensity".equals(headerStr)){
commentStr="";
List<SysDataDictionaryItem> 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<SysDataDictionaryItem> 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";

View File

@@ -93,6 +93,10 @@ public class CheckIpFormatThread implements Callable<String>{
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();

View File

@@ -105,8 +105,41 @@ public class CheckStringFormatThread implements Callable<String>{
}
}
}
// 代理-域名拦截
if (regionDict.getFunctionId().equals(201) && "intercept_domain".equals(regionDict.getConfigServiceType())) {
String userRegion5 = baseStringCfg.getUserRegion5();// 拦截强度
String userRegion2 = baseStringCfg.getUserRegion2();// 丢包率
if (StringUtils.isNotBlank(userRegion5)) {
List<SysDataDictionaryItem> 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<SysDataDictionaryItem> 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") + " ") + ";");

View File

@@ -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<AppDomainTemplate> 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<DomainInterceptMonitTemplate> list = ei.getDataList(DomainInterceptMonitTemplate.class);
stringCfgs=this.checkStringCfgMulity(serviceDict, regionDict, list);
}else if(serviceDict.getAction().equals(64)){// 限速
BlockingQueue<DomainInterceptRateLimitTemplate> list = ei.getDataList(DomainInterceptRateLimitTemplate.class);
stringCfgs=this.checkStringCfgMulity(serviceDict, regionDict, list);
}else{// 白名单
BlockingQueue<DomainInterceptTemplate> list = ei.getDataList(DomainInterceptTemplate.class);
stringCfgs=this.checkStringCfgMulity(serviceDict, regionDict, list);
}
}else {
BlockingQueue<StringAllTemplate> 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);
}

View File

@@ -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<DomainInterceptMonitTemplate> classList=new ArrayList<DomainInterceptMonitTemplate>();
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<DomainInterceptRateLimitTemplate> classList=new ArrayList<DomainInterceptRateLimitTemplate>();
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<DomainInterceptTemplate> classList=new ArrayList<DomainInterceptTemplate>();
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<StringAllTemplate> classList=new ArrayList<StringAllTemplate>();
ExportExcel excel=new ExportExcel(serviceDict,regionDict,this.getMsgProp(),null, StringAllTemplate.class, 2);

View File

@@ -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<ComplexkeywordCfg> listPage = (List<ComplexkeywordCfg>) list;