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 @@
+