批量下发功能增加,delRow.tag中暂时不打开此功能。

app topic domain和app domain业务修改domain存储cfgkeyword属性。
摘要修改level属性存储为下发的最终数值。
同步的单域配置的增加时间和状态属性从entity中获取
This commit is contained in:
DuanDongmei
2018-12-05 17:56:41 +08:00
parent e5fa7cbca8
commit bb302e3f13
37 changed files with 2406 additions and 703 deletions

View File

@@ -27,6 +27,8 @@ import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang3.StringEscapeUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.log4j.Logger;
import org.apache.poi.ss.formula.functions.T;
import org.eclipse.jetty.util.ajax.JSON;
import org.jets3t.service.ServiceException;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -41,20 +43,37 @@ import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import com.beust.jcommander.internal.Lists;
import com.nis.domain.FunctionRegionDict;
import com.nis.domain.FunctionServiceDict;
import com.nis.domain.Page;
import com.nis.domain.SysDataDictionaryItem;
import com.nis.domain.basics.AsnIpCfg;
import com.nis.domain.basics.ServiceDictInfo;
import com.nis.domain.basics.SysDictInfo;
import com.nis.domain.callback.ProxyObjKeyring;
import com.nis.domain.configuration.AppDomainCfg;
import com.nis.domain.configuration.AppFeatureIndex;
import com.nis.domain.configuration.AppHttpCfg;
import com.nis.domain.configuration.AppIpCfg;
import com.nis.domain.configuration.AppPolicyCfg;
import com.nis.domain.configuration.AppSslCertCfg;
import com.nis.domain.configuration.AppTopicDomainCfg;
import com.nis.domain.configuration.AreaBean;
import com.nis.domain.configuration.AreaIpCfg;
import com.nis.domain.configuration.AvFileSampleCfg;
import com.nis.domain.configuration.AvSignSampleCfg;
import com.nis.domain.configuration.BaseCfg;
import com.nis.domain.configuration.BaseIpCfg;
import com.nis.domain.configuration.BaseStringCfg;
import com.nis.domain.configuration.CfgIndexInfo;
import com.nis.domain.configuration.ComplexStringCfgTemplate;
import com.nis.domain.configuration.ComplexkeywordCfg;
import com.nis.domain.configuration.DdosIpCfg;
import com.nis.domain.configuration.DnsIpCfg;
import com.nis.domain.configuration.DnsResStrategy;
import com.nis.domain.configuration.FileDigestCfg;
import com.nis.domain.configuration.IpPortCfg;
import com.nis.domain.configuration.PxyObjKeyring;
import com.nis.domain.configuration.PxyObjTrustedCaCert;
import com.nis.domain.configuration.PxyObjTrustedCaCrl;
import com.nis.domain.configuration.RequestInfo;
import com.nis.domain.configuration.StringCfgTemplate;
import com.nis.domain.configuration.template.AppDomainTemplate;
@@ -73,6 +92,14 @@ import com.nis.domain.configuration.template.P2pIpTemplate;
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.ToMaatResult;
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.specific.ConfigGroupInfo;
import com.nis.domain.specific.SpecificServiceCfg;
import com.nis.exceptions.MaatConvertException;
@@ -83,7 +110,9 @@ 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;
import com.nis.util.excel.ExportExcel;
import com.nis.util.excel.ImportBigExcel;
@@ -95,6 +124,7 @@ import com.nis.web.security.UserUtils;
import com.nis.web.service.ArchiveServcie;
import com.nis.web.service.AreaService;
import com.nis.web.service.BaseService;
import com.nis.web.service.CrudService;
import com.nis.web.service.DictService;
import com.nis.web.service.LogService;
import com.nis.web.service.MenuService;
@@ -115,6 +145,7 @@ import com.nis.web.service.configuration.AvCfgService;
import com.nis.web.service.configuration.AvContentCfgService;
import com.nis.web.service.configuration.BgpCfgService;
import com.nis.web.service.configuration.CachePolicyService;
import com.nis.web.service.configuration.CommonPolicyService;
import com.nis.web.service.configuration.ComplexStringCfgService;
import com.nis.web.service.configuration.ConfigSynchronizationService;
import com.nis.web.service.configuration.ControlPolicyService;
@@ -143,6 +174,7 @@ import com.nis.web.service.specific.SpecificServiceHostCfgService;
import com.nis.web.service.systemService.ServiceConfigInfoService;
import jersey.repackaged.com.google.common.collect.Maps;
import net.sf.json.JSONObject;
public class BaseController {
@@ -254,9 +286,11 @@ public class BaseController {
//@Autowired
//protected ConfigGroupInfoService configGroupInfoService;
@Autowired
protected ConfigSynchronizationService configSynchronizationService;
@Autowired
protected CachePolicyService cachePolicyService;
@Autowired
protected ConfigSynchronizationService configSynchronizationService;
protected CommonPolicyService commonPolicyService;
@Autowired
protected UserManageService userManageService;
@@ -1800,8 +1834,10 @@ public class BaseController {
ei.getUploadFile().delete();
}
}
if(e instanceof MaatConvertException||e instanceof ServiceException) {
if(e instanceof MaatConvertException) {
addMessage(redirectAttributes,"error", "request_service_failed");
}else if(e instanceof ServiceException) {
addMessage(redirectAttributes,"error", e.getMessage());
}else {
addMessage(redirectAttributes,"error", "import_failed");
}
@@ -1902,4 +1938,655 @@ public class BaseController {
new ExportExcel(msgProp, titleList, noExportMap, classMap, 1).setDataList(msgProp, dataMap, map)
.write(response, fileName).dispose();
}
/**
* 批量审核
* @param isAudit
* @param isValid
* @param ids
* @param functionId
* @param redirectAttributes
* @return
*/
public void auditAll(Page page,Integer auditType,Object entity)throws Exception {
page.setPageSize(Constants.MAAT_JSON_SEND_SIZE);
page.setOrderBy("");
//携带审核状态信息的BaseCfg
BaseCfg auditBatchCfg=new BaseCfg();
//携带审核条件的BaseCfg
CfgIndexInfo searchCfg=new CfgIndexInfo();
AppPolicyCfg searchAppCfg=new AppPolicyCfg();
FileDigestCfg searchDigestCfg=new FileDigestCfg();
AvFileSampleCfg searchFileSampleCfg=new AvFileSampleCfg();
PxyObjKeyring searchObjKeyringCfg=new PxyObjKeyring();
PxyObjTrustedCaCert searchTrustedCaCertCfg=new PxyObjTrustedCaCert();
PxyObjTrustedCaCrl searchTrustedCaCrlCfg=new PxyObjTrustedCaCrl();
DnsResStrategy searchDnsResStrategy=new DnsResStrategy();
DnsIpCfg searchDnsIpCfg=new DnsIpCfg();
IpPortCfg searchIpPortCfg=new IpPortCfg();
AvSignSampleCfg searchSignSampleCfg=new AvSignSampleCfg();
DdosIpCfg searchDdosIpCfg=new DdosIpCfg();
AppIpCfg searchAppIpCfg=new AppIpCfg();
AppHttpCfg searchAppHttpCfg=new AppHttpCfg();
AppDomainCfg searchAppDomainCfg=new AppDomainCfg();
AppTopicDomainCfg searchAppTopicCfg=new AppTopicDomainCfg();
AppFeatureIndex searchAppFeatureIndex=new AppFeatureIndex();
AppSslCertCfg searchAppSslCertCfg=new AppSslCertCfg();
if(entity != null && (entity instanceof CfgIndexInfo)) {
BeanUtils.copyProperties(entity, auditBatchCfg);
BeanUtils.copyProperties(entity, searchCfg);
}
if(entity != null && (entity instanceof AppPolicyCfg)) {
BeanUtils.copyProperties(entity, auditBatchCfg);
BeanUtils.copyProperties(entity, searchAppCfg);
}
if(entity != null && (entity instanceof FileDigestCfg)) {
BeanUtils.copyProperties(entity, auditBatchCfg);
BeanUtils.copyProperties(entity, searchDigestCfg);
}
if(entity != null && (entity instanceof AvFileSampleCfg)) {
BeanUtils.copyProperties(entity, auditBatchCfg);
BeanUtils.copyProperties(entity, searchFileSampleCfg);
}
if(entity != null && (entity instanceof PxyObjKeyring)) {
BeanUtils.copyProperties(entity, auditBatchCfg);
BeanUtils.copyProperties(entity, searchObjKeyringCfg);
}
if(entity != null && (entity instanceof PxyObjTrustedCaCert)) {
BeanUtils.copyProperties(entity, auditBatchCfg);
BeanUtils.copyProperties(entity, searchTrustedCaCertCfg);
}
if(entity != null && (entity instanceof PxyObjTrustedCaCrl)) {
BeanUtils.copyProperties(entity, auditBatchCfg);
BeanUtils.copyProperties(entity, searchTrustedCaCrlCfg);
}
if(entity != null && (entity instanceof CfgIndexInfo)) {
BeanUtils.copyProperties(entity, auditBatchCfg);
BeanUtils.copyProperties(entity, searchDnsResStrategy);
}
if(entity != null && (entity instanceof DnsIpCfg)) {
BeanUtils.copyProperties(entity, auditBatchCfg);
BeanUtils.copyProperties(entity, searchDnsIpCfg);
}
if(entity != null && (entity instanceof CfgIndexInfo)) {
BeanUtils.copyProperties(entity, auditBatchCfg);
BeanUtils.copyProperties(entity, searchIpPortCfg);
}
if(entity != null && (entity instanceof AvSignSampleCfg)) {
BeanUtils.copyProperties(entity, auditBatchCfg);
BeanUtils.copyProperties(entity, searchSignSampleCfg);
}
if(entity != null && (entity instanceof DdosIpCfg)) {
BeanUtils.copyProperties(entity, auditBatchCfg);
BeanUtils.copyProperties(entity, searchDdosIpCfg);
}
if(entity != null && (entity instanceof CfgIndexInfo)) {
BeanUtils.copyProperties(entity, auditBatchCfg);
BeanUtils.copyProperties(entity, searchAppIpCfg);
}
if(entity != null && (entity instanceof AppHttpCfg)) {
BeanUtils.copyProperties(entity, auditBatchCfg);
BeanUtils.copyProperties(entity, searchAppHttpCfg);
}
if(entity != null && (entity instanceof AppDomainCfg)) {
BeanUtils.copyProperties(entity, auditBatchCfg);
BeanUtils.copyProperties(entity, searchAppDomainCfg);
}
if(entity != null && (entity instanceof AppTopicDomainCfg)) {
BeanUtils.copyProperties(entity, auditBatchCfg);
BeanUtils.copyProperties(entity, searchAppTopicCfg);
}
if(entity != null && (entity instanceof AppFeatureIndex)) {
BeanUtils.copyProperties(entity, auditBatchCfg);
BeanUtils.copyProperties(entity, searchAppFeatureIndex);
}
if(entity != null && (entity instanceof AppSslCertCfg)) {
BeanUtils.copyProperties(entity, auditBatchCfg);
BeanUtils.copyProperties(entity, searchAppSslCertCfg);
}
//全部审核通过,只查询当前条件下的所有未审核的配置
if(auditType.equals(1)) {
searchCfg.setIsValid(0);
searchCfg.setIsAudit(0);
searchAppCfg.setIsValid(0);
searchAppCfg.setIsAudit(0);
searchDigestCfg.setIsValid(0);
searchDigestCfg.setIsAudit(0);
searchFileSampleCfg.setIsValid(0);
searchFileSampleCfg.setIsAudit(0);
searchObjKeyringCfg.setIsValid(0);
searchObjKeyringCfg.setIsAudit(0);
searchTrustedCaCertCfg.setIsValid(0);
searchTrustedCaCertCfg.setIsAudit(0);
searchTrustedCaCrlCfg.setIsValid(0);
searchTrustedCaCrlCfg.setIsAudit(0);
searchDnsResStrategy.setIsValid(0);
searchDnsResStrategy.setIsAudit(0);
searchDnsIpCfg.setIsValid(0);
searchDnsIpCfg.setIsAudit(0);
searchIpPortCfg.setIsValid(0);
searchIpPortCfg.setIsAudit(0);
searchSignSampleCfg.setIsValid(0);
searchSignSampleCfg.setIsAudit(0);
searchDdosIpCfg.setIsValid(0);
searchDdosIpCfg.setIsAudit(0);
searchAppIpCfg.setIsValid(0);
searchAppIpCfg.setIsAudit(0);
searchAppHttpCfg.setIsValid(0);
searchAppHttpCfg.setIsAudit(0);
searchAppDomainCfg.setIsValid(0);
searchAppDomainCfg.setIsAudit(0);
searchAppTopicCfg.setIsValid(0);
searchAppTopicCfg.setIsAudit(0);
searchAppFeatureIndex.setIsValid(0);
searchAppFeatureIndex.setIsAudit(0);
searchAppSslCertCfg.setIsValid(0);
searchAppSslCertCfg.setIsAudit(0);
auditBatchCfg.setIsAudit(1);
auditBatchCfg.setIsValid(1);
auditBatchCfg.setAuditTime(new Date());
auditBatchCfg.setAuditorId(UserUtils.getUser().getId());
}else {
//全部取消通过,只查询当前条件下的所有审核通过的配置
searchCfg.setIsValid(1);
searchCfg.setIsAudit(1);
searchAppCfg.setIsValid(1);
searchAppCfg.setIsAudit(1);
searchDigestCfg.setIsValid(1);
searchDigestCfg.setIsAudit(1);
searchFileSampleCfg.setIsValid(1);
searchFileSampleCfg.setIsAudit(1);
searchObjKeyringCfg.setIsValid(1);
searchObjKeyringCfg.setIsAudit(1);
searchTrustedCaCertCfg.setIsValid(1);
searchTrustedCaCertCfg.setIsAudit(1);
searchTrustedCaCrlCfg.setIsValid(1);
searchTrustedCaCrlCfg.setIsAudit(1);
searchDnsResStrategy.setIsValid(1);
searchDnsResStrategy.setIsAudit(1);
searchDnsIpCfg.setIsValid(1);
searchDnsIpCfg.setIsAudit(1);
searchIpPortCfg.setIsValid(1);
searchIpPortCfg.setIsAudit(1);
searchSignSampleCfg.setIsValid(1);
searchSignSampleCfg.setIsAudit(1);
searchDdosIpCfg.setIsValid(1);
searchDdosIpCfg.setIsAudit(1);
searchAppIpCfg.setIsValid(1);
searchAppIpCfg.setIsAudit(1);
searchAppHttpCfg.setIsValid(1);
searchAppHttpCfg.setIsAudit(1);
searchAppDomainCfg.setIsValid(1);
searchAppDomainCfg.setIsAudit(1);
searchAppTopicCfg.setIsValid(1);
searchAppTopicCfg.setIsAudit(1);
searchAppFeatureIndex.setIsValid(1);
searchAppFeatureIndex.setIsAudit(1);
searchAppSslCertCfg.setIsValid(1);
searchAppSslCertCfg.setIsAudit(1);
auditBatchCfg.setIsAudit(3);
auditBatchCfg.setIsValid(0);
auditBatchCfg.setAuditTime(new Date());
auditBatchCfg.setAuditorId(UserUtils.getUser().getId());
}
ServiceConfigTemplateUtil serviceTemplate = new ServiceConfigTemplateUtil();
Integer functionId=0;
if(auditBatchCfg != null && !StringUtil.isEmpty(auditBatchCfg.getFunctionId())) {
functionId=auditBatchCfg.getFunctionId();
}
List<Map<String,Object>> serviceList = serviceTemplate.getServiceList(functionId);
for(Map<String,Object> service:serviceList){
String tableNameXml = service.get("tableName").toString();
String serviceTypeXml = service.get("serviceType").toString();
String classNameXml = service.get("className").toString();
String serviceIdXml = service.get("id").toString();
auditBatchCfg.setServiceId(Integer.valueOf(serviceIdXml));
auditBatchCfg.setTableName(tableNameXml);
searchCfg.setServiceId(Integer.valueOf(serviceIdXml));
searchCfg.setTableName(tableNameXml);
searchAppCfg.setServiceId(Integer.valueOf(serviceIdXml));
searchAppCfg.setTableName(tableNameXml);
searchDigestCfg.setServiceId(Integer.valueOf(serviceIdXml));
searchDigestCfg.setTableName(tableNameXml);
searchFileSampleCfg.setServiceId(Integer.valueOf(serviceIdXml));
searchFileSampleCfg.setTableName(tableNameXml);
searchObjKeyringCfg.setServiceId(Integer.valueOf(serviceIdXml));
searchObjKeyringCfg.setTableName(tableNameXml);
searchTrustedCaCertCfg.setServiceId(Integer.valueOf(serviceIdXml));
searchTrustedCaCertCfg.setTableName(tableNameXml);
searchTrustedCaCrlCfg.setServiceId(Integer.valueOf(serviceIdXml));
searchTrustedCaCrlCfg.setTableName(tableNameXml);
searchDnsResStrategy.setServiceId(Integer.valueOf(serviceIdXml));
searchDnsResStrategy.setTableName(tableNameXml);
searchDnsIpCfg.setServiceId(Integer.valueOf(serviceIdXml));
searchDnsIpCfg.setTableName(tableNameXml);
searchIpPortCfg.setServiceId(Integer.valueOf(serviceIdXml));
searchIpPortCfg.setTableName(tableNameXml);
searchSignSampleCfg.setServiceId(Integer.valueOf(serviceIdXml));
searchSignSampleCfg.setTableName(tableNameXml);
searchDdosIpCfg.setServiceId(Integer.valueOf(serviceIdXml));
searchDdosIpCfg.setTableName(tableNameXml);
searchAppIpCfg.setServiceId(Integer.valueOf(serviceIdXml));
searchAppIpCfg.setTableName(tableNameXml);
searchAppHttpCfg.setServiceId(Integer.valueOf(serviceIdXml));
searchAppHttpCfg.setTableName(tableNameXml);
searchAppDomainCfg.setServiceId(Integer.valueOf(serviceIdXml));
searchAppDomainCfg.setTableName(tableNameXml);
searchAppTopicCfg.setServiceId(Integer.valueOf(serviceIdXml));
searchAppTopicCfg.setTableName(tableNameXml);
searchAppFeatureIndex.setServiceId(Integer.valueOf(serviceIdXml));
searchAppFeatureIndex.setTableName(tableNameXml);
searchAppSslCertCfg.setServiceId(Integer.valueOf(serviceIdXml));
searchAppSslCertCfg.setTableName(tableNameXml);
if("1".equals(serviceTypeXml)){//maat类配置
List<Map<String,Object>> cfgList = (List<Map<String, Object>>) service.get("cfgList");
List<Map<String,Object>> userRegionList = (List<Map<String, Object>>) service.get("userRegionList");
if(!StringUtil.isEmpty(cfgList)) {
if("cfg_index_info".equals(tableNameXml)){
/************************多域maat cfg_index_info 处理****************************************/
boolean hasData = true;
while(hasData){
List<CfgIndexInfo> list=getDataList(page,searchCfg,null,null,null);
if(!StringUtil.isEmpty(list)){
//配置生效处理 复用全量下发
if(auditBatchCfg.getIsValid().equals(1)) {
hasData=configSynchronizationService.auditNtcMaatData(cfgList,userRegionList,page,auditBatchCfg,list,hasData,true);
}else {//配置失效处理 批量处理
List<BaseCfg> cfgIndexList=new ArrayList<>();
if(!StringUtil.isEmpty(list)) {
for (CfgIndexInfo cfg : list) {
BaseCfg baseCfg=new BaseCfg();
BeanUtils.copyProperties(cfg, baseCfg);
cfgIndexList.add(baseCfg);
}
}
hasData=commonPolicyService.auditNtcMaatData(cfgList, page, auditBatchCfg, cfgIndexList, hasData);
}
if(hasData) {
page.setPageNo(1);
}
}else{
hasData = false;
}
}
}else if("file_digest_cfg".equals(tableNameXml)){
/************************多域 maat 摘要处理****************************************/
boolean hasData = true;
while(hasData){
List<FileDigestCfg> list=getDataList(page,null,null,searchDigestCfg,null);
if(!StringUtil.isEmpty(list)){
//配置生效处理 复用全量下发
if(auditBatchCfg.getIsValid().equals(1)) {
hasData=configSynchronizationService.auditFileDigestData(cfgList, userRegionList, page, auditBatchCfg, list, hasData, true);
}else {//配置失效处理 批量处理
List<BaseCfg> baseCfgList=new ArrayList<>();
if(!StringUtil.isEmpty(list)) {
for (FileDigestCfg cfg : list) {
BaseCfg baseCfg=new BaseCfg();
BeanUtils.copyProperties(cfg, baseCfg);
baseCfgList.add(baseCfg);
}
}
hasData=commonPolicyService.auditNtcMaatData(cfgList, page, auditBatchCfg,baseCfgList, hasData);
}
if(hasData) {
page.setPageNo(1);
}
}else{
hasData = false;
}
}
}else if("app_policy_cfg".equals(tableNameXml)){
/************************多域 maat app策略处理****************************************/
boolean hasData = true;
while(hasData){
List<AppPolicyCfg> list=getDataList(page,null,searchAppCfg,null,null);
if(!StringUtil.isEmpty(list)){
//配置生效处理 复用全量下发
if(auditBatchCfg.getIsValid().equals(1)) {
hasData=configSynchronizationService.auditAppPolicyData(cfgList,userRegionList,page,auditBatchCfg,list,hasData,true);
}else {//配置失效处理 批量处理
List<BaseCfg> cfgAppList=new ArrayList<>();
if(!StringUtil.isEmpty(list)) {
for (AppPolicyCfg cfg : list) {
BaseCfg baseCfg=new BaseCfg();
BeanUtils.copyProperties(cfg, baseCfg);
cfgAppList.add(baseCfg);
}
}
hasData=commonPolicyService.auditNtcMaatData(cfgList, page, auditBatchCfg,cfgAppList, hasData);
}
if(hasData) {
page.setPageNo(1);
}
}else{
hasData = false;
}
}
}else if("app_feature_index".equals(tableNameXml)){
/************************多域 maat app特征处理****************************************/
boolean hasData = true;
while(hasData){
List<AppFeatureIndex> list=getDataList(page,null,null,null,searchAppFeatureIndex);
if(!StringUtil.isEmpty(list)){
//配置生效处理 复用全量下发
if(auditBatchCfg.getIsValid().equals(1)) {
hasData=configSynchronizationService.auditAppFeatureData(cfgList,userRegionList,page,auditBatchCfg,list,hasData,true);
}else {//配置失效处理 批量处理
List<BaseCfg> cfgFeatrureList=new ArrayList<>();
if(!StringUtil.isEmpty(list)) {
for (AppFeatureIndex cfg : list) {
BaseCfg baseCfg=new BaseCfg();
BeanUtils.copyProperties(cfg, baseCfg);
cfgFeatrureList.add(baseCfg);
}
}
hasData=commonPolicyService.auditNtcMaatData(cfgList, page, auditBatchCfg,cfgFeatrureList, hasData);
}
if(hasData) {
page.setPageNo(1);
}
}else{
hasData = false;
}
}
}else{
logger.info("未知业务");
}
}else {
/************************单域maat处理****************************************/
int cfgType = Integer.parseInt(service.get("cfgType").toString());
if("ddos_ip_cfg".equals(tableNameXml)){
boolean hasData = true;
while(hasData){
List<DdosIpCfg> list=ddosCfgService.findPage(page, searchDdosIpCfg).getList();
if(!StringUtil.isEmpty(list)){
if(auditBatchCfg.getIsValid().equals(1)) {
hasData=configSynchronizationService.auditDdosMaatData(cfgList,userRegionList,
page,auditBatchCfg,list,hasData,true);
}else {
List<BaseCfg> newList=new ArrayList<>();
if(!StringUtil.isEmpty(list)) {
for (Object obj : list) {
BaseCfg cfg=(BaseCfg)obj;
newList.add(cfg);
}
}
hasData=commonPolicyService.auditNtcMaatData(cfgList, page, auditBatchCfg,newList, hasData);
}
if(hasData) {
page.setPageNo(1);
}
}else{
hasData = false;
}
}
}else{
boolean hasData = true;
while(hasData){
List list = Lists.newArrayList();
/*
1026 app_domain_cfg
1028 app_ip_cfg
1029 app_ssl_cert_cfg
1152 app_topic_domain_cfg
1024 app_http_cfg
1026 app_domain_cfg
*/
if(auditBatchCfg.getServiceId().equals(1026)) {
list=appCfgService.findAppDomainList(page, searchAppDomainCfg).getList();
}
if(auditBatchCfg.getServiceId().equals(1028)) {
list=appCfgService.findAppIpList(page, searchAppIpCfg).getList();
}
if(auditBatchCfg.getServiceId().equals(1029)) {
list=appCfgService.findAppSslList(page, searchAppSslCertCfg).getList();
}
if(auditBatchCfg.getServiceId().equals(1152)) {
list=appCfgService.findAppTopicDomainList(page, searchAppTopicCfg).getList();
}
if(auditBatchCfg.getServiceId().equals(1024)) {
list=appCfgService.findAppHttpList(page, searchAppHttpCfg).getList();
}
if(!StringUtil.isEmpty(list)){
if(auditBatchCfg.getIsValid().equals(1)) {
if(auditBatchCfg.getServiceId().equals(1028)){
hasData=configSynchronizationService.auditAppIpData(userRegionList,
page,auditBatchCfg,list,hasData,true);
}else{
hasData=configSynchronizationService.auditSingleMaatData(cfgType,userRegionList,
page,auditBatchCfg,list,hasData,true);
}
}else {
List<BaseCfg> newList=new ArrayList<>();
if(!StringUtil.isEmpty(list)) {
for (Object obj : list) {
BaseCfg cfg=(BaseCfg)obj;
newList.add(cfg);
}
}
hasData=commonPolicyService.auditNtcMaatData(cfgList, page, auditBatchCfg,newList, hasData);
}
if(hasData) {
page.setPageNo(1);
}
}else{
hasData = false;
}
}
}
}
}else if("2".equals(serviceTypeXml)){
/********************回调类处理生效和失效一个方法【由于每个表检索条件不一样,需要自己处理,无法复用全量下发】*********/
boolean hasData = true;
while(hasData){
hasData=handelCallbackData(classNameXml, page, hasData, auditBatchCfg
, searchCfg
, searchAppCfg
, searchDigestCfg
, searchFileSampleCfg
, searchObjKeyringCfg
, searchTrustedCaCertCfg
, searchTrustedCaCrlCfg
, searchDnsResStrategy
, searchDnsIpCfg
, searchIpPortCfg
, searchSignSampleCfg);
if(hasData){
page.setPageNo(page.getNext());
}
}
}
}
}
public List getDataList(Page searchPage
,CfgIndexInfo searchCfg
,AppPolicyCfg searchAppCfg
,FileDigestCfg searchDigestCfg
,AppFeatureIndex searchAppFeatureIndex){
BaseCfg baseCfg=new BaseCfg<>();
if(!StringUtil.isEmpty(searchCfg)) {
BeanUtils.copyProperties(searchCfg, baseCfg);
}
if(!StringUtil.isEmpty(searchAppCfg)) {
BeanUtils.copyProperties(searchAppCfg, baseCfg);
}
if(!StringUtil.isEmpty(searchDigestCfg)) {
BeanUtils.copyProperties(searchDigestCfg, baseCfg);
}
if(!StringUtil.isEmpty(searchAppFeatureIndex)) {
BeanUtils.copyProperties(searchAppFeatureIndex, baseCfg);
}
Page pageResult=new Page();
if(baseCfg.getFunctionId().equals(5)//IP
|| baseCfg.getFunctionId().equals(3)) { //IP WHITELIST
pageResult=ipCfgService.getIpCfgList(searchPage,searchCfg);
}else if(baseCfg.getFunctionId().equals(212) //IP Payload
|| baseCfg.getFunctionId().equals(7) //DNS
|| baseCfg.getFunctionId().equals(8)//HTTP ADVANCED
|| baseCfg.getFunctionId().equals(635) //HTTP 关键字
|| baseCfg.getFunctionId().equals(37) //MAIL ADDRESS
|| baseCfg.getFunctionId().equals(35) //MAIL ADVANCED
|| baseCfg.getFunctionId().equals(34)) {//SSL
pageResult=websiteCfgService.getWebsiteList(searchPage, searchCfg);
}else if(baseCfg.getFunctionId().equals(6)) {//HTTP URL
pageResult=domainService.getDomainList(searchPage, searchCfg);
}else if(baseCfg.getFunctionId().equals(63)//Stream basic
|| baseCfg.getFunctionId().equals(407)//Stream app
|| baseCfg.getFunctionId().equals(408)) {//Stream behavior
pageResult=appCfgService.findAppPolicyList(searchPage, searchAppCfg);
}else if(baseCfg.getFunctionId().equals(61)) {//BGP
pageResult=bgpCfgService.getBgpList(searchPage, searchCfg);
}else if(baseCfg.getFunctionId().equals(51)) {//FTP
pageResult=fileTransferCfgService.getFtpList(searchPage, searchCfg);
}else if(baseCfg.getFunctionId().equals(510)) {//P2P
pageResult=fileTransferCfgService.getFtpList(searchPage, searchCfg);
}else if(baseCfg.getFunctionId().equals(22)) {//Stream Media
pageResult=avContentCfgService.findPage(searchPage, searchCfg);
}else if(baseCfg.getFunctionId().equals(24)) {//VOIP
pageResult=avContentCfgService.findPage(searchPage, searchCfg);
}else if(baseCfg.getFunctionId().equals(52)) {//Digest
pageResult=fileTransferCfgService.getFileDigestList(searchPage, searchDigestCfg);
}else if(baseCfg.getFunctionId().equals(200)//intercept ip
||baseCfg.getFunctionId().equals(201)) {//intercept domain
pageResult=interceptCfgService.getWebsiteList(searchPage, searchCfg);
}else if(baseCfg.getFunctionId().equals(207) //control
||baseCfg.getFunctionId().equals(208)
||baseCfg.getFunctionId().equals(209)
||baseCfg.getFunctionId().equals(210)
||baseCfg.getFunctionId().equals(211)) {
pageResult=httpRedirectCfgService.getHttpRedirectList(searchPage, searchCfg);
}else if(baseCfg.getFunctionId().equals(213)) {// cache
pageResult=cachePolicyService.getCachePolicyList(searchPage, searchCfg);
}else if(baseCfg.getFunctionId().equals(52)) {//appFeatre
pageResult=appMultiFeatureCfgService.findAppFeatureIndexList(searchPage,searchAppFeatureIndex);
}
return pageResult.getList();
}
private boolean handelCallbackData(String className,Page page,boolean hasData,BaseCfg entity
,CfgIndexInfo searchCfg
,AppPolicyCfg searchAppCfg
,FileDigestCfg searchDigestCfg
,AvFileSampleCfg searchFileSampleCfg
,PxyObjKeyring searchObjKeyringCfg
,PxyObjTrustedCaCert searchTrustedCaCertCfg
,PxyObjTrustedCaCrl searchTrustedCaCrlCfg
,DnsResStrategy searchDnsResStrategy
,DnsIpCfg searchDnsIpCfg
,IpPortCfg searchIpPortCfg
,AvSignSampleCfg searchSignSampleCfg) {
ToMaatBean maatBean;
MaatCfg maatCfg;
List<MaatCfg> configCompileList;
List<GroupCfg> groupRelationList;
List<IpCfg> ipRegionList;
List<StringCfg> strRegionList;
List<NumBoundaryCfg> numRegionList;
List<DigestCfg> digestRegionList;
List<IpCfg> areaIpRegionList;
maatBean = new ToMaatBean();
configCompileList = new ArrayList();
List list = new ArrayList();
List newList = new ArrayList();
List ids = new ArrayList();
List<Integer> compileIds = Lists.newArrayList();
if(entity.getServiceId().equals(3)){//ip drop回调类配置用了主表和子表关系
list = getDataList(page, searchCfg, null, null,null);
if(!StringUtil.isEmpty(list)){
for(int i=0;i<list.size();i++){
CfgIndexInfo cfg = (CfgIndexInfo) list.get(i);
compileIds.add(cfg.getCompileId());
}
List subList = commonPolicyService.getIpDropList("ip_port_cfg", compileIds);
for(int i=0;i<subList.size();i++){
IpPortCfg cfg = (IpPortCfg) subList.get(i);
newList.add(BaseService.convertCallBackIp(cfg,cfg.getGroupId()));
}
}
}else{
if(className.equals("AvFileSampleCfg")){
list = avCfgService.getAvFileSampleList(page,searchFileSampleCfg).getList();
for(int i=0;i<list.size();i++){
BaseCfg cfg = (BaseCfg) list.get(i);
ids.add(cfg.getCompileId());
}
newList.addAll(list);
}else if(className.equals("AvSignSampleCfg")){
list = avCfgService.getSignSampleList(searchSignSampleCfg);
for(int i=0;i<list.size();i++){
BaseCfg cfg = (BaseCfg) list.get(i);
ids.add(cfg.getCompileId());
}
newList.addAll(list);
}else if(className.equals("PxyObjKeyring")){
list = pxyObjKeyringService.findPage(page, searchObjKeyringCfg).getList();
for(int i=0;i<list.size();i++){
PxyObjKeyring cfg = (PxyObjKeyring) list.get(i);
newList.add(BaseService.convertCallBackProxyObjKeyring(cfg));
ids.add(cfg.getCompileId());
}
}else if(className.equals("PxyObjTrustedCaCert")){
list = pxyObjKeyringService.findTrustedCertPage(page,searchTrustedCaCertCfg).getList();
for(int i=0;i<list.size();i++){
PxyObjTrustedCaCert cfg = (PxyObjTrustedCaCert) list.get(i);
newList.addAll(BaseService.convertCallBackProxyObjTrustedCa(cfg,null));
//TODO 要保证cert下发成功crl必须也同时下发成功需要单个查询
ids.add(cfg.getCompileId());
}
}/*else if(className.equals("PxyObjTrustedCaCrl")){ //批量下发时不需要单独下发CRL
list = pxyObjKeyringService;
for(int i=0;i<list.size();i++){
PxyObjTrustedCaCrl cfg = (PxyObjTrustedCaCrl) list.get(i);
newList.add(BaseService.convertCallBackProxyObjTrustedCa(null,cfg));
ids.add(cfg.getCompileId());
}
}*/else if(className.equals("DnsResStrategy")){
list = dnsResStrategyService.findPage(page,searchDnsResStrategy).getList();
for(int i=0;i<list.size();i++){
DnsResStrategy cfg = (DnsResStrategy) list.get(i);
newList.add(BaseService.convertCallBackDnsResStrategy(cfg));
ids.add(cfg.getCompileId());
}
}else if(className.equals("DnsIpCfg")){
list = dnsIpCfgService.findPage(page,searchDnsIpCfg).getList();
for(int i=0;i<list.size();i++){
DnsIpCfg cfg = (DnsIpCfg) list.get(i);
newList.add(BaseService.convertCallBackIp(cfg,cfg.getGroupId()));
ids.add(cfg.getCompileId());
}
}else if(className.equals("IpPortCfg")){
list = commonPolicyService.getIpPortList(searchIpPortCfg);
for(int i=0;i<list.size();i++){
IpPortCfg cfg = (IpPortCfg) list.get(i);
newList.add(BaseService.convertCallBackIp(cfg,cfg.getGroupId()));
ids.add(cfg.getCompileId());
}
}
}
//批量修改和下发回调配置
commonPolicyService.auditCallBackData(newList, compileIds, ids, entity);
page.setList(list);
if(page.isLastPage()){
hasData = false;
}
return hasData;
}
}