(1)审核修正userregion,定时userregion修正
(2)form表单monit修正,list group为空报错修复 (3)删除组下的域配置相关逻辑修正
This commit is contained in:
@@ -860,6 +860,8 @@ public class ConfigConvertUtil {
|
||||
userRegionMap.put("decrypt_mirror", map);
|
||||
}
|
||||
return gsonToJson(userRegionMap);
|
||||
}else if(serviceId.equals(592)){
|
||||
return "{}";
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -201,12 +201,7 @@ public class SchedulerTaskUtil {
|
||||
if(StringUtils.isNotBlank(cfg.getCommonGroupIds())){//公共分组
|
||||
//处理自定义域
|
||||
StringBuffer userRegion = new StringBuffer();
|
||||
if(cfg.getServiceId().equals(512)){
|
||||
cfg.setAction(2);
|
||||
userRegion.append(ConfigConvertUtil.generateCommonGroupDefaultUserRegion(null,cfg.getServiceId()));
|
||||
}else if(cfg.getServiceId().equals(576)){
|
||||
userRegion.append(ConfigConvertUtil.generateCommonGroupDefaultUserRegion(null,cfg.getServiceId()));
|
||||
}
|
||||
//子配置
|
||||
Map<String,Object> maatTableMap=ConfigConvertUtil.convertCommonGroupMaatTable(cfg,cfgList);
|
||||
//IP公共分组
|
||||
|
||||
@@ -19,14 +19,13 @@ import java.util.concurrent.ExecutionException;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.Future;
|
||||
import java.util.function.Predicate;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import com.nis.web.service.configuration.*;
|
||||
import org.apache.commons.lang3.StringEscapeUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.log4j.Logger;
|
||||
@@ -172,43 +171,6 @@ import com.nis.web.service.basics.IpReuseIpCfgService;
|
||||
import com.nis.web.service.basics.PolicyGroupInfoService;
|
||||
import com.nis.web.service.basics.ServiceDictInfoService;
|
||||
import com.nis.web.service.basics.SysDictInfoService;
|
||||
import com.nis.web.service.configuration.AppBuiltInFeatureService;
|
||||
import com.nis.web.service.configuration.AppCfgService;
|
||||
import com.nis.web.service.configuration.AppMultiFeatureCfgService;
|
||||
import com.nis.web.service.configuration.AsnPolicyCfgService;
|
||||
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;
|
||||
import com.nis.web.service.configuration.DdosCfgService;
|
||||
import com.nis.web.service.configuration.DnsIpCfgService;
|
||||
import com.nis.web.service.configuration.DnsResStrategyService;
|
||||
import com.nis.web.service.configuration.DomainService;
|
||||
import com.nis.web.service.configuration.FileTransferCfgService;
|
||||
import com.nis.web.service.configuration.GroupAreaService;
|
||||
import com.nis.web.service.configuration.HttpRedirectCfgService;
|
||||
import com.nis.web.service.configuration.InterceptCfgService;
|
||||
import com.nis.web.service.configuration.IpAddrPoolCfgService;
|
||||
import com.nis.web.service.configuration.IpCfgService;
|
||||
import com.nis.web.service.configuration.IpMultiplexPoolCfgService;
|
||||
import com.nis.web.service.configuration.MailCfgService;
|
||||
import com.nis.web.service.configuration.ManipulatPolicyService;
|
||||
import com.nis.web.service.configuration.NumCfgService;
|
||||
import com.nis.web.service.configuration.ProxyFileHijackService;
|
||||
import com.nis.web.service.configuration.ProxyFileInsertScriptService;
|
||||
import com.nis.web.service.configuration.ProxyFileResponsePageService;
|
||||
import com.nis.web.service.configuration.ProxyFileStrategyService;
|
||||
import com.nis.web.service.configuration.ProxyFileTrafficMirrorService;
|
||||
import com.nis.web.service.configuration.PxyObjKeyringService;
|
||||
import com.nis.web.service.configuration.PxyObjSpoofingIpPoolService;
|
||||
import com.nis.web.service.configuration.RequestInfoService;
|
||||
import com.nis.web.service.configuration.UserManageService;
|
||||
import com.nis.web.service.configuration.WebsiteCfgService;
|
||||
import com.nis.web.service.configuration.XmppCfgService;
|
||||
import com.nis.web.service.configuration.statistics.ConfigureStatisticsService;
|
||||
import com.nis.web.service.specific.ConfigGroupInfoService;
|
||||
import com.nis.web.service.specific.SpecificServiceCfgService;
|
||||
@@ -365,7 +327,8 @@ public class BaseController {
|
||||
|
||||
@Autowired
|
||||
protected CommonGroupManageService commonGroupManageService;
|
||||
|
||||
@Autowired
|
||||
protected ObjectGroupService objectGroupService;
|
||||
/**
|
||||
* 管理基础路径
|
||||
*/
|
||||
@@ -3971,6 +3934,8 @@ public class BaseController {
|
||||
||baseCfg.getFunctionId().equals(566)//app ssl
|
||||
||baseCfg.getFunctionId().equals(567)) {//dk_gl
|
||||
pageResult=appMultiFeatureCfgService.findAppFeatureIndexList(searchPage,searchAppFeatureIndex);
|
||||
}else if(baseCfg.getFunctionId().equals(888)){
|
||||
pageResult=objectGroupService.getPolicyListList(searchPage,searchCfg);
|
||||
}
|
||||
return pageResult.getList();
|
||||
}
|
||||
|
||||
@@ -2,19 +2,21 @@ package com.nis.web.controller.configuration;
|
||||
|
||||
|
||||
|
||||
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.basics.PolicyGroupInfo;
|
||||
import com.nis.domain.configuration.BaseCfg;
|
||||
import com.nis.domain.configuration.CachePolicyUserRegion;
|
||||
import com.nis.domain.configuration.BaseStringCfg;
|
||||
import com.nis.domain.configuration.CfgIndexInfo;
|
||||
import com.nis.domain.configuration.ObjGroupCfg;
|
||||
import com.nis.domain.configuration.template.ObjGroupListTemplate;
|
||||
import com.nis.exceptions.CallExternalProceduresException;
|
||||
import com.nis.exceptions.MaatConvertException;
|
||||
import com.nis.util.Constants;
|
||||
import com.nis.util.DictUtils;
|
||||
import com.nis.util.LogUtils;
|
||||
import com.nis.util.StringUtil;
|
||||
import com.nis.exceptions.ServiceException;
|
||||
import com.nis.util.*;
|
||||
import com.nis.util.excel.ImportBigExcel;
|
||||
import com.nis.web.controller.BaseController;
|
||||
import com.nis.web.security.UserUtils;
|
||||
import com.nis.web.service.configuration.ObjectGroupService;
|
||||
@@ -26,21 +28,18 @@ import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.Model;
|
||||
import org.springframework.web.bind.annotation.ModelAttribute;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.BlockingQueue;
|
||||
|
||||
@Controller
|
||||
@RequestMapping("${adminPath}/objgroup")
|
||||
public class ObjectGroupController extends BaseController {
|
||||
@Autowired
|
||||
private ObjectGroupService objectGroupService;
|
||||
@RequestMapping(value = { "/list" })
|
||||
public String list(Model model, @ModelAttribute("cfg") CfgIndexInfo cfg, HttpServletRequest request,
|
||||
HttpServletResponse response){
|
||||
@@ -438,4 +437,156 @@ public class ObjectGroupController extends BaseController {
|
||||
LogUtils.saveLog(request, null, e, null);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* 批量审核
|
||||
* @param page
|
||||
* @param auditType
|
||||
* @param entity
|
||||
* @return
|
||||
*/
|
||||
public void auditAll(Page page,Integer auditType,CfgIndexInfo entity)throws Exception {
|
||||
long start=System.currentTimeMillis();
|
||||
page.setOrderBy("");
|
||||
page.setPageSize(Constants.MAAT_JSON_SEND_SIZE);
|
||||
page.setPageNo(1);
|
||||
page.setLastPage(false);
|
||||
//携带审核状态信息的BaseCfg
|
||||
BaseCfg auditBatchCfg=new BaseCfg();
|
||||
//携带审核条件的BaseCfg
|
||||
CfgIndexInfo searchCfg=new CfgIndexInfo();
|
||||
if(entity != null && (entity instanceof CfgIndexInfo)) {
|
||||
BeanUtils.copyProperties(entity, auditBatchCfg);
|
||||
BeanUtils.copyProperties(entity, searchCfg);
|
||||
}
|
||||
auditType = (Integer)Reflections.invokeGetter(entity, "isAudit");
|
||||
|
||||
//全部审核通过,只查询当前条件下的所有未审核的配置 -批量审核通过/不通过
|
||||
if(auditType.equals(1) || auditType.equals(2)) {
|
||||
if(auditType.equals(1)) {
|
||||
auditBatchCfg.setIsAudit(1);
|
||||
auditBatchCfg.setIsValid(1);
|
||||
}else {
|
||||
auditBatchCfg.setIsAudit(2);
|
||||
auditBatchCfg.setIsValid(0);
|
||||
}
|
||||
auditBatchCfg.setAuditTime(new Date());
|
||||
auditBatchCfg.setAuditorId(UserUtils.getUser().getId());
|
||||
}else {
|
||||
|
||||
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.getServiceListByFunctionId(functionId);
|
||||
for(Map<String,Object> service:serviceList){
|
||||
String tableNameXml = service.get("tableName").toString(); // 获取业务主配置表
|
||||
String serviceTypeXml = service.get("serviceType").toString(); // 业务类型 1maat 2callback
|
||||
String classNameXml = service.get("className").toString(); // 主配置Java类
|
||||
String serviceIdXml = service.get("id").toString(); // service字典表 service_id字段
|
||||
String serviceIds=service.get("serviceIds").toString();
|
||||
auditBatchCfg.setServiceId(Integer.valueOf(serviceIdXml));
|
||||
auditBatchCfg.setTableName(tableNameXml);
|
||||
//searchCfg.setServiceId(Integer.valueOf(serviceIdXml));
|
||||
searchCfg.setTableName(tableNameXml);
|
||||
|
||||
if("1".equals(serviceTypeXml)){//maat类配置
|
||||
if(StringUtils.isNotBlank(serviceIds)) {//公共分组
|
||||
// 存放域配置类型 及 对应表名
|
||||
Map<Integer,List<Map<String,Object>>> childrenCfgMap=new HashMap<>();
|
||||
Map<Integer,List<Map<String,Object>>> childrenUserRegionMap=new HashMap<>();
|
||||
for(String _serviceId:serviceIds.split(",")){
|
||||
if(StringUtils.isNotBlank(_serviceId)){
|
||||
Map<String,Object> subService=serviceTemplate.getServiceListByServiceId(Integer.parseInt(_serviceId)).get(0);
|
||||
childrenCfgMap.put(Integer.parseInt(_serviceId),(List<Map<String,Object>>)subService.get("cfgList"));
|
||||
}
|
||||
}
|
||||
if(childrenCfgMap.size()>0){
|
||||
for(Map.Entry e:childrenCfgMap.entrySet()){
|
||||
boolean hasData = true;
|
||||
while(hasData){
|
||||
page.setPageNo(1);
|
||||
page.setLastPage(false);
|
||||
searchCfg.setServiceId(Integer.parseInt(e.getKey().toString()));
|
||||
auditBatchCfg.setServiceId(Integer.parseInt(e.getKey().toString()));
|
||||
List<CfgIndexInfo> list = getDataList(page,searchCfg,null,null,null); // 通过ServiceId获取cfg_index_info主配置表数据
|
||||
if(!StringUtil.isEmpty(list)){
|
||||
//配置生效处理 复用全量下发
|
||||
if(auditBatchCfg.getIsAudit().equals(1)) {
|
||||
hasData = configSynchronizationService.auditObjGroupListMaatData(childrenCfgMap,childrenUserRegionMap,page,auditBatchCfg,list,hasData,true);
|
||||
}else {
|
||||
List<BaseCfg> BaseCfgList=new ArrayList<>();
|
||||
if(!StringUtil.isEmpty(list)) {
|
||||
for (CfgIndexInfo cfg : list) {
|
||||
BaseCfg baseCfg=new BaseCfg();
|
||||
BeanUtils.copyProperties(cfg, baseCfg);
|
||||
BaseCfgList.add(baseCfg);
|
||||
}
|
||||
}
|
||||
if(auditBatchCfg.getIsAudit().equals(2)) {// 配置批量审核不通过
|
||||
hasData = commonPolicyService.batchUnApproveObjGroupListatData(page, auditBatchCfg, BaseCfgList, hasData);
|
||||
}else {// 配置失效处理 批量处理
|
||||
hasData = commonPolicyService.auditObjGroupListMaatData(tableNameXml, page, auditBatchCfg, BaseCfgList, hasData);
|
||||
}
|
||||
}
|
||||
}else{
|
||||
hasData = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//批量审核通过时,如果没有携带isValid检索条件,返回界面需要将isValid置为null
|
||||
if(!StringUtil.isEmpty(entity)) {
|
||||
BaseCfg base=(BaseCfg)entity ;
|
||||
base.setBatchAuditValue("");
|
||||
base.setBatchValidValue("");
|
||||
//配置目标状态:1 1 生效,isAudit条件置为1,有selType条件,且不是isValid不改,没有sel改为isValid并且为1
|
||||
if(base.getIsAudit()==1 && base.getIsValid()==1){
|
||||
base.setIsAudit(1);
|
||||
if(!StringUtil.isEmpty(base.getSeltype()) && !base.getSeltype().equals("isValid")) {
|
||||
base.setIsValid(null);
|
||||
}else{
|
||||
base.setIsValid(1);
|
||||
base.setSeltype("isValid");
|
||||
}
|
||||
}
|
||||
//配置目标状态:2 0 不通过,isAudit条件置为2,有selType条件,且不是isValid不改,没有sel改为isValid并且为0
|
||||
if(base.getIsAudit()==2 && base.getIsValid()==0){
|
||||
base.setIsAudit(2);
|
||||
if(!StringUtil.isEmpty(base.getSeltype()) && !base.getSeltype().equals("isValid")) {
|
||||
base.setIsValid(null);
|
||||
}else{
|
||||
base.setIsValid(0);
|
||||
base.setSeltype("isValid");
|
||||
}
|
||||
}
|
||||
//配置目标状态:3 0 取消
|
||||
if(base.getIsAudit()==3 && base.getIsValid()==0){
|
||||
base.setIsAudit(3);
|
||||
if(!StringUtil.isEmpty(base.getSeltype()) && !base.getSeltype().equals("isValid")) {
|
||||
base.setIsValid(null);
|
||||
}else{
|
||||
base.setIsValid(0);
|
||||
base.setSeltype("isValid");
|
||||
}
|
||||
}
|
||||
|
||||
BeanUtils.copyProperties(base, entity);
|
||||
}
|
||||
|
||||
long end=System.currentTimeMillis();
|
||||
logger.warn("配置批量生效/失效耗时:"+(end-start));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1110,16 +1110,29 @@
|
||||
SELECT
|
||||
<include refid="ConfigIndex_Column" />
|
||||
FROM cfg_index_info a
|
||||
where a.common_group_ids like concat('%,',#{groupIds,jdbcType=VARCHAR},',%')
|
||||
<trim prefix="WHERE" prefixOverrides="AND">
|
||||
<if test="groupIds!=null">
|
||||
AND (
|
||||
<foreach collection="groupIds.split(',')" index="index" item="item" >
|
||||
<if test="index==0">
|
||||
a.common_group_ids like concat('%,',#{item,jdbcType=INTEGER},',%')
|
||||
</if>
|
||||
<if test="index!=0">
|
||||
OR a.common_group_ids like concat('%,',#{item,jdbcType=INTEGER},',%')
|
||||
</if>
|
||||
</foreach>
|
||||
)
|
||||
</if>
|
||||
<if test="functionId!=null" >
|
||||
and function_id=#{functionId,jdbcType=INTEGER}
|
||||
AND function_id=#{functionId,jdbcType=INTEGER}
|
||||
</if>
|
||||
<if test="isValid!=null" >
|
||||
and is_valid=#{isValid,jdbcType=INTEGER}
|
||||
AND is_valid=#{isValid,jdbcType=INTEGER}
|
||||
</if>
|
||||
<if test="isValid==null" >
|
||||
and is_valid !=-1
|
||||
AND is_valid !=-1
|
||||
</if>
|
||||
</trim>
|
||||
</select>
|
||||
<select id="getObjGroupList" resultMap="ObjMap" parameterType="com.nis.domain.configuration.ObjGroupCfg" >
|
||||
SELECT
|
||||
|
||||
@@ -3332,37 +3332,35 @@ public abstract class BaseService {
|
||||
//遍历,获取需要下发配置的组
|
||||
StringBuffer realGroupIds=new StringBuffer();
|
||||
for(PolicyGroupInfo policyGroupInfo:policyGroupInfos){
|
||||
//删除的时候
|
||||
if(policyGroupInfo.getUdFlag().equals(2)){
|
||||
|
||||
//if(policyGroupInfo.getUdFlag().equals(2)){
|
||||
realGroupIds.append(policyGroupInfo.getServiceGroupId()).append(",");
|
||||
//}
|
||||
//所有域都删除的时候
|
||||
if(policyGroupInfo.getUdFlag().equals(0)){
|
||||
if(policyGroupInfo.getGroupType().equals(Constants.IP_OBJ_GROUP_TYPE)){
|
||||
if(policyGroupInfo.getIsValid().equals(0)){
|
||||
ipDeletedGroups.add(policyGroupInfo.getServiceGroupId().toString());
|
||||
}
|
||||
}
|
||||
if(policyGroupInfo.getGroupType().equals(Constants.URL_OBJ_GROUP_TYPE)){
|
||||
if(policyGroupInfo.getIsValid().equals(0)){
|
||||
urlDeletedGroups.add(policyGroupInfo.getServiceGroupId().toString());
|
||||
}
|
||||
}
|
||||
if(policyGroupInfo.getGroupType().equals(Constants.SUBID_OBJ_GROUP_TYPE)){
|
||||
if(policyGroupInfo.getIsValid().equals(0)){
|
||||
subIdDeletedGroups.add(policyGroupInfo.getServiceGroupId().toString());
|
||||
}
|
||||
}
|
||||
if(policyGroupInfo.getGroupType().equals(Constants.DOMAIN_OBJ_GROUP_TYPE)){
|
||||
if(policyGroupInfo.getIsValid().equals(0)){
|
||||
domainDeletedGroups.add(policyGroupInfo.getServiceGroupId().toString());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
if(realGroupIds.toString().endsWith(",")){
|
||||
realGroupIds.deleteCharAt(realGroupIds.toString().length()-1);
|
||||
}
|
||||
List<CfgIndexInfo> toUpdateCfgIndexInfos=new ArrayList<>();
|
||||
List<CfgIndexInfo> toCancelCfgIndexInfos=new ArrayList<>();
|
||||
//没有
|
||||
if(StringUtils.isBlank(realGroupIds.toString())){
|
||||
return true;
|
||||
}
|
||||
//查询cfg_index_info表,获取所有用到了这个group_id的非删除配置
|
||||
List<CfgIndexInfo> cfgIndexInfos=commonPolicyDao.getObjGroupListByGroupIds(realGroupIds.toString(),null,null);
|
||||
|
||||
@@ -3404,10 +3402,14 @@ public abstract class BaseService {
|
||||
if(CollectionUtils.isEmpty(cfgIndexInfo.getIpCommGroupCfgList())&&
|
||||
CollectionUtils.isEmpty(cfgIndexInfo.getUrlCommGroupList())&&CollectionUtils.isEmpty(cfgIndexInfo.getScriberIdCommGroupList())&&
|
||||
CollectionUtils.isEmpty(cfgIndexInfo.getDomainCommGroupList())){
|
||||
cfgIndexInfo.setCommonGroupIds("");
|
||||
if(cfgIndexInfo.getIsValid()==Constants.VALID_NO){//未生效
|
||||
toUpdateCfgIndexInfos.add(cfgIndexInfo);
|
||||
}else{//生效
|
||||
cfgIndexInfo.setIsValid(Constants.VALID_NO);
|
||||
cfgIndexInfo.setIsAudit(Constants.AUDIT_NOT_YES);
|
||||
cfgIndexInfo.setCommonGroupIds("");
|
||||
toCancelCfgIndexInfos.add(cfgIndexInfo);
|
||||
}
|
||||
}else if(!oldCommonGroupIds.equals(cfgIndexInfo.getCommonGroupIds())){
|
||||
toUpdateCfgIndexInfos.add(cfgIndexInfo);
|
||||
//commonPolicyDao.updateCfgIndexCommonGroupIds(cfgIndexInfo);
|
||||
@@ -3454,14 +3456,8 @@ public abstract class BaseService {
|
||||
if(service.containsKey("userRegionList")){
|
||||
//Map<String,Object> userregionMap=new HashMap<>();
|
||||
//userRegionList=(List<Map<String, Object>>) service.get("userRegionList");
|
||||
if(serviceId.equals(576)){
|
||||
String _userregion=ConfigConvertUtil.generateCommonGroupDefaultUserRegion(interceptUserRegionMap,serviceId);
|
||||
userRegion.append(_userregion);
|
||||
}else if(serviceId.equals(512)){
|
||||
cfgIndexInfo.setAction(2);
|
||||
String _userregion=ConfigConvertUtil.generateCommonGroupDefaultUserRegion(interceptUserRegionMap,serviceId);
|
||||
userRegion.append(_userregion);
|
||||
}
|
||||
}
|
||||
}
|
||||
compileIds.add(cfgIndexInfo.getCompileId());
|
||||
@@ -3539,7 +3535,7 @@ public abstract class BaseService {
|
||||
maatBean.setVersion(Constants.MAAT_VERSION);
|
||||
maatBean.setOpAction(Constants.UPDATE_ACTION);
|
||||
}
|
||||
}else if(cfgIndexInfo.getIsValid().equals(Constants.VALID_NO)){//生效的配置置为了失效
|
||||
}else if(cfgIndexInfo.getIsValid().equals(Constants.VALID_NO)&&cfgIndexInfo.getIsAudit().equals(Constants.AUDIT_NOT_YES)){//生效的配置 置为了失效
|
||||
maatCfg.setCompileId(cfgIndexInfo.getCompileId());
|
||||
maatCfg.setServiceId(cfgIndexInfo.getServiceId());
|
||||
maatCfg.setIsValid(0);//无效
|
||||
|
||||
@@ -203,6 +203,87 @@ public class CommonPolicyService extends CrudService<WebsiteCfgDao, CfgIndexInfo
|
||||
}
|
||||
return hasData;
|
||||
}
|
||||
/**
|
||||
* ObjGroupList配置批量失效
|
||||
* @param tableName
|
||||
* @param page
|
||||
* @param entity
|
||||
* @param list
|
||||
* @param hasData
|
||||
* @return
|
||||
* @throws NoSuchFieldException
|
||||
* @throws SecurityException
|
||||
* @throws IllegalArgumentException
|
||||
* @throws IllegalAccessException
|
||||
*/
|
||||
public boolean auditObjGroupListMaatData(String tableName,Page page,
|
||||
BaseCfg entity,
|
||||
List<BaseCfg> list,
|
||||
boolean hasData)throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException{
|
||||
long start=System.currentTimeMillis();
|
||||
long end=System.currentTimeMillis();
|
||||
ToMaatBean maatBean;
|
||||
MaatCfg maatCfg;
|
||||
List<MaatCfg> configCompileList;
|
||||
|
||||
maatBean = new ToMaatBean();
|
||||
configCompileList = new ArrayList();
|
||||
List<Integer> compileIds = new ArrayList();
|
||||
List<String> spoofingPoolCfgIds = new ArrayList();
|
||||
for(BaseCfg cfg:list){
|
||||
compileIds.add(cfg.getCompileId());
|
||||
}
|
||||
|
||||
if(!StringUtil.isEmpty(compileIds) && !StringUtil.isEmpty(entity.getTableName())) {
|
||||
List auditHttpCompileIds= new ArrayList();
|
||||
List deleteHttpCompileIds= new ArrayList();
|
||||
if(!StringUtil.isEmpty(auditHttpCompileIds)) {
|
||||
commonPolicyDao.auditCfgBatch("cfg_index_info", entity,auditHttpCompileIds,null);
|
||||
commonPolicyDao.auditCfgBatch("http_url_cfg", entity,auditHttpCompileIds,null);
|
||||
}
|
||||
if(!StringUtil.isEmpty(deleteHttpCompileIds)) {
|
||||
commonPolicyDao.deleteHttpUrlCfg("cfg_index_info", entity,deleteHttpCompileIds);
|
||||
commonPolicyDao.deleteHttpUrlCfg("http_url_cfg", entity,deleteHttpCompileIds);
|
||||
}
|
||||
commonPolicyDao.auditCfgBatch( entity.getTableName(), entity,compileIds,null);
|
||||
//更新各配置定时任务信息
|
||||
handelScheduleCfg(list, entity.getTableName(),entity);
|
||||
}
|
||||
commonPolicyDao.auditCfgBatch( tableName, entity,compileIds,null);
|
||||
|
||||
for(BaseCfg cfg:list){
|
||||
maatCfg = new MaatCfg();
|
||||
maatCfg.setCompileId(cfg.getCompileId());
|
||||
maatCfg.setServiceId(cfg.getServiceId());
|
||||
maatCfg.setIsValid(0);//无效
|
||||
configCompileList.add(maatCfg);
|
||||
}
|
||||
page.setList(list);
|
||||
if(page.isLastPage()){
|
||||
hasData = false;
|
||||
}
|
||||
if(!StringUtil.isEmpty(configCompileList.size())){
|
||||
maatBean.setConfigCompileList(configCompileList);
|
||||
maatBean.setAuditTime(entity.getAuditTime());
|
||||
maatBean.setCreatorName(entity.getCurrentUser().getName());
|
||||
maatBean.setVersion(Constants.MAAT_VERSION);
|
||||
maatBean.setOpAction(Constants.UPDATE_ACTION);
|
||||
//调用服务接口取消配置
|
||||
String json=gsonToJson(maatBean);
|
||||
if(!StringUtil.isEmpty(list)) {
|
||||
logger.warn("批量配置取消("+page.getPageNo()+"次)个数:"+list.size());
|
||||
}
|
||||
//调用服务接口下发配置
|
||||
logger.warn("Maat配置批量失效-下发:start()");
|
||||
//logger.warn("Maat配置批量失效-下发:start()"+json);
|
||||
start=System.currentTimeMillis();
|
||||
ToMaatResult result = ConfigServiceUtil.put(json,1);
|
||||
end=System.currentTimeMillis();
|
||||
logger.warn("配置取消配置响应信息:"+result.getMsg());
|
||||
logger.warn("Maat配置批量失效-下发:end("+(end-start)+")");
|
||||
}
|
||||
return hasData;
|
||||
}
|
||||
public List<IpPortCfg> getIpDropList(String tabName,List compileIds){
|
||||
return synchronizationDao.getIpDropList(tabName, compileIds);
|
||||
}
|
||||
@@ -590,6 +671,40 @@ public class CommonPolicyService extends CrudService<WebsiteCfgDao, CfgIndexInfo
|
||||
}
|
||||
}
|
||||
|
||||
// 4.判断是否是当前检索条件下最后一页数据 并返回结果
|
||||
page.setList(list);
|
||||
if(page.isLastPage()){
|
||||
hasData = false;
|
||||
}
|
||||
return hasData;
|
||||
|
||||
}
|
||||
/**
|
||||
* ObjGroupList配置批量审核不通过
|
||||
* @param page
|
||||
* @param entity // 保存要审核的状态类
|
||||
* @param list // 主配置表数据(在调用前查出)
|
||||
* @param hasData // 标识是否还有数据
|
||||
* @return
|
||||
*/
|
||||
public boolean batchUnApproveObjGroupListatData(Page page, BaseCfg entity,
|
||||
List<BaseCfg> list, boolean hasData) {
|
||||
|
||||
// 1.获取所有配置的编译ID
|
||||
List<Integer> compileIds = new ArrayList();
|
||||
List<String> spoofingPoolCfgIds = new ArrayList();
|
||||
for(BaseCfg cfg:list){
|
||||
compileIds.add(cfg.getCompileId());
|
||||
}
|
||||
|
||||
// 2.更新配置审核状态(主表)
|
||||
if(!StringUtil.isEmpty(compileIds) && !StringUtil.isEmpty(entity.getTableName())) {
|
||||
commonPolicyDao.auditCfgBatch( entity.getTableName(), entity,compileIds,null); // 批量审核并修改配置审核状态(主表)
|
||||
//更新各配置定时任务信息
|
||||
handelScheduleCfg(list, entity.getTableName(),entity);
|
||||
}
|
||||
|
||||
|
||||
// 4.判断是否是当前检索条件下最后一页数据 并返回结果
|
||||
page.setList(list);
|
||||
if(page.isLastPage()){
|
||||
|
||||
@@ -178,15 +178,21 @@ public class ConfigSynchronizationService extends BaseService{
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理ntc业务maat类配置
|
||||
* @param serviceId
|
||||
* @param cfgList
|
||||
* @param userRegionList
|
||||
* @param page
|
||||
* @param entity
|
||||
* @param request
|
||||
* @param response
|
||||
* @throws SecurityException
|
||||
* @param isUpdateCfg
|
||||
* @param tableName
|
||||
* @throws NoSuchFieldException
|
||||
* @throws IllegalAccessException
|
||||
* @throws SecurityException
|
||||
* @throws IllegalArgumentException
|
||||
* @throws IllegalAccessException
|
||||
*/
|
||||
public void handleNtcMaatData(List<Map<String,Object>>cfgList,List<Map<String,Object>>userRegionList,
|
||||
Page<T> page,BaseCfg entity,HttpServletRequest request,HttpServletResponse response,
|
||||
@@ -2280,8 +2286,6 @@ public class ConfigSynchronizationService extends BaseService{
|
||||
}
|
||||
ind++;
|
||||
}
|
||||
|
||||
|
||||
}else{
|
||||
logger.info("全量同步未知业务");
|
||||
hasData = false;
|
||||
@@ -2379,7 +2383,7 @@ public class ConfigSynchronizationService extends BaseService{
|
||||
cfg.setDomainCommGroupList(commIds);
|
||||
}
|
||||
}
|
||||
|
||||
compileIds.add(cfg.getCompileId());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -2414,7 +2418,7 @@ public class ConfigSynchronizationService extends BaseService{
|
||||
}
|
||||
|
||||
//Intercept Policy、http(s) 监测 、http(s) 白名单
|
||||
if("HTTPS".equalsIgnoreCase(entity.getUserRegion1())||"INTERCEPT".equalsIgnoreCase(entity.getUserRegion1())&&userRegion.toString().length()==0) {
|
||||
if("HTTPS".equalsIgnoreCase(cfg.getUserRegion1())||"INTERCEPT".equalsIgnoreCase(cfg.getUserRegion1())&&userRegion.toString().length()==0) {
|
||||
userRegion.append("{}");
|
||||
}
|
||||
//子配置
|
||||
@@ -2426,6 +2430,7 @@ public class ConfigSynchronizationService extends BaseService{
|
||||
if(CollectionUtils.isNotEmpty(cfg.getIpCommGroupCfgList())){
|
||||
IpPortCfg _cfg = new IpPortCfg();
|
||||
BeanUtils.copyProperties(cfg, _cfg, new String[]{"cfgId"});
|
||||
_cfg.setIsValid(entity.getIsValid());
|
||||
Map<String,List> map = ConfigConvertUtil.objGroupCfgConvert(ipRegionList,cfg.getIpCommGroupCfgList(),1,_cfg,groupRelationList,maatTableMap,groupIdSet);
|
||||
groupRelationList=map.get("groupList");
|
||||
ipRegionList=map.get("dstList");
|
||||
@@ -2438,6 +2443,7 @@ public class ConfigSynchronizationService extends BaseService{
|
||||
if(CollectionUtils.isNotEmpty(cfg.getUrlCommGroupList())){
|
||||
CommonStringCfg _cfg = new CommonStringCfg();
|
||||
BeanUtils.copyProperties(cfg, _cfg, new String[]{"cfgId"});
|
||||
_cfg.setIsValid(entity.getIsValid());
|
||||
Map<String,List> map =ConfigConvertUtil.objGroupCfgConvert(strRegionList,cfg.getUrlCommGroupList(),2,_cfg,groupRelationList,maatTableMap,groupIdSet);
|
||||
groupRelationList=map.get("groupList");
|
||||
strRegionList=map.get("dstList");
|
||||
@@ -2446,7 +2452,7 @@ public class ConfigSynchronizationService extends BaseService{
|
||||
if(CollectionUtils.isNotEmpty(cfg.getScriberIdCommGroupList())){
|
||||
CommonStringCfg _cfg = new CommonStringCfg();
|
||||
BeanUtils.copyProperties(cfg, _cfg, new String[]{"cfgId"});
|
||||
|
||||
_cfg.setIsValid(entity.getIsValid());
|
||||
Map<String,List> map =ConfigConvertUtil.objGroupCfgConvert(strRegionList,cfg.getScriberIdCommGroupList(),2,_cfg,groupRelationList,maatTableMap,groupIdSet);
|
||||
groupRelationList=map.get("groupList");
|
||||
strRegionList=map.get("dstList");
|
||||
@@ -2456,7 +2462,7 @@ public class ConfigSynchronizationService extends BaseService{
|
||||
if(CollectionUtils.isNotEmpty(cfg.getDomainCommGroupList())){
|
||||
CommonStringCfg _cfg = new CommonStringCfg();
|
||||
BeanUtils.copyProperties(cfg, _cfg, new String[]{"cfgId",});
|
||||
|
||||
_cfg.setIsValid(entity.getIsValid());
|
||||
Map<String,List> map =ConfigConvertUtil.objGroupCfgConvert(strRegionList,cfg.getDomainCommGroupList(),2,_cfg,groupRelationList,maatTableMap,groupIdSet);
|
||||
groupRelationList=map.get("groupList");
|
||||
strRegionList=map.get("dstList");
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.nis.web.service.configuration;
|
||||
|
||||
import com.nis.domain.FunctionRegionDict;
|
||||
import com.nis.domain.FunctionServiceDict;
|
||||
import com.nis.domain.Page;
|
||||
import com.nis.domain.basics.*;
|
||||
@@ -9,9 +10,7 @@ import com.nis.domain.maat.ToMaatBean;
|
||||
import com.nis.domain.maat.ToMaatResult;
|
||||
import com.nis.exceptions.MaatConvertException;
|
||||
import com.nis.util.*;
|
||||
import com.nis.web.dao.basics.IpCommGroupCfgDao;
|
||||
import com.nis.web.dao.basics.PolicyGroupInfoDao;
|
||||
import com.nis.web.dao.basics.UrlCommGroupDao;
|
||||
import com.nis.web.dao.basics.*;
|
||||
import com.nis.web.dao.configuration.AreaIpCfgDao;
|
||||
import com.nis.web.dao.configuration.CommonPolicyDao;
|
||||
import com.nis.web.dao.configuration.ObjectGroupDao;
|
||||
@@ -43,6 +42,10 @@ public class ObjectGroupService extends BaseService {
|
||||
private IpCommGroupCfgDao ipCommGroupCfgDao;
|
||||
@Autowired
|
||||
private UrlCommGroupDao urlCommGroupCfgDao;
|
||||
@Autowired
|
||||
private ScriberIdCommGroupDao scriberIdCommGroupDao;
|
||||
@Autowired
|
||||
private DomainCommGroupDao domainCommGroupDao;
|
||||
public Page getPolicyListList(Page searchPage, CfgIndexInfo searchCfg) {
|
||||
// 生成数据权限过滤条件(dsf为dataScopeFilter的简写,在xml中使用 ${sqlMap.dsf}调用权限SQL)
|
||||
searchCfg.getSqlMap().put("dsf", configScopeFilter(searchCfg.getCurrentUser(),"a"));
|
||||
@@ -474,7 +477,10 @@ public class ObjectGroupService extends BaseService {
|
||||
}
|
||||
//删除之后恢复组的ud_flag
|
||||
int size = ipCommGroupCfgDao.getCfgInfoByGroupIds(serviceGroupIds.toString());
|
||||
if(size==0){
|
||||
int size1 = urlCommGroupCfgDao.getCfgInfoByGroupIds(serviceGroupIds.toString());
|
||||
int size2 = scriberIdCommGroupDao.getCfgInfoByGroupIds(serviceGroupIds.toString());
|
||||
int size3 = domainCommGroupDao.getCfgInfoByGroupIds(serviceGroupIds.toString());
|
||||
if((size+size1+size2+size3)==0){
|
||||
policyGroupInfoDao.updateUdFlag(serviceGroupIds.toString(),0,null);
|
||||
}else{
|
||||
policyGroupInfoDao.updateUdFlag(serviceGroupIds.toString(),1,null);
|
||||
@@ -653,4 +659,7 @@ public class ObjectGroupService extends BaseService {
|
||||
page.setList(list);
|
||||
return page;
|
||||
}
|
||||
|
||||
public void saveAndSend(FunctionRegionDict regionDict, FunctionServiceDict serviceDict, List<BaseStringCfg<?>> stringCfgs) {
|
||||
}
|
||||
}
|
||||
@@ -240,6 +240,9 @@ var delContent = function(contentClassName, addBtnClassName) {
|
||||
<c:when test="${service.action eq 16}">
|
||||
<spring:message code="block"/>
|
||||
</c:when>
|
||||
<c:when test="${service.action eq 1}">
|
||||
<spring:message code="monitor"/>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<spring:message code="${service.actionCode }"/>
|
||||
</c:otherwise>
|
||||
@@ -317,7 +320,7 @@ var delContent = function(contentClassName, addBtnClassName) {
|
||||
<div class="row">
|
||||
<div class="col-md-6 ipGroup">
|
||||
<div class="form-group ">
|
||||
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="ip_group"/></label>
|
||||
<label class="control-label col-md-3"><spring:message code="ip_group"/></label>
|
||||
<div class="col-md-6">
|
||||
<select name="ipGroup" data-live-search="true" class="selectpicker form-control form-control" multiple data-live-search="true">
|
||||
<c:forEach items="${ipGroups}" var="ipGroup">
|
||||
@@ -330,7 +333,7 @@ var delContent = function(contentClassName, addBtnClassName) {
|
||||
</div>
|
||||
<div class="col-md-6 subscribeIdGroup">
|
||||
<div class="form-group ">
|
||||
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="subscribe_id_group"/></label>
|
||||
<label class="control-label col-md-3"><spring:message code="subscribe_id_group"/></label>
|
||||
<div class="col-md-6">
|
||||
<select name="subscribeIdGroup" data-live-search="true" class="selectpicker form-control form-control " multiple data-live-search="true">
|
||||
<c:forEach items="${subscribeIdGroups}" var="subscribeIdGroup">
|
||||
@@ -346,7 +349,7 @@ var delContent = function(contentClassName, addBtnClassName) {
|
||||
<div class="row">
|
||||
<div class="col-md-6 urlGroup">
|
||||
<div class="form-group ">
|
||||
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="url_group"/></label>
|
||||
<label class="control-label col-md-3"><spring:message code="url_group"/></label>
|
||||
<div class="col-md-6">
|
||||
<select name="urlGroup" data-live-search="true" class="selectpicker form-control form-control " multiple data-live-search="true" >
|
||||
<c:forEach items="${urlGroups}" var="urlGroup">
|
||||
@@ -359,7 +362,7 @@ var delContent = function(contentClassName, addBtnClassName) {
|
||||
</div>
|
||||
<div class="col-md-6 domainGroup">
|
||||
<div class="form-group ">
|
||||
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="domain_group"/></label>
|
||||
<label class="control-label col-md-3"><spring:message code="domain_group"/></label>
|
||||
<div class="col-md-6">
|
||||
<select name="domainGroup" data-live-search="true" class="selectpicker form-control " multiple data-live-search="true">
|
||||
<c:forEach items="${domainGroups}" var="domainGroup">
|
||||
|
||||
@@ -55,6 +55,7 @@
|
||||
if($("td[commonGroupIds]")){
|
||||
var groups=[];
|
||||
$("td[commonGroupIds]").each(function(){
|
||||
if($(this).attr("commonGroupIds")!=""){
|
||||
var json=JSON.parse($(this).attr("commonGroupIds"));
|
||||
if(json.ipGroup){
|
||||
groups.push(json.ipGroup.substring(1,json.ipGroup.length-1));
|
||||
@@ -68,6 +69,7 @@
|
||||
if(json.domainGroup){
|
||||
groups.push(json.domainGroup.substring(1,json.domainGroup.length-1));
|
||||
}
|
||||
}
|
||||
});
|
||||
if(groups.length>0){
|
||||
$.post("${ctx}/objgroup/ajaxGetNames",{"groupIds":groups.join('\|')},function(data){
|
||||
|
||||
Reference in New Issue
Block a user