IP导入,url导入,SNI导入加入导入时直接审核功能

This commit is contained in:
wangxin
2018-11-20 22:52:32 +08:00
parent 255d6660e2
commit 9767a03882
10 changed files with 1503 additions and 673 deletions

View File

@@ -91,7 +91,6 @@ import com.nis.util.excel.thread.CheckComplexStringFormatThread;
import com.nis.util.excel.thread.CheckDnsResStrategyFormatThread;
import com.nis.util.excel.thread.CheckIpFormatThread;
import com.nis.util.excel.thread.CheckStringFormatThread;
import com.nis.web.dao.configuration.IpCfgDao;
import com.nis.web.security.UserUtils;
import com.nis.web.service.ArchiveServcie;
import com.nis.web.service.AreaService;
@@ -1249,6 +1248,7 @@ public class BaseController {
String specServiceId = request.getParameter("appId");
String behaviorId = request.getParameter("behaviorId");
String asnIpGroup = request.getParameter("asnGroupId");
String isSend = request.getParameter("isSend");
SpecificServiceCfg specificServiceCfg = null;
if (serviceDict!=null&&(serviceDict.getServiceId().intValue() == 33 || serviceDict.getServiceId().intValue() == 145
|| serviceDict.getServiceId().intValue() == 35
@@ -1403,7 +1403,7 @@ public class BaseController {
asnIpCfgs.add(_cfg);
ind++;
}
this.splitAndSave(regionDict, serviceDict, specificServiceCfg, asnIpCfgs, cfgIndexInfos, appPolicyCfgs);
this.splitAndSave(regionDict, serviceDict, specificServiceCfg, asnIpCfgs, cfgIndexInfos, appPolicyCfgs,isSend.equals("1"));
cfgIndexInfos.clear();
appPolicyCfgs.clear();
_ipPortCfgs.clear();
@@ -1415,9 +1415,21 @@ public class BaseController {
ipPortCfgs.drainTo(_ipPortCfgs, Constants.MAAT_JSON_SEND_SIZE);
List<Integer> compileIds=Lists.newArrayList();
List<Integer> regionIds=Lists.newArrayList();
List<Integer> groupIds=Lists.newArrayList();
List<Integer> numRegionGroupIds=Lists.newArrayList();
List<Integer> numRegionRegionIds=Lists.newArrayList();
if(!regionDict.getFunctionId().equals(405)) {//app ip compileId 从config_group_info中取
try {
compileIds = ConfigServiceUtil.getId(1,_ipPortCfgs.size());
if(isSend.equals("1")) {
groupIds = ConfigServiceUtil.getId(2,_ipPortCfgs.size());
regionIds = ConfigServiceUtil.getId(3,_ipPortCfgs.size());
}
//需要获取数值域的id
if(serviceDict!=null&&serviceDict.getProtocolId()!=null) {
numRegionGroupIds = ConfigServiceUtil.getId(2,_ipPortCfgs.size());
numRegionRegionIds = ConfigServiceUtil.getId(3,_ipPortCfgs.size());
}
} catch (Exception e) {
e.printStackTrace();
logger.info("获取编译ID出错");
@@ -1443,8 +1455,29 @@ public class BaseController {
cfg.setCreatorId(UserUtils.getUser().getId());
cfg.setDoLog(1);
cfg.setFunctionId(regionDict.getFunctionId());
cfg.setIsAudit(0);
cfg.setIsValid(0);
if(isSend.equals("1")) {
cfg.setIsAudit(Constants.AUDIT_YES);
cfg.setIsValid(Constants.VALID_YES);
cfg.setAuditorId(UserUtils.getUser().getId());
cfg.setAuditTime(date);
if(groupIds!=null&&groupIds.size()==_ipPortCfgs.size()) {
cfg.setGroupId(groupIds.get(ind));
}
if(regionIds!=null&&regionIds.size()==_ipPortCfgs.size()) {
cfg.setRegionId(regionIds.get(ind));
}
if(serviceDict!=null&&serviceDict.getProtocolId()!=null) {
if(numRegionGroupIds!=null&&numRegionGroupIds.size()==_ipPortCfgs.size()) {
cfg.setNumberRegionGroupId(numRegionGroupIds.get(ind));
}
if(numRegionRegionIds!=null&&numRegionRegionIds.size()==_ipPortCfgs.size()) {
cfg.setNumberRegionRegionId(numRegionRegionIds.get(ind));
}
}
}else {
cfg.setIsAudit(Constants.AUDIT_NOT_YET);
cfg.setIsValid(Constants.VALID_NO);
}
cfg.setIsAreaEffective(0);
cfg.setAttribute("0");
cfg.setClassify("0");
@@ -1499,7 +1532,7 @@ public class BaseController {
}
ind++;
}
this.splitAndSave(regionDict, serviceDict, specificServiceCfg, _ipPortCfgs, cfgIndexInfos, appPolicyCfgs);
this.splitAndSave(regionDict, serviceDict, specificServiceCfg, _ipPortCfgs, cfgIndexInfos, appPolicyCfgs,isSend.equals("1"));
cfgIndexInfos.clear();
appPolicyCfgs.clear();
_ipPortCfgs.clear();
@@ -1507,12 +1540,42 @@ public class BaseController {
}
} else if (regionDict.getRegionType().equals(2)) {
// List<Future<Throwable>> list=Lists.newArrayList();
// ExecutorService service=Executors.newFixedThreadPool(Constants.SAVE_AND_DEL_THREAD_SIZE);
// for(int j=0;j<Constants.SAVE_AND_DEL_THREAD_SIZE;j++) {
// SaveStringCfgThread t=new SaveStringCfgThread(serviceDict, regionDict, requestId, stringCfgs,isSend.equals("1"));
// t.setSpecificServiceCfg(specificServiceCfg);
// t.setAsnIpGroup(asnIpGroup);
// t.setBehaviorId(behaviorId);
// t.setSpecServiceId(specServiceId);
// list.add(service.submit(t));
// }
// service.shutdown();
// while(!service.isTerminated()) {
// Thread.sleep(10);
// }
// for(Future<Throwable> e:list) {
// if(e.get()!=null) {
// try {
// throw e.get();
// } catch (Throwable e1) {
// // TODO Auto-generated catch block
// e1.printStackTrace();
// }
// }
// }
List<BaseStringCfg> _stringCfgs=Lists.newArrayList(Constants.MAAT_JSON_SEND_SIZE);
while(!stringCfgs.isEmpty()) {
stringCfgs.drainTo(_stringCfgs, Constants.MAAT_JSON_SEND_SIZE);
List<Integer> compileIds=Lists.newArrayList();
List<Integer> groupIds=Lists.newArrayList();
List<Integer> regionIds=Lists.newArrayList();
try {
compileIds = ConfigServiceUtil.getId(1,_stringCfgs.size());
if(isSend.equals("1")) {
groupIds = ConfigServiceUtil.getId(2,_stringCfgs.size());
regionIds = ConfigServiceUtil.getId(3,_stringCfgs.size());
}
} catch (Exception e) {
e.printStackTrace();
logger.info("获取编译ID出错");
@@ -1521,16 +1584,27 @@ public class BaseController {
int ind=0;
for (BaseStringCfg cfg : _stringCfgs) {
cfg.setAction(serviceDict.getAction());
/*cfg.setAuditorId(UserUtils.getUser().getId());
cfg.setAuditTime(date);*/
cfg.setCfgRegionCode(regionDict.getConfigRegionCode());
cfg.setCfgType(regionDict.getConfigRegionValue());
cfg.setCreateTime(date);
cfg.setCreatorId(UserUtils.getUser().getId());
cfg.setDoLog(1);
cfg.setFunctionId(regionDict.getFunctionId());
cfg.setIsAudit(0);
cfg.setIsValid(0);
if(isSend.equals("1")) {
cfg.setIsAudit(Constants.AUDIT_YES);
cfg.setIsValid(Constants.VALID_YES);
cfg.setAuditorId(UserUtils.getUser().getId());
cfg.setAuditTime(date);
if(groupIds!=null&&groupIds.size()==_stringCfgs.size()) {
cfg.setGroupId(groupIds.get(ind));
}
if(regionIds!=null&&regionIds.size()==_stringCfgs.size()) {
cfg.setRegionId(regionIds.get(ind));
}
}else {
cfg.setIsAudit(Constants.AUDIT_NOT_YET);
cfg.setIsValid(Constants.VALID_NO);
}
cfg.setIsAreaEffective(0);
cfg.setAttribute("0");
cfg.setClassify("0");
@@ -1579,7 +1653,7 @@ public class BaseController {
}
ind++;
}
this.splitAndSave(regionDict, serviceDict, specificServiceCfg, _stringCfgs, cfgIndexInfos, appPolicyCfgs);
this.splitAndSave(regionDict, serviceDict, specificServiceCfg, _stringCfgs, cfgIndexInfos, appPolicyCfgs,isSend.equals("1"));
cfgIndexInfos.clear();
appPolicyCfgs.clear();
_stringCfgs.clear();
@@ -1657,7 +1731,7 @@ public class BaseController {
}
ind++;
}
this.splitAndSave(regionDict, serviceDict, specificServiceCfg, _complexkeywordCfgs, cfgIndexInfos, appPolicyCfgs);
this.splitAndSave(regionDict, serviceDict, specificServiceCfg, _complexkeywordCfgs, cfgIndexInfos, appPolicyCfgs,isSend.equals("1"));
cfgIndexInfos.clear();
appPolicyCfgs.clear();
_complexkeywordCfgs.clear();
@@ -1697,7 +1771,7 @@ public class BaseController {
cfg.setCompileId(compileIds.get(ind));
ind++;
}
this.splitAndSave(regionDict, serviceDict, specificServiceCfg, _dnsResStrategies, cfgIndexInfos, appPolicyCfgs);
this.splitAndSave(regionDict, serviceDict, specificServiceCfg, _dnsResStrategies, cfgIndexInfos, appPolicyCfgs,isSend.equals("1"));
_dnsResStrategies.clear();
cfgIndexInfos.clear();
appPolicyCfgs.clear();
@@ -1789,7 +1863,7 @@ public class BaseController {
public void splitAndSave(FunctionRegionDict regionDict,FunctionServiceDict serviceDict,
SpecificServiceCfg specificServiceCfg,
List<? extends BaseCfg> list,List<CfgIndexInfo> cfgIndexInfos,
List<AppPolicyCfg> appPolicyCfgs){
List<AppPolicyCfg> appPolicyCfgs,boolean send){
if(list!=null&&list.size()>0) {
String type=null;
if (list.get(0) instanceof BaseIpCfg) {
@@ -1803,6 +1877,12 @@ public class BaseController {
}else if(list.get(0) instanceof AsnIpCfg) {
type="AsnIpCfg";
}
if (cfgIndexInfos != null && cfgIndexInfos.size() > 0) {
ipCfgService.saveCfgIndexOf(cfgIndexInfos);
}
if (appPolicyCfgs != null && appPolicyCfgs.size() > 0) {
appCfgService.savePolicyList(appPolicyCfgs);
}
if("BaseIpCfg".equals(type)) {
List<BaseIpCfg> listPage = (List<BaseIpCfg>) list;
if (regionDict.getFunctionId().equals(301)) {
@@ -1812,7 +1892,7 @@ public class BaseController {
}else if (specificServiceCfg!=null&&regionDict.getFunctionId().equals(405)) {
appCfgService.saveAppIpCfg((List<BaseIpCfg>)listPage,specificServiceCfg);
}else {
ipCfgService.saveBatch((List<BaseIpCfg>)listPage, IpCfgDao.class);
ipCfgService.saveIpBatch(regionDict,serviceDict,(List<BaseIpCfg>)listPage,send);
}
}else if("AsnIpCfg".equals(type)) {
List<AsnIpCfg> listPage = (List<AsnIpCfg>) list;
@@ -1823,51 +1903,51 @@ public class BaseController {
// ip_payload
if (regionDict.getDictId().intValue() == 167) {
// interceptCfgService.saveInterceptCfg(listPage);
interceptCfgService.saveStringCfgBatch(listPage, "intercept_pkt_bin");
interceptCfgService.saveStringCfgBatch(regionDict,serviceDict,listPage, "intercept_pkt_bin",send);
}
// http url
if (regionDict.getDictId().intValue() == 9||regionDict.getDictId().intValue() == 15 || regionDict.getDictId().intValue() == 596) {
// websiteCfgService.saveHttpUrlCfg(listPage);
websiteCfgService.saveStringCfgBatch(listPage, "http_url_cfg");
websiteCfgService.saveStringCfgBatch(regionDict,serviceDict,listPage, "http_url_cfg",send);
}
// FTP url/content
if (regionDict.getDictId().intValue() == 36||regionDict.getDictId().intValue() == 37) {
// fileTransferCfgService.saveFtpCfg(listPage);
fileTransferCfgService.saveStringCfgBatch(listPage, "ftp_keyword_cfg");
fileTransferCfgService.saveStringCfgBatch(regionDict,serviceDict,listPage, "ftp_keyword_cfg",send);
}
// P2P eMule Keyword
if(regionDict.getDictId().intValue() == 158){
fileTransferCfgService.saveStringCfgBatch(listPage, "p2p_keyword_cfg");
fileTransferCfgService.saveStringCfgBatch(regionDict,serviceDict,listPage, "p2p_keyword_cfg",send);
}
// P2P File Marking
if(regionDict.getDictId().intValue() == 159){
// fileTransferCfgService.saveP2pCfg(listPage);
fileTransferCfgService.saveStringCfgBatch(listPage, "p2p_hash_cfg");
fileTransferCfgService.saveStringCfgBatch(regionDict,serviceDict,listPage, "p2p_hash_cfg",send);
}
// BGP AS
if (regionDict.getFunctionId().equals(61)) {
// bgpCfgService.saveBgpAsCfg(listPage);
bgpCfgService.saveStringCfgBatch(listPage, "ntc_bgp_as_cfg");
bgpCfgService.saveStringCfgBatch(regionDict,serviceDict,listPage, "ntc_bgp_as_cfg",send);
}
// SSL SNI/SAN/CN
if (regionDict.getFunctionId().intValue() == 34) {
// websiteCfgService.saveSslCfg(listPage);
websiteCfgService.saveStringCfgBatch(listPage, "ssl_keyword_cfg");
websiteCfgService.saveStringCfgBatch(regionDict,serviceDict,listPage, "ssl_keyword_cfg",send);
}
// HTTP 请求/应答内容
if(regionDict.getDictId().intValue()==12||regionDict.getDictId().intValue()==13||regionDict.getDictId().intValue()==601||regionDict.getDictId().intValue()==602) {
// websiteCfgService.saveHttpBodyCfg(listPage);
websiteCfgService.saveStringCfgBatch(listPage, "http_body_cfg");
websiteCfgService.saveStringCfgBatch(regionDict,serviceDict,listPage, "http_body_cfg",send);
}
// 流媒体协议
if(regionDict.getDictId().intValue()==25){
// avContentCfgService.saveContUrlCfg(listPage);
avContentCfgService.saveStringCfgBatch(listPage, "av_cont_url_cfg");
avContentCfgService.saveStringCfgBatch(regionDict,serviceDict,listPage, "av_cont_url_cfg",send);
}
// Voip Account
if(regionDict.getDictId().intValue()==16){
// avContentCfgService.saveVoIpAccountCfg(listPage);
avContentCfgService.saveStringCfgBatch(listPage, "av_voip_account_cfg");
avContentCfgService.saveStringCfgBatch(regionDict,serviceDict,listPage, "av_voip_account_cfg",send);
}
// APP域名特征
if(regionDict.getDictId().intValue()==64){
@@ -1907,12 +1987,6 @@ public class BaseController {
dnsResStrategyService.saveDnsResStrategyCfgBatch(listPage);
}
}
if (cfgIndexInfos != null && cfgIndexInfos.size() > 0) {
ipCfgService.saveCfgIndexOf(cfgIndexInfos);
}
if (appPolicyCfgs != null && appPolicyCfgs.size() > 0) {
appCfgService.savePolicyList(appPolicyCfgs);
}
}
/**
* 多域配置导出