diff --git a/src/main/java/com/nis/web/controller/BaseController.java b/src/main/java/com/nis/web/controller/BaseController.java index 05c9e5416..8358ff057 100644 --- a/src/main/java/com/nis/web/controller/BaseController.java +++ b/src/main/java/com/nis/web/controller/BaseController.java @@ -3444,6 +3444,8 @@ public class BaseController { } BaseCfg batchCfg = new BaseCfg(); + batchCfg.setIsValid(-1); + batchCfg.setIsAudit(0); batchCfg.setEditTime(new Date()); batchCfg.setEditorId(UserUtils.getUser().getId()); diff --git a/src/main/java/com/nis/web/dao/configuration/CommonPolicyDao.xml b/src/main/java/com/nis/web/dao/configuration/CommonPolicyDao.xml index dd8949cdd..d46d4837a 100644 --- a/src/main/java/com/nis/web/dao/configuration/CommonPolicyDao.xml +++ b/src/main/java/com/nis/web/dao/configuration/CommonPolicyDao.xml @@ -815,6 +815,19 @@ + + UPDATE ${tableName} SET + is_valid = #{entity.isValid,jdbcType=INTEGER}, + is_audit = #{entity.isAudit,jdbcType=INTEGER}, + auditor_id = #{entity.auditorId,jdbcType=INTEGER}, + audit_time = #{entity.auditTime,jdbcType=TIMESTAMP} + + AND cfg_id IN + + #{compileId} + + + update ${tableName} set is_audit = #{entity.isAudit,jdbcType=INTEGER}, auditor_id = #{entity.auditorId,jdbcType=INTEGER}, @@ -1030,7 +1043,13 @@ #{compileId} - + + + AND cfg_id IN + + #{compileId} + + AND compile_id IN diff --git a/src/main/java/com/nis/web/service/configuration/CommonPolicyService.java b/src/main/java/com/nis/web/service/configuration/CommonPolicyService.java index 0c1ca65fa..5b770f822 100644 --- a/src/main/java/com/nis/web/service/configuration/CommonPolicyService.java +++ b/src/main/java/com/nis/web/service/configuration/CommonPolicyService.java @@ -40,6 +40,7 @@ import com.nis.domain.configuration.HttpUrlCfg; import com.nis.domain.configuration.IpPortCfg; import com.nis.domain.configuration.NtcSubscribeIdCfg; import com.nis.domain.configuration.PxyObjKeyring; +import com.nis.domain.configuration.PxyObjSpoofingIpPool; import com.nis.domain.configuration.PxyObjTrustedCaCert; import com.nis.domain.configuration.PxyObjTrustedCaCrl; import com.nis.domain.maat.GroupReuseAddBean; @@ -61,6 +62,7 @@ import com.nis.util.StringUtil; import com.nis.web.dao.configuration.AreaIpCfgDao; import com.nis.web.dao.configuration.CommonPolicyDao; import com.nis.web.dao.configuration.ConfigSynchronizationDao; +import com.nis.web.dao.configuration.PxyObjSpoofingIpPoolDao; import com.nis.web.dao.configuration.StringCfgDao; import com.nis.web.dao.configuration.WebsiteCfgDao; import com.nis.web.security.UserUtils; @@ -73,6 +75,8 @@ public class CommonPolicyService extends CrudService compileIds = new ArrayList(); + List spoofingPoolCfgIds = new ArrayList(); for(BaseCfg cfg:list){ compileIds.add(cfg.getCompileId()); + if(entity.getServiceId().equals(518)){ // IP_Spoofing + spoofingPoolCfgIds.add(cfg.getUserRegion3()); + } } if(!StringUtil.isEmpty(compileIds) && !StringUtil.isEmpty(entity.getTableName())) { @@ -147,9 +155,39 @@ public class CommonPolicyService extends CrudService m:cfgList){ String tableName = m.get("tableName").toString(); - commonPolicyDao.auditCfgBatch( tableName, entity,compileIds,null); + if(tableName.equals("pxy_obj_spoofing_ip_pool")) { + commonPolicyDao.auditCfgBatch( tableName, entity,spoofingPoolCfgIds,null); + }else { + commonPolicyDao.auditCfgBatch( tableName, entity,compileIds,null); + } } } + + if(entity.getServiceId().equals(518)){// IP仿冒策略 + List poolList = new ArrayList(); + String json=""; + for (String cfgId : spoofingPoolCfgIds) { + PxyObjSpoofingIpPool pool = pxyObjSpoofingIpPoolDao.getPxyObjSpoofingIpPool(Long.parseLong(cfgId)); + PxyObjSpoofingIpPool cfg = new PxyObjSpoofingIpPool(); + cfg.setIsValid(0); + cfg.setCompileId(pool.getCompileId()); + cfg.setServiceId(pool.getServiceId()); + poolList.add(cfg); + } + // 调用服务接口取消配置 + json=gsonToJson(poolList); + logger.info("欺骗IP池配置批量失效参数:"+json); + // 调用服务接口取消配置 + try { + ToMaatResult result = ConfigServiceUtil.put(json, 2); + logger.info("欺骗IP池配置批量失效响应信息:"+result.getMsg()); + } catch (Exception e) { + logger.info("欺骗IP池配置批量失效失败"); + throw e; + } + + } + for(BaseCfg cfg:list){ maatCfg = new MaatCfg(); maatCfg.setCompileId(cfg.getCompileId()); @@ -300,7 +338,7 @@ public class CommonPolicyService extends CrudService compileIds = new ArrayList(); + List spoofingPoolCfgIds = new ArrayList(); for(BaseCfg cfg:list){ if(entity.getServiceId().equals(1028)) { compileIds.add(Integer.parseInt(cfg.getUserRegion1())); @@ -345,6 +384,10 @@ public class CommonPolicyService extends CrudService m:cfgList){ String tableName = m.get("tableName").toString(); - commonPolicyDao.auditCfgBatch( tableName, entity,compileIds,null); + if(tableName.equals("pxy_obj_spoofing_ip_pool")) { + commonPolicyDao.auditCfgBatch( tableName, entity,spoofingPoolCfgIds,null); + }else { + commonPolicyDao.auditCfgBatch( tableName, entity,compileIds,null); + } } } @@ -374,6 +421,7 @@ public class CommonPolicyService extends CrudService list, boolean hasData) { // 1.获取所有配置的编译ID List compileIds = new ArrayList(); + List spoofingPoolCfgIds = new ArrayList(); for(BaseCfg cfg:list){ if(entity.getServiceId().equals(1028)) { compileIds.add(Integer.parseInt(cfg.getUserRegion1())); @@ -382,6 +430,11 @@ public class CommonPolicyService extends CrudService m : cfgList){ String tableName = m.get("tableName").toString(); - commonPolicyDao.deleteCfgBatch(tableName, entity, compileIds); + if(tableName.equals("pxy_obj_spoofing_ip_pool")) { + commonPolicyDao.deleteCfgBatch(tableName, entity, spoofingPoolCfgIds); + }else { + commonPolicyDao.deleteCfgBatch(tableName, entity, compileIds); + } } } diff --git a/src/main/java/com/nis/web/service/configuration/ConfigSynchronizationService.java b/src/main/java/com/nis/web/service/configuration/ConfigSynchronizationService.java index d318c84c7..72d9d86ba 100644 --- a/src/main/java/com/nis/web/service/configuration/ConfigSynchronizationService.java +++ b/src/main/java/com/nis/web/service/configuration/ConfigSynchronizationService.java @@ -69,6 +69,7 @@ import com.nis.web.dao.basics.AsnGroupInfoDao; import com.nis.web.dao.configuration.AppCfgDao; import com.nis.web.dao.configuration.CommonPolicyDao; import com.nis.web.dao.configuration.ConfigSynchronizationDao; +import com.nis.web.dao.configuration.PxyObjSpoofingIpPoolDao; import com.nis.web.dao.specific.ConfigGroupInfoDao; import com.nis.web.dao.specific.SpecificServiceCfgDao; import com.nis.web.security.UserUtils; @@ -94,6 +95,9 @@ public class ConfigSynchronizationService extends BaseService{ protected AsnGroupInfoDao asnGroupInfoDao; @Autowired protected AppCfgDao appCfgDao; + @Autowired + protected PxyObjSpoofingIpPoolDao pxyObjSpoofingIpPoolDao; + private boolean lastServiceTag = false;//标识是否是最后一个同步业务 private boolean isFinished = false; /** @@ -293,8 +297,12 @@ public class ConfigSynchronizationService extends BaseService{ configCompileList = new ArrayList(); List compileIds = new ArrayList(); List asnGroupIds = new ArrayList(); + List spoofingPoolCfgIds = new ArrayList(); for(CfgIndexInfo cfg:list){ compileIds.add(cfg.getCompileId()); + if(entity.getServiceId().equals(518)){ // IP_Spoofing + spoofingPoolCfgIds.add(cfg.getUserRegion3()); + } /*if(entity.getServiceId().equals(37)||entity.getServiceId().equals(149)){ asnGroupIds.add(cfg.getUserRegion4()); }*/ @@ -335,12 +343,43 @@ public class ConfigSynchronizationService extends BaseService{ if(!StringUtil.isEmpty(asnGroupIds)) { commonPolicyDao.auditCfgBatch(tableName, entity,asnGroupIds,null); } + }else if(tableName.equals("pxy_obj_spoofing_ip_pool")) { + if(!StringUtil.isEmpty(spoofingPoolCfgIds)) { + commonPolicyDao.auditCfgBatch(tableName, entity,spoofingPoolCfgIds,null); + } }else{ commonPolicyDao.auditCfgBatch( tableName, entity,compileIds,null); } } } } + + if(entity.getServiceId().equals(518)){// IP仿冒策略 + List poolList = new ArrayList(); + String json=""; + for (String cfgId : spoofingPoolCfgIds) { + PxyObjSpoofingIpPool pool = new PxyObjSpoofingIpPool(); + pool = pxyObjSpoofingIpPoolDao.getPxyObjSpoofingIpPool(Long.parseLong(cfgId)); + pool.setAreaEffectiveIds("0"); + pool.setGroupId(pool.getCfgId().intValue());// 界面端的配置ID作为策略分组ID + poolList.add(pool); + } + // 调用服务接口下发配置数据 + json=gsonToJson(poolList); + // logger.info("欺骗IP池配置批量下发配置参数:"+json); + // 调用服务接口下发配置 + try { + ToMaatResult result = ConfigServiceUtil.postCallbackCfg(json); + if(result!=null){ + logger.info("欺骗IP池配置批量下发响应信息:"+result.getMsg()); + } + } catch (Exception e) { + logger.error("欺骗IP池配置批量下发失败",e); + throw e; + } + + } + //批量获取regionId,groupId(相同编译下的IP类配置多条ip只获取一个组号),分组复用的域配置不需要重新获取regionId,groupId List regionIds = ConfigServiceUtil.getId(3, ipList.size()+strList.size()+complexStrList.size()+numList.size()+fileList.size()); List groupIds = ConfigServiceUtil.getId(2, ipList.size()+strList.size()+complexStrList.size()+numList.size()+fileList.size()); @@ -478,7 +517,7 @@ public class ConfigSynchronizationService extends BaseService{ String json=gsonToJson(maatBean); //调用服务接口下发配置数据 if(isUpdateCfg) { -// logger.info("配置批量下发:"+json); + logger.info("配置批量下发:"+json); //调用服务接口同步回调类配置 ToMaatResult result = ConfigServiceUtil.postMaatCfg(json); if(result!=null){ diff --git a/src/main/resources/service/service_config.xml b/src/main/resources/service/service_config.xml index db898858b..117c7d22f 100644 --- a/src/main/resources/service/service_config.xml +++ b/src/main/resources/service/service_config.xml @@ -35,6 +35,7 @@ +