批量配置失效、全量下发、各业务全量下发功能提交

This commit is contained in:
段冬梅
2019-03-15 16:15:11 +08:00
parent e977d00657
commit 9a9b050fc7
14 changed files with 604 additions and 307 deletions

View File

@@ -196,7 +196,7 @@ public class ConfigConvertUtil {
BeanUtils.copyProperties(baseIpCfg, cfg);
cfg.setGroupId(asnIpCfg.getAsnIpGroup());
cfg.setRegionId(asnIpCfg.getRegionId());
String userRegion = "ASN_ID=" + asnIpCfg.getUserRegion1();
String userRegion = "ASN_ID=AS" + asnIpCfg.getUserRegion1();
cfg.setUserRegion(userRegion);
cfg.setIsValid(isValid);
cfg.setAuditTime(opTime);

View File

@@ -800,10 +800,11 @@ public class ConfigServiceUtil {
}
} catch (Exception e) {
throw new MaatConvertException("<spring:message code=\"request_service_failed\"/>");
}
}
bean = JSONObject.fromObject(result);
if(response != null && response.getStatus() == 200){
logger.info("get result success");
bean = JSONObject.fromObject(result);
}else{
throw new MaatConvertException("<spring:message code=\"request_service_failed\"/>:"+result);
}
@@ -830,7 +831,7 @@ public class ConfigServiceUtil {
String result = null;
String url = DictUtils.getDictLabel("config_sync_url", "get_sync_status");
//创建连接
WebTarget wt = ClientUtil.getWebTarger(url);
/*WebTarget wt = ClientUtil.getWebTarger(url);
logger.info("get_sync_status url:"+url);
//获取响应结果
Builder header = wt.request(MediaType.APPLICATION_JSON)
@@ -843,12 +844,13 @@ public class ConfigServiceUtil {
} catch (Exception e) {
throw new MaatConvertException("<spring:message code=\"request_service_failed\"/>");
}
if(response != null && response.getStatus() == 200){
if(response != null && response.getStatus() == 200){*/
logger.info("get result success");
result="{\"status\": 201,\"businessCode\": 2001000,\"reason\":\"数据获取操作成功\",\"msg\": \"根据配置id获取对应的编译,组,域等信息成功\",\"fromuri\": \"/galaxy-service/service/cfg/v1/getAllKVByCompileId\",\"traceCode\": \"2019031211285044813363\",\"data\": [{\"service\":\"ntc\",\"status\":0,\"opTime\":\"2016-11-22 08:31:27\"}]}";
bean= JSONObject.fromObject(result);
}else{
/*}else{
throw new MaatConvertException("<spring:message code=\"request_service_failed\"/>:"+result);
}
}*/
} catch (Exception e) {
throw e;
}finally {

View File

@@ -2955,6 +2955,8 @@ public class BaseController {
/************************多域maat cfg_index_info 处理****************************************/
boolean hasData = true;
while(hasData){
page.setPageNo(1);
page.setLastPage(false);
List<CfgIndexInfo> list=getDataList(page,searchCfg,null,null,null);
if(!StringUtil.isEmpty(list)){
//配置生效处理 复用全量下发
@@ -2971,9 +2973,6 @@ public class BaseController {
}
hasData=commonPolicyService.auditNtcMaatData(cfgList, page, auditBatchCfg, cfgIndexList, hasData);
}
if(hasData) {
page.setPageNo(page.getNext());
}
}else{
hasData = false;
}
@@ -2982,6 +2981,9 @@ public class BaseController {
/************************多域 maat 摘要处理****************************************/
boolean hasData = true;
while(hasData){
page.setPageNo(1);
page.setLastPage(false);
List<FileDigestCfg> list=getDataList(page,null,null,searchDigestCfg,null);
if(!StringUtil.isEmpty(list)){
//配置生效处理 复用全量下发
@@ -2998,9 +3000,6 @@ public class BaseController {
}
hasData=commonPolicyService.auditNtcMaatData(cfgList, page, auditBatchCfg,baseCfgList, hasData);
}
if(hasData) {
page.setPageNo(page.getNext());
}
}else{
hasData = false;
}
@@ -3009,6 +3008,8 @@ public class BaseController {
/************************多域 maat app策略处理****************************************/
boolean hasData = true;
while(hasData){
page.setPageNo(1);
page.setLastPage(false);
List<AppPolicyCfg> list=getDataList(page,null,searchAppCfg,null,null);
if(!StringUtil.isEmpty(list)){
//配置生效处理 复用全量下发
@@ -3025,9 +3026,6 @@ public class BaseController {
}
hasData=commonPolicyService.auditNtcMaatData(cfgList, page, auditBatchCfg,cfgAppList, hasData);
}
if(hasData) {
page.setPageNo(page.getNext());
}
}else{
hasData = false;
}
@@ -3036,6 +3034,9 @@ public class BaseController {
/************************多域 maat app特征处理****************************************/
boolean hasData = true;
while(hasData){
page.setPageNo(1);
page.setLastPage(false);
List<AppFeatureIndex> list=getDataList(page,null,null,null,searchAppFeatureIndex);
if(!StringUtil.isEmpty(list)){
//配置生效处理 复用全量下发
@@ -3052,9 +3053,6 @@ public class BaseController {
}
hasData=commonPolicyService.auditNtcMaatData(cfgList, page, auditBatchCfg,cfgFeatrureList, hasData);
}
if(hasData) {
page.setPageNo(page.getNext());
}
}else{
hasData = false;
}
@@ -3068,6 +3066,9 @@ public class BaseController {
if("ddos_ip_cfg".equals(tableNameXml)){
boolean hasData = true;
while(hasData){
page.setPageNo(1);
page.setLastPage(false);
List<DdosIpCfg> list=ddosCfgService.findPage(page, searchDdosIpCfg).getList();
if(!StringUtil.isEmpty(list)){
if(auditBatchCfg.getIsValid().equals(1)) {
@@ -3084,7 +3085,8 @@ public class BaseController {
hasData=commonPolicyService.auditNtcMaatData(cfgList, page, auditBatchCfg,newList, hasData);
}
if(hasData) {
page.setPageNo(page.getNext());
page.setPageNo(1);
page.setLastPage(false);
}
}else{
hasData = false;
@@ -3096,6 +3098,8 @@ public class BaseController {
//所有已下发的ASN IP组
boolean hasData = true;
while(hasData){
page.setPageNo(1);
page.setLastPage(false);
//已下发的ASN IP
List<AsnIpCfg> list=asnIpCfgService.findPage(page, searchAsnIpCfg).getList();
@@ -3118,9 +3122,6 @@ public class BaseController {
}
hasData=commonPolicyService.auditReuseConfigData(page, auditBatchCfg,asnIpMap,hasData);
}
if(hasData) {
page.setPageNo(page.getNext());
}
}else{
hasData = false;
}
@@ -3138,6 +3139,9 @@ public class BaseController {
boolean hasData = true;
while(hasData){
page.setPageNo(1);
page.setLastPage(false);
//已下发的APP IP
List<AppIpCfg> list=appCfgService.findAppIpList(page, searchAppIpCfg).getList();
@@ -3164,9 +3168,6 @@ public class BaseController {
}
hasData=commonPolicyService.auditReuseConfigData(page, auditBatchCfg,appIpMap,hasData);
}
if(hasData) {
page.setPageNo(page.getNext());
}
}else{
hasData = false;
}
@@ -3262,6 +3263,8 @@ public class BaseController {
}else {
boolean hasData = true;
while(hasData){
page.setPageNo(1);
page.setLastPage(false);
List list = Lists.newArrayList();
/*
1026 app_domain_cfg
@@ -3297,9 +3300,6 @@ public class BaseController {
}
hasData=commonPolicyService.auditNtcMaatData(cfgList, page, auditBatchCfg,newList, hasData);
}
if(hasData) {
page.setPageNo(page.getNext());
}
}else{
hasData = false;
}
@@ -3312,6 +3312,8 @@ public class BaseController {
/********************回调类处理生效和失效一个方法【由于每个表检索条件不一样,需要自己处理,无法复用全量下发】*********/
boolean hasData = true;
while(hasData){
page.setPageNo(1);
page.setLastPage(false);
hasData=handelCallbackData(classNameXml, page, hasData, auditBatchCfg
, searchCfg
, searchAppCfg
@@ -3324,9 +3326,6 @@ public class BaseController {
, searchDnsIpCfg
, searchIpPortCfg
, searchSignSampleCfg);
if(hasData){
page.setPageNo(page.getNext());
}
}
}
}
@@ -3340,7 +3339,7 @@ public class BaseController {
}
}
long end=System.currentTimeMillis();
logger.info("配置批量生效/失效耗时:"+(end-start));
logger.warn("配置批量生效/失效耗时:"+(end-start));
}

View File

@@ -51,10 +51,11 @@ public class ConfigSynchronizationController extends BaseController {
* 下发同步命令
*/
@RequestMapping(value = {"configSync"})
public String configSync(Model model,Integer cmd,HttpServletRequest request,HttpServletResponse response){
public String configSync(Model model,Integer cmd,Integer serviceId,HttpServletRequest request,HttpServletResponse response){
Map<String,Integer> map = new HashMap();
map.put("syncStatus", cmd);
JSONObject result = ConfigServiceUtil.configSyncCmd(BaseService.gsonToJson(map));
//TODO 联调时打开JSONObject result = ConfigServiceUtil.configSyncCmd(BaseService.gsonToJson(map));
JSONObject result=JSONObject.fromObject("{\"status\": 201,\"businessCode\": 2001000,\"reason\":\"数据获取操作成功\",\"msg\": \"根据配置id获取对应的编译,组,域等信息成功\",\"fromuri\": \"/galaxy-service/service/cfg/v1/getAllKVByCompileId\",\"traceCode\": \"2019031211285044813363\",\"data\": [{\"service\":\"ntc\",\"status\":0,\"opTime\":\"2016-11-22 08:31:27\"}]}");
if(result.get("status").equals(201)){//响应成功
if(cmd.equals(1)){//同步
SysDataDictionaryName sysDictName = new SysDataDictionaryName();
@@ -73,7 +74,7 @@ public class ConfigSynchronizationController extends BaseController {
CacheUtils.remove(Constants.CACHE_DICT_MAP);
}
}
send(model,request,response);
send(serviceId,model,request,response);
}else if(cmd.equals(0)){//取消
}
@@ -85,10 +86,10 @@ public class ConfigSynchronizationController extends BaseController {
* 下发同步配置
*/
@RequestMapping(value = {"send"})
public void send(Model model,HttpServletRequest request,HttpServletResponse response){
public void send(Integer serviceId,Model model,HttpServletRequest request,HttpServletResponse response){
int status = -2;
try {
configSynchronizationService.send(request,response,null);
configSynchronizationService.send(serviceId,request,response,null);
status = 1;
} catch (NoSuchFieldException e) {
e.printStackTrace();
@@ -128,7 +129,8 @@ public class ConfigSynchronizationController extends BaseController {
}else{
boolean isFinished = true;
while(isFinished){
JSONObject result = ConfigServiceUtil.configSyncStatus();//获取同步状态
//TODO 联调时打开JSONObject result = ConfigServiceUtil.configSyncStatus();//获取同步状态
JSONObject result = JSONObject.fromObject("{\"status\": 200,\"businessCode\": 2001000,\"reason\":\"数据获取操作成功\",\"msg\": \"根据配置id获取对应的编译,组,域等信息成功\",\"fromuri\": \"/galaxy-service/service/cfg/v1/getAllKVByCompileId\",\"traceCode\": \"2019031211285044813363\",\"data\": [{\"service\":\"ntc\",\"status\":3,\"opTime\":\"2016-11-22 08:31:27\"}]}");
if(result.get("status").equals(200)){
List<Map<String,Object>> list = result.getJSONArray("data");
if(!StringUtil.isEmpty(list)){
@@ -180,7 +182,8 @@ public class ConfigSynchronizationController extends BaseController {
String failStatus = DictUtils.getDictCode("config_sync_status", "fail","-2");
Map<String,Object> map = Maps.newHashMap();
if(!currentStatus.equals(successStatus) && !currentStatus.equals(failStatus) && !currentStatus.equals(serverFailStatus)){
JSONObject result = ConfigServiceUtil.configSyncStatus();//获取同步状态
JSONObject result = JSONObject.fromObject("{\"status\": 200,\"businessCode\": 2001000,\"reason\":\"数据获取操作成功\",\"msg\": \"根据配置id获取对应的编译,组,域等信息成功\",\"fromuri\": \"/galaxy-service/service/cfg/v1/getAllKVByCompileId\",\"traceCode\": \"2019031211285044813363\",\"data\": [{\"service\":\"ntc\",\"status\":0,\"opTime\":\"2016-11-22 08:31:27\"}]}");
//TODO 联调时打开JSONObject result = ConfigServiceUtil.configSyncStatus();//获取同步状态
if(result.get("status").equals(200)){
List<Map<String,Object>> list = result.getJSONArray("data");
if(!StringUtil.isEmpty(list)){

View File

@@ -97,6 +97,7 @@ public interface ConfigSynchronizationDao {
public List<ComplexkeywordCfg> getComplexStrListByService(BaseCfg entity);
public List<IpPortCfg> getAppIpPortList(@Param("tableName")String tableName,@Param("compileIds")List compileIds);
public List<AppIpCfg> getAppIpFeatureList(BaseCfg entity);
public List<AppIpCfg> getAsnIpList(BaseCfg entity);
public void updateCfgStatus(BaseCfg entity);

View File

@@ -777,7 +777,7 @@
a.service_id,a.request_id,a.compile_id,a.is_area_effective,a.classify,a.attribute,a.lable,
a.area_effective_ids,a.function_id,a.ip_type,a.src_ip_address,a.ip_pattern,a.port_pattern,a.src_port
,a.protocol,a.protocol_id,a.direction,a.dest_port,a.dest_ip_address,a.cfg_type,a.pps_threadshold,
a.antiddos_protocol,a.bps_threadshold,a.do_blacklist
a.antiddos_protocol,a.bps_threadshold
</sql>
<sql id="IpCfg_Column" >
a.ip_type,a.src_ip_address,a.ip_pattern,a.port_pattern,a.src_port,
@@ -813,9 +813,9 @@
a.expr_type,a.match_method,a.is_hexbin,a.compile_id
</sql>
<sql id="DigestCfg_Column" >
a.cfg_id,a.cfg_desc,a.action,a.is_valid,a.is_audit,a.creator_id,a.audit_time,
a.cfg_id,a.cfg_desc,a.cfg_type,a.raw_len,a.digest,a.cfds_level,a.file_url,a.action,a.is_valid,a.is_audit,a.creator_id,a.audit_time,
a.service_id,a.request_id,a.compile_id,a.is_area_effective,a.classify,a.attribute,a.lable,
a.area_effective_ids,a.function_id,a.do_log,a.user_region1,a.user_region2,
a.area_effective_ids,a.function_id,a.do_log,a.user_region1,a.user_region2
</sql>
<sql id="PxyObjTrustedCaCertColumns">
a.cfg_id,a.cfg_desc
@@ -1062,7 +1062,7 @@
SELECT
<include refid="DigestCfg_Column" />
<trim prefix="," prefixOverrides=",">
, s.name as creator_name,u.name as auditor_name
s.name as creator_name,u.name as auditor_name
</trim>
FROM file_digest_cfg a
left join sys_user s on a.creator_id=s.id
@@ -1124,30 +1124,6 @@
</foreach>
</where>
</select>
<select id="getAsnIpList" resultType="com.nis.domain.basics.AsnIpCfg">
SELECT
<include refid="AsnIpCfg_Column" />
FROM asn_ip_cfg a
<where>
a.is_valid!=-1
<if test="isAudit != null">
AND a.is_audit=#{isAudit,jdbcType=INTEGER}
</if>
and a.asn_ip_group in
<foreach collection="asnGroupIds" index="index" item="groupId" open="(" separator="," close=")">
#{groupId}
</foreach>
<!-- <if test="compileId != null">
AND a.compile_id =#{compileId}
</if>
<if test="functionId != null">
AND a.function_id =#{functionId}
</if>
<if test="serviceId!= null">
AND a.service_id =#{serviceId}
</if> -->
</where>
</select>
<select id="getStrList" resultMap="stringCfgMap" >
SELECT
<include refid="StrCfg_Column" />
@@ -1260,7 +1236,7 @@
AND a.compile_id=#{compileId,jdbcType=INTEGER}
</if>
and a.is_valid!=-1
and (cert_id is null or cert_id == 0)
and (cert_id is null or cert_id = 0)
</trim>
ORDER BY a.CFG_ID
</select>
@@ -1625,6 +1601,39 @@
</trim>
ORDER BY a.CFG_ID
</select>
<select id="getAsnIpList" resultType="com.nis.domain.basics.AsnIpCfg" parameterType="com.nis.domain.configuration.CfgIndexInfo">
select
a.cfg_id,a.cfg_desc,a.ip_type,a.src_ip_address,a.ip_pattern,a.port_pattern,a.src_port
,a.protocol,a.protocol_id,a.direction,a.cfg_type,a.action,a.dest_port,a.dest_ip_address
,a.is_valid,a.is_audit,a.creator_id,a.create_time,a.editor_id
,a.edit_time,a.auditor_id,a.audit_time,a.service_id,a.request_id,
a.region_id,a.is_area_effective,a.classify,a.attribute,a.lable
,a.area_effective_ids,a.function_id,a.cfg_region_code,a.asn_ip_group,a.user_region1
,a.user_region2,a.user_region3,a.user_region4,a.user_region5,a.organization,a.country,a.detail,a.compile_id
from ${tableName} a
<trim prefix="WHERE" prefixOverrides="AND |OR ">
<if test="serviceId != null">
AND a.SERVICE_ID=#{serviceId,jdbcType=INTEGER}
</if>
<if test="functionId != null">
AND a.function_id=#{functionId,jdbcType=INTEGER}
</if>
<if test="action != null">
AND a.action=#{action,jdbcType=INTEGER}
</if>
<if test="isValid != null">
AND a.is_valid=#{isValid,jdbcType=INTEGER}
</if>
<if test="isAudit != null">
AND a.is_audit=#{isAudit,jdbcType=INTEGER}
</if>
<if test="compileId != null">
AND a.compile_id=#{compileId,jdbcType=INTEGER}
</if>
and a.is_valid!=-1
</trim>
ORDER BY a.CFG_ID
</select>
<select id="getSpoofingIpPoolList" resultType="com.nis.domain.configuration.PxyObjSpoofingIpPool" parameterType="com.nis.domain.configuration.CfgIndexInfo">
SELECT

View File

@@ -20,7 +20,10 @@
select
<include refid="columns"></include>
from config_group_info
where group_type =#{groupType}
<where>
and group_type =#{groupType}
and is_issued =#{isIssued}
</where>
</select>
<select id="findAllListByGroupInfo" resultMap="configGroupInfoMap">
select

View File

@@ -166,15 +166,16 @@ public class CommonPolicyService extends CrudService<WebsiteCfgDao, CfgIndexInfo
//调用服务接口取消配置
String json=gsonToJson(maatBean);
if(!StringUtil.isEmpty(list)) {
logger.info("批量配置取消("+page.getPageNo()+"次)个数:"+list.size());
logger.warn("批量配置取消("+page.getPageNo()+"次)个数:"+list.size());
}
//调用服务接口下发配置
logger.info("Maat配置批量失效-下发start()");
logger.warn("Maat配置批量失效-下发start()");
//logger.warn("Maat配置批量失效-下发start()"+json);
start=System.currentTimeMillis();
ToMaatResult result = ConfigServiceUtil.put(json,1);
end=System.currentTimeMillis();
logger.info("配置取消配置响应信息:"+result.getMsg());
logger.info("Maat配置批量失效-下发end("+(end-start)+")");
logger.warn("配置取消配置响应信息:"+result.getMsg());
logger.warn("Maat配置批量失效-下发end("+(end-start)+")");
}
return hasData;
}
@@ -222,10 +223,10 @@ public class CommonPolicyService extends CrudService<WebsiteCfgDao, CfgIndexInfo
}
start=System.currentTimeMillis();
logger.info("APP IP配置批量失效-数据库状态变更start()");
logger.warn("APP IP配置批量失效-数据库状态变更start()");
commonPolicyDao.auditCfgBatch( entity.getTableName(), entity,regionIds,null);
end=System.currentTimeMillis();
logger.info("APP IP配置批量失效-数据库状态变更end("+(end-start)+")");
logger.warn("APP IP配置批量失效-数据库状态变更end("+(end-start)+")");
//已经下发过的,调用分组复用配置删除接口
if(!auditMap.isEmpty()) {
@@ -247,15 +248,15 @@ public class CommonPolicyService extends CrudService<WebsiteCfgDao, CfgIndexInfo
maatBean.setOpAction(Constants.UPDATE_ACTION);
//调用服务接口下发配置数据
String json=gsonToJson(maatBean);
logger.info("app协议IP域配置批量取消"+page.getPageNo()+"次):"+ipRegionList.size());
logger.warn("app协议IP域配置批量取消"+page.getPageNo()+"次):"+ipRegionList.size());
//logger.info("app协议IP域配置批量取消"+json);
//调用服务接口下发配置
logger.info("APP IP配置批量失效-下发start()");
logger.warn("APP IP配置批量失效-下发start()");
start=System.currentTimeMillis();
ToMaatResult result = ConfigServiceUtil.put(json,3);
end=System.currentTimeMillis();
logger.info("app协议IP域配置批量取消响应信息"+result.getMsg());
logger.info("APP IP配置批量失效-下发end("+(end-start)+")");
logger.warn("app协议IP域配置批量取消响应信息"+result.getMsg());
logger.warn("APP IP配置批量失效-下发end("+(end-start)+")");
}
return hasData;
}
@@ -284,25 +285,25 @@ public class CommonPolicyService extends CrudService<WebsiteCfgDao, CfgIndexInfo
if(entity.getIsAudit()==1){
//调用服务接口下发配置数据
String json=gsonToJson(auditList);
logger.info("批量下发配置参数:"+json);
//logger.warn("批量下发配置参数:"+json);
//调用服务接口下发配置
ToMaatResult result = ConfigServiceUtil.postCallbackCfg(json);
logger.info("批量下发响应信息:"+result.getMsg());
logger.warn("批量下发响应信息:"+result.getMsg());
}else if(entity.getIsAudit()==3){
//调用服务接口取消配置
String json=gsonToJson(auditList);
//logger.info("批量下发配置参数:"+json);
//logger.warn("批量下发配置参数:"+json);
if(!StringUtil.isEmpty(auditList)) {
logger.info("批量配置取消个数:"+auditList.size());
logger.warn("批量配置取消个数:"+auditList.size());
}
logger.info("回调配置批量失效-下发start()");
start=System.currentTimeMillis();
//调用服务接口下发配置
ToMaatResult result = ConfigServiceUtil.put(json,2);
end=System.currentTimeMillis();
logger.info("批量响应信息:"+result.getMsg());
logger.info("回调配置批量失效-下发耗时end("+(end-start)+")");
logger.warn("批量响应信息:"+result.getMsg());
logger.warn("回调配置批量失效-下发耗时end("+(end-start)+")");
}
}
}

View File

@@ -21,8 +21,11 @@ import org.springframework.stereotype.Service;
import antlr.StringUtils;
import com.google.common.collect.Lists;
import com.google.gson.Gson;
import com.google.gson.JsonObject;
import com.nis.domain.FunctionServiceDict;
import com.nis.domain.Page;
import com.nis.domain.basics.AsnGroupInfo;
import com.nis.domain.basics.AsnIpCfg;
import com.nis.domain.configuration.AppFeatureIndex;
import com.nis.domain.configuration.AppIpCfg;
@@ -62,6 +65,7 @@ import com.nis.util.DictUtils;
import com.nis.util.FileUtils;
import com.nis.util.ServiceConfigTemplateUtil;
import com.nis.util.StringUtil;
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;
@@ -69,6 +73,7 @@ import com.nis.web.dao.specific.ConfigGroupInfoDao;
import com.nis.web.dao.specific.SpecificServiceCfgDao;
import com.nis.web.security.UserUtils;
import com.nis.web.service.BaseService;
import com.sun.xml.internal.rngom.util.Utf16;
/**
* 配置全量同步事务类
@@ -86,11 +91,14 @@ public class ConfigSynchronizationService extends BaseService{
@Autowired
protected ConfigGroupInfoDao configGroupInfoDao;
@Autowired
protected AsnGroupInfoDao asnGroupInfoDao;
@Autowired
protected AppCfgDao appCfgDao;
private boolean lastServiceTag = false;//标识是否是最后一个同步业务
private boolean isFinished = false;
/**
* 配置全量更新下发
* @param serviceIdCondition 界面传入的全量同步某一个业务
* @param request
* @param response
* @throws IllegalAccessException
@@ -99,11 +107,16 @@ public class ConfigSynchronizationService extends BaseService{
* @throws NoSuchFieldException
* @throws ClassNotFoundException
*/
public void send(HttpServletRequest request,HttpServletResponse response,BaseCfg cfg) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException, ClassNotFoundException {
public void send(Integer serviceIdCondition,HttpServletRequest request,HttpServletResponse response,BaseCfg cfg) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException, ClassNotFoundException {
long start = System.currentTimeMillis();
ServiceConfigTemplateUtil serviceTemplate = new ServiceConfigTemplateUtil();
if(cfg==null){
List<Map<String,Object>> serviceList = serviceTemplate.getServiceList();
List<Map<String,Object>> serviceList =new ArrayList<>();
if(StringUtil.isEmpty(serviceIdCondition)) {
serviceList= serviceTemplate.getServiceList();
}else {
serviceList=serviceTemplate.getServiceListByServiceId(serviceIdCondition);
}
int lastService = 0;
lastServiceTag = false;
for(Map<String,Object> service:serviceList){
@@ -149,7 +162,7 @@ public class ConfigSynchronizationService extends BaseService{
}else{
json="[]";
}*/
JSONObject result = ConfigServiceUtil.configSync(json,Integer.parseInt(serviceType),entity.getServiceId(),entity.getTableName(),"FINISHED");
//JSONObject result = ConfigServiceUtil.configSync(json,Integer.parseInt(serviceType),entity.getServiceId(),entity.getTableName(),"FINISHED");
}
}
long end = System.currentTimeMillis();
@@ -271,9 +284,9 @@ public class ConfigSynchronizationService extends BaseService{
List<String> asnGroupIds = new ArrayList();
for(CfgIndexInfo cfg:list){
compileIds.add(cfg.getCompileId());
if(entity.getServiceId().equals(37)||entity.getServiceId().equals(149)){
/*if(entity.getServiceId().equals(37)||entity.getServiceId().equals(149)){
asnGroupIds.add(cfg.getUserRegion4());
}
}*/
}
if(isUpdateCfg) {
@@ -286,17 +299,7 @@ public class ConfigSynchronizationService extends BaseService{
for(Map<String,Object> m:cfgList){
String tableName = m.get("tableName").toString();
if("1".equals(m.get("cfgType"))){
if(tableName.equals("asn_ip_cfg")){
if(!StringUtil.isEmpty(asnGroupIds)) {
if(isUpdateCfg) { //批量审核时只查询未下发的asnip
asnIpList.addAll(configSynchronizationDao.getAsnIpList(asnGroupIds,0));
}else { //全量下发时需要检索所有asnip
asnIpList.addAll(configSynchronizationDao.getAsnIpList(asnGroupIds,null));
}
}
}else{
ipList.addAll(configSynchronizationDao.getIpPortList(tableName, compileIds));
}
ipList.addAll(configSynchronizationDao.getIpPortList(tableName, compileIds));
}else if("2".equals(m.get("cfgType"))){
strList.addAll(configSynchronizationDao.getStrList(tableName,compileIds));
}else if("3".equals(m.get("cfgType"))){
@@ -342,14 +345,14 @@ public class ConfigSynchronizationService extends BaseService{
if(userRegionPosition!=null && (userRegionPosition.toString().equals("1")||userRegionPosition.toString().equals("0"))){
//通过反射机制获取自定义域字段值
String regionColumn = n.get("regionColumn").toString();
String regionKey = n.get("regionKey").toString();
Object value = "";
Class aClass = null;
if(userRegionPosition.toString().equals(("0"))){
aClass = BaseCfg.class;
}else{
aClass = CfgIndexInfo.class;
}
Object value = "";
if(entity.getServiceId().equals(517)||entity.getServiceId().equals(560)){//代理替换策略
String[] regionArray = regionColumn.split(",");
for(int r=0;r<regionArray.length;r++){
@@ -364,9 +367,21 @@ public class ConfigSynchronizationService extends BaseService{
}
userRegion += n.get("regionKey")+"="+value+Constants.USER_REGION_SPLIT;
}else{
Field field = aClass.getDeclaredField(regionColumn);
field.setAccessible(true);
value = field.get(cfg);
if(regionKey.equals("keyring_id") && StringUtil.isEmpty(value)){
value = "0";
}else if(regionKey.equals("DOMAIN_STR")) {
if(!StringUtil.isEmpty(strList)) {
value = strList.get(0).getCfgKeywords();
}
}else {
if(regionKey.equals("DOMAIN_ID") && StringUtil.isEmpty(strList)) {
value="";
}else {
Field field = aClass.getDeclaredField(regionColumn);
field.setAccessible(true);
value = field.get(cfg);
}
}
if(!StringUtil.isEmpty(value)){
if(StringUtil.isEmpty(n.get("regionKey"))){
userRegion = value.toString();
@@ -376,7 +391,6 @@ public class ConfigSynchronizationService extends BaseService{
}
}
}
// System.out.println("userRegionList:"+n.get("regionKey")+","+n.get("regionColumn")+","+n.get("handleType"));
}
if(userRegion.endsWith(Constants.USER_REGION_SPLIT)){
userRegion = userRegion.substring(0, userRegion.length()-1);
@@ -452,7 +466,7 @@ public class ConfigSynchronizationService extends BaseService{
//调用服务接口配置全量更新
isFinished = ((!hasData)&&lastServiceTag)?true:false;
FileUtils.writeToFile("/home/ceiec/configSync/"+DateUtils.getDate("yyyy-MM-dd")+"/"+entity.getServiceId()+"_"+page.getPageNo()+"_"+System.currentTimeMillis()+".json", json, false);
JSONObject result = ConfigServiceUtil.configSync(json,1,entity.getServiceId(),null,isFinished?"FINISHED":null);
//TODO 联调时打开JSONObject result = ConfigServiceUtil.configSync(json,1,entity.getServiceId(),null,isFinished?"FINISHED":null);
}
}
return hasData;
@@ -623,7 +637,7 @@ public class ConfigSynchronizationService extends BaseService{
//调用服务接口配置全量更新
isFinished = ((!hasData)&&lastServiceTag)?true:false;
FileUtils.writeToFile("/home/ceiec/configSync/"+DateUtils.getDate("yyyy-MM-dd")+"/"+entity.getServiceId()+"_"+page.getPageNo()+"_"+System.currentTimeMillis()+".json", json, false);
JSONObject result = ConfigServiceUtil.configSync(json,1,entity.getServiceId(),null,isFinished?"FINISHED":null);
//TODO 联调时打开JSONObject result = ConfigServiceUtil.configSync(json,1,entity.getServiceId(),null,isFinished?"FINISHED":null);
}
}
return hasData;
@@ -812,7 +826,7 @@ public class ConfigSynchronizationService extends BaseService{
//调用服务接口配置全量更新
isFinished = ((!hasData)&&lastServiceTag)?true:false;
FileUtils.writeToFile("/home/ceiec/configSync/"+DateUtils.getDate("yyyy-MM-dd")+"/"+entity.getServiceId()+"_"+page.getPageNo()+"_"+System.currentTimeMillis()+".json", json, false);
// JSONObject result = ConfigServiceUtil.configSync(json,1,entity.getServiceId(),null,isFinished?"FINISHED":null);
//TODO 联调时打开 JSONObject result = ConfigServiceUtil.configSync(json,1,entity.getServiceId(),null,isFinished?"FINISHED":null);
}
}
return hasData;
@@ -982,7 +996,7 @@ public class ConfigSynchronizationService extends BaseService{
//调用服务接口配置全量更新
isFinished = ((!hasData)&&lastServiceTag)?true:false;
FileUtils.writeToFile("/home/ceiec/configSync/"+DateUtils.getDate("yyyy-MM-dd")+"/"+entity.getServiceId()+"_"+page.getPageNo()+"_"+System.currentTimeMillis()+".json", json, false);
JSONObject result = ConfigServiceUtil.configSync(json,1,entity.getServiceId(),null,isFinished?"FINISHED":null);
//TODO 联调时打开JSONObject result = ConfigServiceUtil.configSync(json,1,entity.getServiceId(),null,isFinished?"FINISHED":null);
}
}
return hasData;
@@ -1029,14 +1043,49 @@ public class ConfigSynchronizationService extends BaseService{
public void handleSingleMaatData(int cfgType,List<Map<String,Object>>userRegionList,
Page<T> page,BaseCfg entity,HttpServletRequest request,HttpServletResponse response,
boolean isUpdateCfg) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException{
boolean hasData = true;
//APP IP按配置Id批量下发[服务端只支持maat和回调类格式的json串]
List<ConfigGroupInfo> groupInfos=new ArrayList<>();
//ASN IP按配置Id全量下发[服务端只支持maat和回调类格式的json串]
List<AsnGroupInfo> asnGroupInfos=new ArrayList<>();
if(entity.getServiceId().equals(1028)){
ConfigGroupInfo groupInfo=new ConfigGroupInfo();
groupInfo.setIsIssued(1);//全量下发只用获取已下发的group信息
groupInfo.setGroupType(1);
groupInfos=configGroupInfoDao.findAllList(groupInfo);//每一批次下发都取一次最新的group_info信息
if(StringUtil.isEmpty(groupInfos)){
hasData=false;
}
}
if(entity.getServiceId().equals(400)){
AsnGroupInfo groupInfo=new AsnGroupInfo();
groupInfo.setIsValid(1);//全量下发只用获取已下发的group信息
asnGroupInfos=asnGroupInfoDao.findAsnGroupInfoList(groupInfo);//每一批次下发都取一次最新的group_info信息
if(StringUtil.isEmpty(asnGroupInfos)){
hasData=false;
}
}
while(hasData){
entity.setPage(page);
List list = Lists.newArrayList();
if(cfgType==1){
if(entity.getServiceId().equals(1028)){
page.setPageSize(-1);
page.setPageNo(1);
page.setLastPage(true);
entity.setPage(page);
entity.setCompileId(groupInfos.get(0).getCompileId());
entity.setGroupId(groupInfos.get(0).getGroupId());
list = configSynchronizationDao.getAppIpFeatureList(entity);
}else if(entity.getServiceId().equals(400)){
page.setPageSize(-1);
page.setPageNo(1);
page.setLastPage(true);
entity.setPage(page);
entity.setCompileId(asnGroupInfos.get(0).getCompileId());
entity.setGroupId(asnGroupInfos.get(0).getGroupId());
list = configSynchronizationDao.getAsnIpList(entity);
}else{
list = configSynchronizationDao.getIpPortListByService(entity);
}
@@ -1047,18 +1096,11 @@ public class ConfigSynchronizationService extends BaseService{
}
if(!StringUtil.isEmpty(list)){
if(entity.getServiceId().equals(1028)){
ConfigGroupInfo groupInfo=new ConfigGroupInfo();
groupInfo.setIsIssued(1);//全量下发只用获取已下发的group信息
List<ConfigGroupInfo> groupInfos=configGroupInfoDao.findAllList(groupInfo);//每一批次下发都取一次最新的group_info信息
Map<Integer, Integer> compileGroups=new HashMap<>();
if(!StringUtil.isEmpty(groupInfos)) {
for (ConfigGroupInfo configGroupInfo : groupInfos) {
compileGroups.put(configGroupInfo.getCompileId(), configGroupInfo.getGroupId());
}
}
entity.setCompileGroupMap(compileGroups);
hasData=auditAppIpData(userRegionList,
page,entity,list,hasData,isUpdateCfg);
}else if(entity.getServiceId().equals(400)){
hasData=auditAsnIpData(userRegionList,
page,entity,list,hasData,isUpdateCfg);
}else{
hasData=auditSingleMaatData(cfgType,userRegionList,
page,entity,list,hasData,isUpdateCfg);
@@ -1070,6 +1112,30 @@ public class ConfigSynchronizationService extends BaseService{
}else{
hasData = false;
}
//ASN IP
if(entity.getServiceId().equals(400)){
//处理完成一个compile删除一个Group
if(!StringUtil.isEmpty(asnGroupInfos)){
asnGroupInfos.remove(0);
}
if(asnGroupInfos.size() > 0) {
hasData=true;
}else {
hasData=false;
}
}
//APP IP
if(entity.getServiceId().equals(1028)){
//处理完成一个compile删除一个Group
if(!StringUtil.isEmpty(groupInfos)){
groupInfos.remove(0);
}
if(groupInfos.size() > 0) {
hasData=true;
}else {
hasData=false;
}
}
}
}
/**
@@ -1125,7 +1191,8 @@ public class ConfigSynchronizationService extends BaseService{
areaIpRegionList = new ArrayList();
List<DdosIpCfg> list1 = new ArrayList();
String userRegion = "";
//处理自定义域
//处理自定义域【DDOS自定义域组成json结构】
Map ddosUserRegion= new HashMap();
if(userRegionList!=null){
for(Map<String,Object> n:userRegionList){
Object userRegionPosition = n.get("userRegionPosition");
@@ -1142,17 +1209,21 @@ public class ConfigSynchronizationService extends BaseService{
Field field = aClass.getDeclaredField(regionColumn);
field.setAccessible(true);
value = field.get(cfg);
if(!StringUtil.isEmpty(value)){
if(StringUtil.isEmpty(n.get("regionKey"))){
userRegion = value.toString();
}else{
userRegion += n.get("regionKey")+"="+value+Constants.USER_REGION_SPLIT;
//userRegion += n.get("regionKey")+"="+value+Constants.USER_REGION_SPLIT;
ddosUserRegion.put(n.get("regionKey"), value);
}
}
}
}
if(userRegion.endsWith(Constants.USER_REGION_SPLIT)){
userRegion = userRegion.substring(0, userRegion.length()-1);
}else if(!StringUtil.isEmpty(ddosUserRegion)){
userRegion = new Gson().toJson(ddosUserRegion);
}
}
if(isUpdateCfg && !StringUtil.isEmpty(cfg) && !StringUtil.isEmpty(cfg.getCompileId())) {
@@ -1211,7 +1282,7 @@ public class ConfigSynchronizationService extends BaseService{
//调用服务接口配置全量更新
isFinished = ((!hasData)&&lastServiceTag)?true:false;
FileUtils.writeToFile("/home/ceiec/configSync/"+DateUtils.getDate("yyyy-MM-dd")+"/"+entity.getServiceId()+"_"+page.getPageNo()+"_"+System.currentTimeMillis()+".json", json, false);
JSONObject result = ConfigServiceUtil.configSync(json,1,entity.getServiceId(),null,isFinished?"FINISHED":null);
//TODO 联调时打开JSONObject result = ConfigServiceUtil.configSync(json,1,entity.getServiceId(),null,isFinished?"FINISHED":null);
}
}
@@ -1419,7 +1490,7 @@ public class ConfigSynchronizationService extends BaseService{
//调用服务接口配置全量更新
isFinished = ((!hasData)&&lastServiceTag)?true:false;
FileUtils.writeToFile("/home/ceiec/configSync/"+DateUtils.getDate("yyyy-MM-dd")+"/"+entity.getServiceId()+"_"+page.getPageNo()+"_"+System.currentTimeMillis()+".json", json, false);
JSONObject result = ConfigServiceUtil.configSync(json,1,entity.getServiceId(),null,isFinished?"FINISHED":null);
//TODO 联调时打开JSONObject result = ConfigServiceUtil.configSync(json,1,entity.getServiceId(),null,isFinished?"FINISHED":null);
}
}
@@ -1427,7 +1498,8 @@ public class ConfigSynchronizationService extends BaseService{
}
/**
* 处理app ip特征分组复用配置
* 量下发:【第一次下发为正常配置下发,非第一次下发为分组复用接口下发】
* 量下发(全量下发接口只支持maat和回调类的json字符串格式)
* TODO 批量下发:【第一次下发为正常配置下发,非第一次下发为分组复用接口下发】
* @param serviceId
* @param request
* @param response
@@ -1455,34 +1527,30 @@ public class ConfigSynchronizationService extends BaseService{
configCompileList = new ArrayList();
List<Integer> regionIds= new ArrayList();//存储app ip域id
List<Integer> compileIds= new ArrayList();//存储app compileId
Map<Integer, Integer> compileGroups=new HashMap<>();
compileGroups=entity.getCompileGroupMap();
Integer isIssued=entity.getCompileIsIssued();//批量下发时使用,需要用来判断是否走分组复用接口
//同一编译IP的分组
Map<Integer,List<AppIpCfg>> dataMap=new HashMap<>();
Integer compileId=entity.getCompileId();
Integer groupId=entity.getGroupId();
List<AppIpCfg> ipList=new ArrayList<>();
for(int i=0;i<list.size();i++){
AppIpCfg cfg = new AppIpCfg();
BeanUtils.copyProperties(list.get(i), cfg);
cfg.setIsValid(entity.getIsValid());
cfg.setAuditTime(StringUtil.isEmpty(entity.getAuditTime()) ? cfg.getAuditTime():entity.getAuditTime());
cfg.setGroupId(compileGroups.get(cfg.getCompileId()));
if(dataMap.containsKey(cfg.getCompileId())) {
dataMap.get(cfg.getCompileId()).add(cfg);
}else {
List<AppIpCfg> ipList=new ArrayList<>();
ipList.add(cfg);
dataMap.put(cfg.getCompileId(), ipList);
}
if(isUpdateCfg) {
cfg.setGroupId(groupId);
ipList.add(cfg);
/*if(isUpdateCfg) {
if(!compileIds.contains(cfg.getCompileId())) {
compileIds.add(cfg.getCompileId());
}
if(!StringUtil.isEmpty(cfg.getUserRegion1())) {
regionIds.add(Integer.parseInt(cfg.getUserRegion1()));
}
}
}*/
}
dataMap.put(compileId, ipList);
for(List<AppIpCfg> entitys:dataMap.values()) {
maatCfg = new MaatCfg();
reuseMaatBean = new GroupReuseAddBean();
@@ -1609,8 +1677,196 @@ public class ConfigSynchronizationService extends BaseService{
}else {
//调用服务接口配置全量更新
isFinished = ((!hasData)&&lastServiceTag)?true:false;
FileUtils.writeToFile("/home/ceiec/configSync/"+DateUtils.getDate("yyyy-MM-dd")+"/"+entity.getServiceId()+"_"+page.getPageNo()+"_"+System.currentTimeMillis()+".json", json, false);
JSONObject result = ConfigServiceUtil.configSync(json,1,entity.getServiceId(),null,isFinished?"FINISHED":null);
FileUtils.writeToFile("/home/ceiec/configSync/"+DateUtils.getDate("yyyy-MM-dd")+"/"+entity.getServiceId()+"_"+compileId+"_"+page.getPageNo()+"_"+System.currentTimeMillis()+".json", json, false);
//TODO 联调时打开JSONObject result = ConfigServiceUtil.configSync(json,1,entity.getServiceId(),null,isFinished?"FINISHED":null);
}
}
return hasData;
}
/**
* 处理ASN ip配置
* 全量下发(全量下发接口只支持maat和回调类的json字符串格式)
* TODO 批量下发:【第一次下发为正常配置下发,非第一次下发为分组复用接口下发】
* @param serviceId
* @param request
* @param response
*/
public boolean auditAsnIpData(List<Map<String,Object>>userRegionList,
Page<T> page,
BaseCfg entity,
List<T> list,
boolean hasData,
boolean isUpdateCfg) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException{
ToMaatBean maatBean;
GroupReuseAddBean reuseMaatBean;
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();
reuseMaatBean = new GroupReuseAddBean();
configCompileList = new ArrayList();
List<Integer> regionIds= new ArrayList();//存储app ip域id
List<Integer> compileIds= new ArrayList();//存储app compileId
Integer isIssued=entity.getCompileIsIssued();//批量下发时使用,需要用来判断是否走分组复用接口
//同一编译IP的分组
Map<Integer,List<AsnIpCfg>> dataMap=new HashMap<>();
Integer compileId=entity.getCompileId();
Integer groupId=entity.getGroupId();
List<AsnIpCfg> ipList=new ArrayList<>();
for(int i=0;i<list.size();i++){
AsnIpCfg cfg = new AsnIpCfg();
BeanUtils.copyProperties(list.get(i), cfg);
cfg.setIsValid(entity.getIsValid());
cfg.setAuditTime(StringUtil.isEmpty(entity.getAuditTime()) ? cfg.getAuditTime():entity.getAuditTime());
cfg.setGroupId(groupId);
ipList.add(cfg);
/*if(isUpdateCfg) {
if(!compileIds.contains(cfg.getCompileId())) {
compileIds.add(cfg.getCompileId());
}
if(!StringUtil.isEmpty(cfg.getUserRegion1())) {
regionIds.add(Integer.parseInt(cfg.getUserRegion1()));
}
}*/
}
dataMap.put(compileId, ipList);
for(List<AsnIpCfg> entitys:dataMap.values()) {
maatCfg = new MaatCfg();
reuseMaatBean = new GroupReuseAddBean();
maatCfg.initDefaultValue();
groupRelationList = new ArrayList();
ipRegionList = new ArrayList();
strRegionList = new ArrayList();
numRegionList = new ArrayList();
digestRegionList = new ArrayList();
areaIpRegionList = new ArrayList();
/*if(configGroupInfo==null) {
Integer groupId = ConfigServiceUtil.getId(2, 1).get(0);
specificServiceCfg.setGroupId(groupId);
configGroupInfo = new ConfigGroupInfo();
configGroupInfo.setGroupId(specificServiceCfg.getGroupId());
configGroupInfo.setGroupName(specificServiceCfg.getSpecServiceName());
configGroupInfo.setIsIssued(0);
configGroupInfo.setCompileId(entitys.get(0).getCompileId());
configGroupInfo.setGroupType(1);
configGroupInfoDao.insertConfigGroupInfo(configGroupInfo);
//更新group_id
specificServiceCfg.setOpTime(new Date());
specificServiceCfgDao.update(specificServiceCfg);
}*/
if(isUpdateCfg && (isIssued.equals(1) || entity.getIsValid().equals(0))) {
List<GroupReuseCfg> groupReuseList=new ArrayList<>();
GroupReuseCfg groupReuseCfg=new GroupReuseCfg();
/*groupReuseCfg.setUserRegion(userRegion);*/
groupReuseCfg.setServiceId(entitys.get(0).getServiceId());
ipRegionList.addAll(groupReuseCfgAddRemoveConvert(entitys,entity.getIsValid(),entitys.get(0).getGroupId()));
groupReuseCfg.setIpRegionList(ipRegionList);
groupReuseCfg.setStrRegionList(strRegionList);
groupReuseCfg.setNumRegionList(numRegionList);
groupReuseList.add(groupReuseCfg);
reuseMaatBean.setGroupReuseCfgList(groupReuseList);
reuseMaatBean.setAuditTime(StringUtil.isEmpty(entity.getAuditTime())?entitys.get(0).getAuditTime():entity.getAuditTime());
reuseMaatBean.setCreatorName(entitys.get(0).getCurrentUser().getName());
reuseMaatBean.setVersion(Constants.MAAT_VERSION);
if(entity.getIsValid().equals(0)) {
reuseMaatBean.setOpAction(Constants.UPDATE_ACTION);
}else {
reuseMaatBean.setOpAction(Constants.INSERT_ACTION);
}
}else {
GroupCfg groupCfg=new GroupCfg();
groupCfg.setCompileId(entitys.get(0).getCompileId());
groupCfg.setGroupId(entitys.get(0).getGroupId());
groupCfg.setIsValid(Constants.VALID_YES);
groupCfg.setAuditTime(StringUtil.isEmpty(entity.getAuditTime())?entitys.get(0).getAuditTime():entity.getAuditTime());
groupRelationList.add(groupCfg);
BeanUtils.copyProperties(entitys.get(0), maatCfg);
ipRegionList.addAll(groupReuseCfgAddRemoveConvert(entitys,Constants.VALID_YES,entitys.get(0).getGroupId()));
maatCfg.setAction(entitys.get(0).getAction());
maatCfg.setAuditTime(entitys.get(0).getAuditTime());
maatCfg.setIpRegionList(ipRegionList);
maatCfg.setStrRegionList(strRegionList);
maatCfg.setNumRegionList(numRegionList);
maatCfg.setDigestRegionList(digestRegionList);
maatCfg.setGroupRelationList(groupRelationList);
maatCfg.setGroupNum(groupRelationList.size());
maatCfg.setAreaIpRegionList(areaIpRegionList);
maatCfg.setIsValid(entitys.get(0).getIsValid());
// 设置asn自定义域
String userRegion = "ASN_ID=AS" + entitys.get(0).getUserRegion1()/*+Constants.USER_REGION_SPLIT+"ASEV_ID="+businessType*/;
maatCfg.setUserRegion(userRegion);
configCompileList.add(maatCfg);
maatBean.setConfigCompileList(configCompileList);
maatBean.setAuditTime(entitys.get(0).getAuditTime());
maatBean.setCreatorName(entitys.get(0).getCurrentUser().getName());
maatBean.setVersion(Constants.MAAT_VERSION);
maatBean.setOpAction(Constants.INSERT_ACTION);
}
}
if(isUpdateCfg) {
if(!StringUtil.isEmpty(regionIds)) {
commonPolicyDao.auditCfgBatch(entity.getTableName(), entity, regionIds, null);
}
if(isIssued.equals(0) && entity.getIsValid().equals(1)) {//group第一次下发需要修改状态为已下发
if(!StringUtil.isEmpty(compileIds)) {
commonPolicyDao.auditCfgBatch("config_group_info", entity, compileIds, null);
}
}
}
page.setList(list);
if(page.getLast()==page.getPageNo()){
hasData = false;
}
if(!StringUtil.isEmpty(configCompileList.size())){
String json=gsonToJson(maatBean);
//调用服务接口下发配置数据
if(isUpdateCfg) {
if(isIssued.equals(1)) {//已下发过的compile或配置取消直接走ip复用接口
json=gsonToJson(reuseMaatBean);
if(entity.getIsValid().equals(0)) {
logger.info("app ip批量失效"+json);
//调用服务接口同步回调类配置
ToMaatResult result = ConfigServiceUtil.put(json, 3);
if(result!=null){
logger.info("app ip批量失效响应信息"+result.getMsg());
}
}else {
logger.info("app ip批量生效"+json);
//调用服务接口同步回调类配置
ToMaatResult result = ConfigServiceUtil.postGroupReuseSources(json);
if(result!=null){
logger.info("app ip批量生效响应信息"+result.getMsg());
}
}
}else {//未下发过的compile直接走正常maat配置接口
// logger.info("配置批量下发:"+json);
//调用服务接口同步回调类配置
ToMaatResult result = ConfigServiceUtil.postMaatCfg(json);
if(result!=null){
logger.info("配置批量下发响应信息:"+result.getMsg());
}
}
}else {
//调用服务接口配置全量更新
isFinished = ((!hasData)&&lastServiceTag)?true:false;
FileUtils.writeToFile("/home/ceiec/configSync/"+DateUtils.getDate("yyyy-MM-dd")+"/"+entity.getServiceId()+"_"+compileId+"_"+page.getPageNo()+"_"+System.currentTimeMillis()+".json", json, false);
//TODO 联调时打开JSONObject result = ConfigServiceUtil.configSync(json,1,entity.getServiceId(),null,isFinished?"FINISHED":null);
}
}
@@ -1762,7 +2018,7 @@ public class ConfigSynchronizationService extends BaseService{
FileUtils.writeToFile("/home/ceiec/configSync/"+DateUtils.getDate("yyyy-MM-dd")+"/"+entity.getServiceId()+"_"+page.getPageNo()+"_"+System.currentTimeMillis()+".json", json, false);
//调用服务接口同步回调类配置
isFinished = ((!hasData)&&lastServiceTag)?true:false;
JSONObject result = ConfigServiceUtil.configSync(json,2,entity.getServiceId(),entity.getTableName(),isFinished?"FINISHED":null);
//TODO 联调时打开JSONObject result = ConfigServiceUtil.configSync(json,2,entity.getServiceId(),entity.getTableName(),isFinished?"FINISHED":null);
}
}

View File

@@ -2,7 +2,7 @@
<serviceList>
<!-- NTC或PROXY MAAT类配置开始 -->
<!-- IP Whitelist -->
<service id="1" functionId="3" serviceType="1" tableName="cfg_index_info" className="CfgIndexInfo" desc="IP白名单">
<service id="1" functionId="3" serviceType="1" tableName="cfg_index_info" className="CfgIndexInfo" desc="IP白名单">
<serviceCfg cfgType="1" tableName="ip_port_cfg" ></serviceCfg>
</service>
<!-- IP Address -->
@@ -15,24 +15,16 @@
<service id="3" functionId="5" serviceType="2" tableName="cfg_index_info" className="CfgIndexInfo" desc="IP drop">
<serviceCfg cfgType="1" tableName="ip_port_cfg" ></serviceCfg>
</service>
<!-- <service id="128" functionId="5" serviceType="1" tableName="cfg_index_info" className="CfgIndexInfo" desc="IP地址监测">
<!--<service id="514" functionId="5" serviceType="1" tableName="cfg_index_info" className="CfgIndexInfo" desc="IP限速">
<serviceCfg cfgType="1" tableName="ip_port_cfg" ></serviceCfg>
</service> -->
<userRegion regionKey="Droprate" regionColumn="userRegion2" userRegionPosition="0"></userRegion>
</service>-->
<service id="37" functionId="5" serviceType="1" tableName="cfg_index_info" className="CfgIndexInfo" desc="ASN封堵">
<serviceCfg cfgType="2" tableName="asn_keyword_cfg" groupReuse="true" groupId="userRegion4"></serviceCfg>
<userRegion regionKey="ASN_ID" regionColumn="userRegion5" userRegionPosition="0"></userRegion>
</service>
<service id="149" functionId="5" serviceType="1" tableName="cfg_index_info" className="CfgIndexInfo" desc="ASN监测">
<serviceCfg cfgType="2" tableName="asn_keyword_cfg" groupReuse="true" groupId="userRegion4"></serviceCfg>
<userRegion regionKey="ASN_ID" regionColumn="userRegion5" userRegionPosition="0" ></userRegion>
</service>
<!-- <service id="3" functionId="5" serviceType="2" tableName="cfg_index_info" className="CfgIndexInfo" desc="IP丢弃">
<serviceCfg cfgType="1" tableName="ip_port_cfg" ></serviceCfg>
</service> -->
<!-- <service id="514" functionId="5" serviceType="1" tableName="cfg_index_info" className="CfgIndexInfo" desc="IP限速">
<serviceCfg cfgType="1" tableName="ip_port_cfg" ></serviceCfg>
<userRegion regionKey="Droprate" regionColumn="userRegion2" userRegionPosition="0"></userRegion>
</service> -->
<!-- IP Payload -->
<service id="517" functionId="212" serviceType="1" tableName="cfg_index_info" className="CfgIndexInfo" desc="IP Payload">
<serviceCfg cfgType="1" tableName="ip_port_cfg" ></serviceCfg>
@@ -43,10 +35,106 @@
<!-- IP Spoofing -->
<service id="518" functionId="214" serviceType="1" tableName="cfg_index_info" className="CfgIndexInfo" desc="IP Spoofing">
<serviceCfg cfgType="1" tableName="ip_port_cfg" ></serviceCfg>
<!-- <serviceCfg cfgType="2" tableName="intercept_pkt_bin" ></serviceCfg> --> -->
<!-- <serviceCfg cfgType="2" tableName="intercept_pkt_bin" ></serviceCfg> -->
<userRegion regionKey="nat_type" regionColumn="userRegion1" userRegionPosition="0"></userRegion>
<userRegion regionKey="spoofing_ip_pool" regionColumn="userRegion3" userRegionPosition="0"></userRegion>
</service>
<!-- APP、基础协议、 加密协议行为配置开始-->
<service id="35" functionId="407" serviceType="1" tableName="app_policy_cfg" className="AppPolicyCfg" desc="基础协议封堵">
<serviceCfg cfgType="1" tableName="ip_port_cfg" ></serviceCfg>
<serviceCfg cfgType="2" tableName="ntc_subscribe_id_cfg" ></serviceCfg>
<userRegion regionKey="PROTO_ID" regionColumn="appCode" userRegionPosition="1"></userRegion>
<userRegion regionKey="config_id" regionColumn="compileId" userRegionPosition="1"></userRegion>
</service>
<service id="147" functionId="407" serviceType="1" tableName="app_policy_cfg" className="AppPolicyCfg" desc="基础协议监测">
<serviceCfg cfgType="1" tableName="ip_port_cfg" ></serviceCfg>
<serviceCfg cfgType="2" tableName="ntc_subscribe_id_cfg" ></serviceCfg>
<userRegion regionKey="PROTO_ID" regionColumn="appCode" userRegionPosition="1"></userRegion>
<userRegion regionKey="config_id" regionColumn="compileId" userRegionPosition="1"></userRegion>
</service>
<service id="1059" functionId="407" serviceType="1" tableName="app_policy_cfg" className="AppPolicyCfg" desc="基础协议限速">
<serviceCfg cfgType="1" tableName="ip_port_cfg" ></serviceCfg>
<serviceCfg cfgType="2" tableName="ntc_subscribe_id_cfg" ></serviceCfg>
<userRegion regionKey="PROTO_ID" regionColumn="appCode" userRegionPosition="1"></userRegion>
<userRegion regionKey="Droprate" regionColumn="userRegion2" userRegionPosition="1"></userRegion>
<userRegion regionKey="config_id" regionColumn="compileId" userRegionPosition="1"></userRegion>
</service>
<service id="33" functionId="63" serviceType="1" tableName="app_policy_cfg" className="AppPolicyCfg" desc="APP封堵">
<serviceCfg cfgType="1" tableName="ip_port_cfg" ></serviceCfg>
<serviceCfg cfgType="2" tableName="ntc_subscribe_id_cfg" ></serviceCfg>
<userRegion regionKey="APP_ID" regionColumn="appCode" userRegionPosition="1"></userRegion>
<userRegion regionKey="BEHAV_ID" regionColumn="behavCode" userRegionPosition="1"></userRegion>
<userRegion regionKey="config_id" regionColumn="compileId" userRegionPosition="1"></userRegion>
<userRegion regionKey="DKC" regionColumn="userRegion4" userRegionPosition="1"></userRegion>
</service>
<service id="145" functionId="63" serviceType="1" tableName="app_policy_cfg" className="AppPolicyCfg" desc="APP监测">
<serviceCfg cfgType="1" tableName="ip_port_cfg" ></serviceCfg>
<serviceCfg cfgType="2" tableName="ntc_subscribe_id_cfg" ></serviceCfg>
<userRegion regionKey="APP_ID" regionColumn="appCode" userRegionPosition="1"></userRegion>
<userRegion regionKey="BEHAV_ID" regionColumn="behavCode" userRegionPosition="1"></userRegion>
<userRegion regionKey="config_id" regionColumn="compileId" userRegionPosition="1"></userRegion>
</service>
<service id="1056" functionId="63" serviceType="1" tableName="app_policy_cfg" className="AppPolicyCfg" desc="APP限速">
<serviceCfg cfgType="1" tableName="ip_port_cfg" ></serviceCfg>
<serviceCfg cfgType="2" tableName="ntc_subscribe_id_cfg" ></serviceCfg>
<userRegion regionKey="APP_ID" regionColumn="appCode" userRegionPosition="1"></userRegion>
<userRegion regionKey="BEHAV_ID" regionColumn="behavCode" userRegionPosition="1"></userRegion>
<userRegion regionKey="Droprate" regionColumn="userRegion2" userRegionPosition="1"></userRegion>
<userRegion regionKey="config_id" regionColumn="compileId" userRegionPosition="1"></userRegion>
</service>
<service id="36" functionId="408" serviceType="1" tableName="app_policy_cfg" className="AppPolicyCfg" desc="隧道协议行为封堵">
<serviceCfg cfgType="1" tableName="ip_port_cfg" ></serviceCfg>
<serviceCfg cfgType="2" tableName="ntc_subscribe_id_cfg" ></serviceCfg>
<userRegion regionKey="PROTO_ID" regionColumn="appCode" userRegionPosition="1"></userRegion>
<userRegion regionKey="BEHAV_ID" regionColumn="behavCode" userRegionPosition="1"></userRegion>
<userRegion regionKey="config_id" regionColumn="compileId" userRegionPosition="1"></userRegion>
</service>
<service id="148" functionId="408" serviceType="1" tableName="app_policy_cfg" className="AppPolicyCfg" desc="隧道协议行为监测">
<serviceCfg cfgType="1" tableName="ip_port_cfg" ></serviceCfg>
<serviceCfg cfgType="2" tableName="ntc_subscribe_id_cfg" ></serviceCfg>
<userRegion regionKey="PROTO_ID" regionColumn="appCode" userRegionPosition="1"></userRegion>
<userRegion regionKey="BEHAV_ID" regionColumn="behavCode" userRegionPosition="1"></userRegion>
<userRegion regionKey="config_id" regionColumn="compileId" userRegionPosition="1"></userRegion>
</service>
<service id="1060" functionId="408" serviceType="1" tableName="app_policy_cfg" className="AppPolicyCfg" desc="隧道协议行为限速">
<serviceCfg cfgType="1" tableName="ip_port_cfg" ></serviceCfg>
<serviceCfg cfgType="2" tableName="ntc_subscribe_id_cfg" ></serviceCfg>
<userRegion regionKey="PROTO_ID" regionColumn="appCode" userRegionPosition="1"></userRegion>
<userRegion regionKey="BEHAV_ID" regionColumn="behavCode" userRegionPosition="1"></userRegion>
<userRegion regionKey="Droprate" regionColumn="userRegion2" userRegionPosition="1"></userRegion>
<userRegion regionKey="config_id" regionColumn="compileId" userRegionPosition="1"></userRegion>
</service>
<service id="31" functionId="61" serviceType="1" tableName="cfg_index_info" className="CfgIndexInfo" desc="BGP封堵">
<serviceCfg cfgType="1" tableName="ip_port_cfg" ></serviceCfg>
<serviceCfg cfgType="2" tableName="ntc_bgp_as_cfg" ></serviceCfg>
<serviceCfg cfgType="2" tableName="ntc_subscribe_id_cfg" ></serviceCfg>
</service>
<service id="143" functionId="61" serviceType="1" tableName="cfg_index_info" className="CfgIndexInfo" desc="BGP监测">
<serviceCfg cfgType="1" tableName="ip_port_cfg" ></serviceCfg>
<serviceCfg cfgType="2" tableName="ntc_bgp_as_cfg" ></serviceCfg>
<serviceCfg cfgType="2" tableName="ntc_subscribe_id_cfg" ></serviceCfg>
</service>
<service id="18" functionId="7" serviceType="1" tableName="cfg_index_info" className="CfgIndexInfo" desc="DNS封堵">
<serviceCfg cfgType="1" tableName="ip_port_cfg" ></serviceCfg>
<serviceCfg cfgType="3" tableName="dns_domain_cfg" ></serviceCfg>
<serviceCfg cfgType="2" tableName="ntc_subscribe_id_cfg" ></serviceCfg>
<userRegion regionKey="DNS_STRATEGY" regionColumn="dnsStrategyId" userRegionPosition="1"></userRegion>
</service>
<service id="130" functionId="7" serviceType="1" tableName="cfg_index_info" className="CfgIndexInfo" desc="DNS监测">
<serviceCfg cfgType="1" tableName="ip_port_cfg" ></serviceCfg>
<serviceCfg cfgType="3" tableName="dns_domain_cfg" ></serviceCfg>
<serviceCfg cfgType="2" tableName="ntc_subscribe_id_cfg" ></serviceCfg>
</service>
<service id="131" functionId="34" serviceType="1" tableName="cfg_index_info" className="CfgIndexInfo" desc="SSL监测">
<serviceCfg cfgType="1" tableName="ip_port_cfg" ></serviceCfg>
<serviceCfg cfgType="2" tableName="ssl_keyword_cfg" ></serviceCfg>
<serviceCfg cfgType="2" tableName="ntc_subscribe_id_cfg" ></serviceCfg>
</service>
<service id="19" functionId="34" serviceType="1" tableName="cfg_index_info" className="CfgIndexInfo" desc="SSL封堵">
<serviceCfg cfgType="1" tableName="ip_port_cfg" ></serviceCfg>
<serviceCfg cfgType="2" tableName="ssl_keyword_cfg" ></serviceCfg>
<serviceCfg cfgType="2" tableName="ntc_subscribe_id_cfg" ></serviceCfg>
</service>
<service id="67" functionId="6" serviceType="1" tableName="cfg_index_info" className="CfgIndexInfo" desc="URL白名单">
<serviceCfg cfgType="2" tableName="http_url_cfg" ></serviceCfg>
</service>
@@ -85,36 +173,17 @@
<serviceCfg cfgType="3" tableName="http_res_head_cfg" ></serviceCfg>
<serviceCfg cfgType="2" tableName="ntc_subscribe_id_cfg" ></serviceCfg>
</service>
<service id="18" functionId="7" serviceType="1" tableName="cfg_index_info" className="CfgIndexInfo" desc="DNS封堵">
<serviceCfg cfgType="1" tableName="ip_port_cfg" ></serviceCfg>
<serviceCfg cfgType="3" tableName="dns_domain_cfg" ></serviceCfg>
<serviceCfg cfgType="2" tableName="ntc_subscribe_id_cfg" ></serviceCfg>
<userRegion regionKey="DNS_STRATEGY" regionColumn="dnsStrategyId" userRegionPosition="1"></userRegion>
</service>
<service id="130" functionId="7" serviceType="1" tableName="cfg_index_info" className="CfgIndexInfo" desc="DNS监测">
<serviceCfg cfgType="1" tableName="ip_port_cfg" ></serviceCfg>
<serviceCfg cfgType="3" tableName="dns_domain_cfg" ></serviceCfg>
<serviceCfg cfgType="2" tableName="ntc_subscribe_id_cfg" ></serviceCfg>
</service>
<service id="131" functionId="34" serviceType="1" tableName="cfg_index_info" className="CfgIndexInfo" desc="SSL监测">
<serviceCfg cfgType="1" tableName="ip_port_cfg" ></serviceCfg>
<serviceCfg cfgType="2" tableName="ssl_keyword_cfg" ></serviceCfg>
<serviceCfg cfgType="2" tableName="ntc_subscribe_id_cfg" ></serviceCfg>
</service>
<service id="19" functionId="34" serviceType="1" tableName="cfg_index_info" className="CfgIndexInfo" desc="SSL封堵">
<serviceCfg cfgType="1" tableName="ip_port_cfg" ></serviceCfg>
<serviceCfg cfgType="2" tableName="ssl_keyword_cfg" ></serviceCfg>
<serviceCfg cfgType="2" tableName="ntc_subscribe_id_cfg" ></serviceCfg>
</service>
<service id="66" functionId="37" serviceType="1" tableName="cfg_index_info" className="CfgIndexInfo" desc="邮件地址白名单">
<serviceCfg cfgType="3" tableName="mail_keyword_cfg" ></serviceCfg>
</service>
<service id="132" functionId="37" serviceType="1" tableName="cfg_index_info" className="CfgIndexInfo" desc="邮件地址监测">
<serviceCfg cfgType="2" tableName="mail_keyword_cfg" ></serviceCfg>
<!-- <service id="132" functionId="37" serviceType="1" tableName="cfg_index_info" className="CfgIndexInfo" desc="邮件地址监测">
<serviceCfg cfgType="3" tableName="mail_keyword_cfg" ></serviceCfg>
</service>
<service id="20" functionId="37" serviceType="1" tableName="cfg_index_info" className="CfgIndexInfo" desc="邮件地址封堵">
<serviceCfg cfgType="2" tableName="mail_keyword_cfg" ></serviceCfg>
</service>
<serviceCfg cfgType="3" tableName="mail_keyword_cfg" ></serviceCfg>
</service> -->
<service id="132" functionId="35" serviceType="1" tableName="cfg_index_info" className="CfgIndexInfo" desc="邮件监测">
<serviceCfg cfgType="1" tableName="ip_port_cfg" ></serviceCfg>
<serviceCfg cfgType="3" tableName="mail_keyword_cfg" ></serviceCfg>
@@ -142,7 +211,7 @@
<serviceCfg cfgType="2" tableName="p2p_keyword_cfg" ></serviceCfg>
<serviceCfg cfgType="2" tableName="ntc_subscribe_id_cfg" ></serviceCfg>
<userRegion regionKey="P2P_IP_TYPE" regionColumn="userRegion2" userRegionPosition="0"></userRegion>
<userRegion regionKey="HASH_TYPE" regionColumn="userRegion1" userRegionPosition="0"></userRegion>
<userRegion regionKey="P2P_HASH_TYPE" regionColumn="userRegion1" userRegionPosition="0"></userRegion>
</service>
<service id="146" functionId="510" serviceType="1" tableName="cfg_index_info" className="CfgIndexInfo" desc="P2P监测">
<serviceCfg cfgType="1" tableName="ip_port_cfg"></serviceCfg>
@@ -150,7 +219,7 @@
<serviceCfg cfgType="2" tableName="p2p_keyword_cfg" ></serviceCfg>
<serviceCfg cfgType="2" tableName="ntc_subscribe_id_cfg" ></serviceCfg>
<userRegion regionKey="P2P_IP_TYPE" regionColumn="userRegion2" userRegionPosition="0"></userRegion>
<userRegion regionKey="HASH_TYPE" regionColumn="userRegion1" userRegionPosition="0"></userRegion>
<userRegion regionKey="P2P_HASH_TYPE" regionColumn="userRegion1" userRegionPosition="0"></userRegion>
</service>
<service id="39" functionId="22" serviceType="1" tableName="cfg_index_info" className="CfgIndexInfo" desc="流媒体封堵">
<serviceCfg cfgType="1" tableName="ip_port_cfg" ></serviceCfg>
@@ -172,22 +241,28 @@
<serviceCfg cfgType="2" tableName="av_voip_account_cfg" ></serviceCfg>
<serviceCfg cfgType="2" tableName="ntc_subscribe_id_cfg" ></serviceCfg>
</service>
<service id="31" functionId="61" serviceType="1" tableName="cfg_index_info" className="CfgIndexInfo" desc="BGP封堵">
<serviceCfg cfgType="1" tableName="ip_port_cfg" ></serviceCfg>
<serviceCfg cfgType="2" tableName="ntc_bgp_as_cfg" ></serviceCfg>
<serviceCfg cfgType="2" tableName="ntc_subscribe_id_cfg" ></serviceCfg>
</service>
<service id="143" functionId="61" serviceType="1" tableName="cfg_index_info" className="CfgIndexInfo" desc="BGP监测">
<serviceCfg cfgType="1" tableName="ip_port_cfg" ></serviceCfg>
<serviceCfg cfgType="2" tableName="ntc_bgp_as_cfg" ></serviceCfg>
<serviceCfg cfgType="2" tableName="ntc_subscribe_id_cfg" ></serviceCfg>
</service>
<service id="399" functionId="52" serviceType="1" tableName="file_digest_cfg" className="FileDigestCfg" desc="文件摘要监测">
<serviceCfg cfgType="2" tableName="ntc_subscribe_id_cfg" ></serviceCfg>
</service>
<service id="273" functionId="52" serviceType="1" tableName="file_digest_cfg" className="FileDigestCfg" desc="文件摘要封堵">
<serviceCfg cfgType="2" tableName="ntc_subscribe_id_cfg" ></serviceCfg>
</service>
<service id="261" functionId="28" serviceType="2" tableName="av_file_sample_cfg" className="AvFileSampleCfg" desc="音频样例封堵"></service>
<service id="389" functionId="28" serviceType="2" tableName="av_file_sample_cfg" className="AvFileSampleCfg" desc="音频样例监测"></service>
<service id="262" functionId="29" serviceType="2" tableName="av_file_sample_cfg" className="AvFileSampleCfg" desc="视频样例封堵"></service>
<service id="390" functionId="29" serviceType="2" tableName="av_file_sample_cfg" className="AvFileSampleCfg" desc="视频样例监测"></service>
<service id="263" functionId="30" serviceType="2" tableName="av_file_sample_cfg" className="AvFileSampleCfg" desc="图片样例封堵"></service>
<service id="391" functionId="30" serviceType="2" tableName="av_file_sample_cfg" className="AvFileSampleCfg" desc="图片样例监测"></service>
<service id="264" functionId="31" serviceType="2" tableName="av_file_sample_cfg" className="AvFileSampleCfg" desc="VOIP样例封堵"></service>
<service id="392" functionId="31" serviceType="2" tableName="av_file_sample_cfg" className="AvFileSampleCfg" desc="VOIP样例监测"></service>
<service id="397" functionId="631" serviceType="2" tableName="av_file_sample_cfg" className="AvFileSampleCfg" desc="Logo监测"></service>
<service id="269" functionId="631" serviceType="2" tableName="av_file_sample_cfg" className="AvFileSampleCfg" desc="Logo封堵"></service>
<service id="398" functionId="632" serviceType="2" tableName="av_file_sample_cfg" className="AvFileSampleCfg" desc="人脸检测"></service>
<service id="270" functionId="632" serviceType="2" tableName="av_file_sample_cfg" className="AvFileSampleCfg" desc="人脸封堵"></service>
<service id="266" functionId="33" serviceType="2" tableName="av_sign_sample_cfg" className="AvSignSampleCfg" desc="色情场景封堵"></service>
<service id="394" functionId="33" serviceType="2" tableName="av_sign_sample_cfg" className="AvSignSampleCfg" desc="色情场景监测"></service>
<service id="5" functionId="301" serviceType="1" cfgType="1" tableName="ddos_ip_cfg" className="DdosIpCfg" desc="ANTI-DDOS DROP">
<userRegion regionKey="protocol" regionColumn="antiddosProtocol" userRegionPosition="1"></userRegion>
<userRegion regionKey="bps_threadshold" regionColumn="bpsThreadshold" userRegionPosition="1"></userRegion>
@@ -198,32 +273,32 @@
<userRegion regionKey="bps_threadshold" regionColumn="bpsThreadshold" userRegionPosition="1"></userRegion>
<userRegion regionKey="pps_threadshold" regionColumn="ppsThreadshold" userRegionPosition="1"></userRegion>
</service>
<service id="512" functionId="200" serviceType="1" tableName="cfg_index_info" className="CfgIndexInfo" desc="IP拦截监测">
<service id="512" functionId="200" serviceType="1" tableName="cfg_index_info" className="CfgIndexInfo" desc="拦截监测">
<serviceCfg cfgType="1" tableName="ip_port_cfg" ></serviceCfg>
<serviceCfg cfgType="2" tableName=" http_url_cfg" ></serviceCfg>
<userRegion regionKey="keyring_id" regionColumn="userRegion1" userRegionPosition="0" ></userRegion>
<userRegion regionKey="DOMAIN_ID" regionColumn="compileId" userRegionPosition="0"></userRegion>
<userRegion regionKey="DOMAIN_STR" regionColumn="cfgKeywords" userRegionPosition="2"></userRegion>
<userRegion regionKey="DOMAIN_STR" regionColumn="cfgKeywords" userRegionPosition="0"></userRegion>
<userRegion regionKey="DOMAIN_INTENSITY" regionColumn="userRegion5" userRegionPosition="0"></userRegion>
</service>
<!-- <service id="513" functionId="201" serviceType="1" tableName="cfg_index_info" className="CfgIndexInfo" desc="域名拦截监测">
<serviceCfg cfgType="2" tableName=" http_url_cfg" ></serviceCfg>
<serviceCfg cfgType="2" tableName="http_url_cfg" ></serviceCfg>
<userRegion regionKey="DOMAIN_ID" regionColumn="compileId" userRegionPosition="0"></userRegion>
<userRegion regionKey="DOMAIN_STR" regionColumn="cfgKeywords" userRegionPosition="2"></userRegion>
<userRegion regionKey="keyring_id" regionColumn="userRegion1" userRegionPosition="0"></userRegion>
<userRegion regionKey="intensity" regionColumn="userRegion5" userRegionPosition="0"></userRegion>
</service> -->
<service id="521" functionId="200" serviceType="1" tableName="cfg_index_info" className="CfgIndexInfo" desc="IP或域名拦截白名单">
<service id="521" functionId="200" serviceType="1" tableName="cfg_index_info" className="CfgIndexInfo" desc="拦截白名单">
<serviceCfg cfgType="1" tableName="ip_port_cfg" ></serviceCfg>
<serviceCfg cfgType="2" tableName="http_url_cfg" ></serviceCfg>
<userRegion regionKey="DOMAIN_ID" regionColumn="compileId" userRegionPosition="0"></userRegion>
<userRegion regionKey="DOMAIN_STR" regionColumn="cfgKeywords" userRegionPosition="2"></userRegion>
<userRegion regionKey="DOMAIN_STR" regionColumn="cfgKeywords" userRegionPosition="0"></userRegion>
</service>
<service id="514" functionId="200" serviceType="1" tableName="cfg_index_info" className="CfgIndexInfo" desc="域名拦截限速">
<service id="514" functionId="200" serviceType="1" tableName="cfg_index_info" className="CfgIndexInfo" desc="拦截限速">
<serviceCfg cfgType="1" tableName="ip_port_cfg" ></serviceCfg>
<serviceCfg cfgType="2" tableName=" http_url_cfg" ></serviceCfg>
<userRegion regionKey="DOMAIN_ID" regionColumn="compileId" userRegionPosition="0"></userRegion>
<userRegion regionKey="DOMAIN_STR" regionColumn="cfgKeywords" userRegionPosition="2"></userRegion>
<userRegion regionKey="DOMAIN_STR" regionColumn="cfgKeywords" userRegionPosition="0"></userRegion>
<userRegion regionKey="Droprate" regionColumn="userRegion2" userRegionPosition="0"></userRegion>
</service>
<service id="592" functionId="210" serviceType="1" tableName="cfg_index_info" className="CfgIndexInfo" desc="代理控制策略监测">
@@ -253,7 +328,7 @@
<serviceCfg cfgType="3" tableName="http_res_head_cfg" ></serviceCfg>
<serviceCfg cfgType="2" tableName="ntc_subscribe_id_cfg" ></serviceCfg>
<userRegion regionKey="code" regionColumn="userRegion1" userRegionPosition="0"></userRegion>
<userRegion regionKey="ur" regionColumn="userRegion2" userRegionPosition="0"></userRegion>
<userRegion regionKey="url" regionColumn="userRegion2" userRegionPosition="0"></userRegion>
<userRegion regionKey="content_file_id" regionColumn="userRegion3" userRegionPosition="0"></userRegion>
</service>
<service id="560" functionId="209" serviceType="1" tableName="cfg_index_info" className="CfgIndexInfo" desc="代理控制策略替换">
@@ -282,88 +357,18 @@
</service>
<!-- NTC或PROXY MAAT类配置结束 -->
<!-- APP、基础协议、 加密协议行为配置开始-->
<service id="35" functionId="407" serviceType="1" tableName="app_policy_cfg" className="AppPolicyCfg" desc="基础协议封堵">
<serviceCfg cfgType="1" tableName="ip_port_cfg" ></serviceCfg>
<serviceCfg cfgType="2" tableName="ntc_subscribe_id_cfg" ></serviceCfg>
<userRegion regionKey="PROTO_ID" regionColumn="appCode" userRegionPosition="1"></userRegion>
<userRegion regionKey="config_id" regionColumn="compileId" userRegionPosition="0"></userRegion>
</service>
<service id="147" functionId="407" serviceType="1" tableName="app_policy_cfg" className="AppPolicyCfg" desc="基础协议监测">
<serviceCfg cfgType="1" tableName="ip_port_cfg" ></serviceCfg>
<serviceCfg cfgType="2" tableName="ntc_subscribe_id_cfg" ></serviceCfg>
<userRegion regionKey="PROTO_ID" regionColumn="appCode" userRegionPosition="1"></userRegion>
<userRegion regionKey="config_id" regionColumn="compileId" userRegionPosition="0"></userRegion>
</service>
<service id="1059" functionId="407" serviceType="1" tableName="app_policy_cfg" className="AppPolicyCfg" desc="基础协议限速">
<serviceCfg cfgType="1" tableName="ip_port_cfg" ></serviceCfg>
<serviceCfg cfgType="2" tableName="ntc_subscribe_id_cfg" ></serviceCfg>
<userRegion regionKey="PROTO_ID" regionColumn="appCode" userRegionPosition="1"></userRegion>
<userRegion regionKey="Droprate" regionColumn="userRegion2" userRegionPosition="1"></userRegion>
<userRegion regionKey="config_id" regionColumn="compileId" userRegionPosition="1"></userRegion>
</service>
<service id="33" functionId="63" serviceType="1" tableName="app_policy_cfg" className="AppPolicyCfg" desc="APP封堵">
<serviceCfg cfgType="1" tableName="ip_port_cfg" ></serviceCfg>
<serviceCfg cfgType="2" tableName="ntc_subscribe_id_cfg" ></serviceCfg>
<userRegion regionKey="APP_ID" regionColumn="appCode" userRegionPosition="1"></userRegion>
<userRegion regionKey="BEHAV_ID" regionColumn="behavCode" userRegionPosition="1"></userRegion>
<userRegion regionKey="config_id" regionColumn="compileId" userRegionPosition="1"></userRegion>
<userRegion regionKey="DKC" regionColumn="userRegion4" userRegionPosition="1"></userRegion>
</service>
<service id="145" functionId="63" serviceType="1" tableName="app_policy_cfg" className="AppPolicyCfg" desc="APP监测">
<serviceCfg cfgType="1" tableName="ip_port_cfg" ></serviceCfg>
<serviceCfg cfgType="2" tableName="ntc_subscribe_id_cfg" ></serviceCfg>
<userRegion regionKey="APP_ID" regionColumn="appCode" userRegionPosition="1"></userRegion>
<userRegion regionKey="BEHAV_ID" regionColumn="behavCode" userRegionPosition="1"></userRegion>
<userRegion regionKey="config_id" regionColumn="compileId" userRegionPosition="1"></userRegion>
</service>
<service id="1056" functionId="63" serviceType="1" tableName="app_policy_cfg" className="AppPolicyCfg" desc="APP限速">
<serviceCfg cfgType="1" tableName="ip_port_cfg" ></serviceCfg>
<serviceCfg cfgType="2" tableName="ntc_subscribe_id_cfg" ></serviceCfg>
<userRegion regionKey="APP_ID" regionColumn="appCode" userRegionPosition="1"></userRegion>
<userRegion regionKey="BEHAV_ID" regionColumn="behavCode" userRegionPosition="1"></userRegion>
<userRegion regionKey="Droprate" regionColumn="userRegion2" userRegionPosition="1"></userRegion>
<userRegion regionKey="config_id" regionColumn="compileId" userRegionPosition="1"></userRegion>
</service>
<service id="36" functionId="408" serviceType="1" tableName="app_policy_cfg" className="AppPolicyCfg" desc="隧道协议行为封堵">
<serviceCfg cfgType="1" tableName="ip_port_cfg" ></serviceCfg>
<serviceCfg cfgType="2" tableName="ntc_subscribe_id_cfg" ></serviceCfg>
<userRegion regionKey="APP_ID" regionColumn="appCode" userRegionPosition="1"></userRegion>
<userRegion regionKey="BEHAV_ID" regionColumn="behavCode" userRegionPosition="1"></userRegion>
<userRegion regionKey="config_id" regionColumn="compileId" userRegionPosition="1"></userRegion>
</service>
<service id="148" functionId="408" serviceType="1" tableName="app_policy_cfg" className="AppPolicyCfg" desc="隧道协议行为监测">
<serviceCfg cfgType="1" tableName="ip_port_cfg" ></serviceCfg>
<serviceCfg cfgType="2" tableName="ntc_subscribe_id_cfg" ></serviceCfg>
<userRegion regionKey="APP_ID" regionColumn="appCode" userRegionPosition="1"></userRegion>
<userRegion regionKey="BEHAV_ID" regionColumn="behavCode" userRegionPosition="1"></userRegion>
<userRegion regionKey="config_id" regionColumn="compileId" userRegionPosition="1"></userRegion>
</service>
<service id="1060" functionId="408" serviceType="1" tableName="app_policy_cfg" className="AppPolicyCfg" desc="隧道协议行为限速">
<serviceCfg cfgType="1" tableName="ip_port_cfg" ></serviceCfg>
<serviceCfg cfgType="2" tableName="ntc_subscribe_id_cfg" ></serviceCfg>
<userRegion regionKey="APP_ID" regionColumn="appCode" userRegionPosition="1"></userRegion>
<userRegion regionKey="BEHAV_ID" regionColumn="behavCode" userRegionPosition="1"></userRegion>
<userRegion regionKey="Droprate" regionColumn="userRegion2" userRegionPosition="1"></userRegion>
<userRegion regionKey="config_id" regionColumn="compileId" userRegionPosition="1"></userRegion>
<service id="1152" functionId="560" serviceType="1" cfgType="2" tableName="app_topic_domain_cfg" className="AppTopicDomainCfg" desc="关注话题域名">
<userRegion regionKey="WEB_ID" regionColumn="" userRegionPosition="-1"></userRegion>
</service>
<service id="1028" functionId="405" serviceType="1" cfgType="1" tableName="app_ip_cfg" className="AppIpCfg" desc="APP IP特征">
<userRegion regionKey="APP_ID" regionColumn="appCode" userRegionPosition="1"></userRegion>
</service>
<!-- 20181208 App_advance表中要求删除,删除后不再进行全量下发
<service id="1024" functionId="402" serviceType="1" cfgType="3" tableName="app_http_cfg" className="AppHttpCfg" desc="APP HTTP单特征">
<userRegion regionKey="APP_ID" regionColumn="appCode" userRegionPosition="1"></userRegion>
</service>
-->
<service id="1026" functionId="403" serviceType="1" cfgType="2" tableName="app_domain_cfg" className="AppDomainCfg" desc="APP 域名特征">
<userRegion regionKey="APP_ID" regionColumn="appCode" userRegionPosition="1"></userRegion>
<userRegion regionKey="DOMAIN_ID" regionColumn="compileId" userRegionPosition="0"></userRegion>
<userRegion regionKey="DOMAIN_STR" regionColumn="cfgKeywords" userRegionPosition="1"></userRegion>
<userRegion regionKey="DOMAIN_INTENSITY" regionColumn="userRegion5" userRegionPosition="0"></userRegion>
</service>
<!-- APP SSL CERT -->
<!-- <service id="1029" functionId="520" serviceType="1" cfgType="3" tableName="app_ssl_cert_cfg" className="AppSslCertCfg" desc="APP SSL单特征">
<userRegion regionKey="APP_ID" regionColumn="appCode" userRegionPosition="1"></userRegion>
</service> -->
<service id="1025" functionId="563" serviceType="1" tableName="app_feature_index" className="AppFeatureIndex" desc="APP Payload组合特征">
<serviceCfg cfgType="1" tableName="app_ip_range_cfg" ></serviceCfg>
<serviceCfg cfgType="2" tableName="app_string_feature_cfg" ></serviceCfg>
@@ -378,14 +383,14 @@
<userRegion regionKey="APP_ID" regionColumn="appCode" userRegionPosition="1"></userRegion>
<userRegion regionKey="" regionColumn="userRegion1" userRegionPosition="0"></userRegion>
</service>
<service id="1029" functionId="566" serviceType="1" tableName="app_feature_index" className="AppFeatureIndex" desc="APP SSL组合特征">
<service id="1027" functionId="564" serviceType="1" tableName="app_feature_index" className="AppFeatureIndex" desc="APP DNS组合特征">
<serviceCfg cfgType="1" tableName="app_ip_range_cfg" ></serviceCfg>
<serviceCfg cfgType="2" tableName="app_string_feature_cfg" ></serviceCfg>
<serviceCfg cfgType="3" tableName="app_complex_feature_cfg" ></serviceCfg>
<userRegion regionKey="APP_ID" regionColumn="appCode" userRegionPosition="1"></userRegion>
<userRegion regionKey="" regionColumn="userRegion1" userRegionPosition="0"></userRegion>
</service>
<service id="1027" functionId="564" serviceType="1" tableName="app_feature_index" className="AppFeatureIndex" desc="APP DNS组合特征">
<service id="1029" functionId="566" serviceType="1" tableName="app_feature_index" className="AppFeatureIndex" desc="APP SSL组合特征">
<serviceCfg cfgType="1" tableName="app_ip_range_cfg" ></serviceCfg>
<serviceCfg cfgType="2" tableName="app_string_feature_cfg" ></serviceCfg>
<serviceCfg cfgType="3" tableName="app_complex_feature_cfg" ></serviceCfg>
@@ -401,36 +406,26 @@
<userRegion regionKey="" regionColumn="userRegion1" userRegionPosition="0"></userRegion>
</service>
-->
<service id="1152" functionId="560" serviceType="1" cfgType="2" tableName="app_topic_domain_cfg" className="AppTopicDomainCfg" desc="关注话题域名">
<userRegion regionKey="WEB_ID" regionColumn="" userRegionPosition="-1"></userRegion>
</service>
<!-- APP、基础协议、 加密协议行为配置结束-->
<!-- ASN IP -->
<service id="400" functionId="600" serviceType="1" cfgType="1" tableName="asn_ip_cfg" className="AppIpCfg" desc="ASN IP特征">
<userRegion regionKey="ASN" regionColumn="userRegion1" userRegionPosition="1"></userRegion>
</service>
<!-- 回调类配置开始 -->
<service id="261" functionId="28" serviceType="2" tableName="av_file_sample_cfg" className="AvFileSampleCfg" desc="音频样例封堵"></service>
<service id="389" functionId="28" serviceType="2" tableName="av_file_sample_cfg" className="AvFileSampleCfg" desc="音频样例监测"></service>
<service id="262" functionId="29" serviceType="2" tableName="av_file_sample_cfg" className="AvFileSampleCfg" desc="视频样例封堵"></service>
<service id="390" functionId="29" serviceType="2" tableName="av_file_sample_cfg" className="AvFileSampleCfg" desc="视频样例监测"></service>
<service id="263" functionId="30" serviceType="2" tableName="av_file_sample_cfg" className="AvFileSampleCfg" desc="图片样例封堵"></service>
<service id="391" functionId="30" serviceType="2" tableName="av_file_sample_cfg" className="AvFileSampleCfg" desc="图片样例监测"></service>
<service id="264" functionId="31" serviceType="2" tableName="av_file_sample_cfg" className="AvFileSampleCfg" desc="VOIP样例封堵"></service>
<service id="392" functionId="31" serviceType="2" tableName="av_file_sample_cfg" className="AvFileSampleCfg" desc="VOIP样例监测"></service>
<service id="397" functionId="631" serviceType="2" tableName="av_file_sample_cfg" className="AvFileSampleCfg" desc="Logo监测"></service>
<service id="269" functionId="631" serviceType="2" tableName="av_file_sample_cfg" className="AvFileSampleCfg" desc="Logo封堵"></service>
<service id="398" functionId="632" serviceType="2" tableName="av_file_sample_cfg" className="AvFileSampleCfg" desc="人脸检测"></service>
<service id="270" functionId="632" serviceType="2" tableName="av_file_sample_cfg" className="AvFileSampleCfg" desc="人脸封堵"></service>
<!-- 20181208 App_advance表中要求删除,删除后不再进行全量下发
<service id="1024" functionId="402" serviceType="1" cfgType="3" tableName="app_http_cfg" className="AppHttpCfg" desc="APP HTTP单特征">
<userRegion regionKey="APP_ID" regionColumn="appCode" userRegionPosition="1"></userRegion>
</service>
-->
<!-- APP SSL CERT -->
<!-- <service id="1029" functionId="520" serviceType="1" cfgType="3" tableName="app_ssl_cert_cfg" className="AppSslCertCfg" desc="APP SSL单特征">
<userRegion regionKey="APP_ID" regionColumn="appCode" userRegionPosition="1"></userRegion>
</service> -->
<service id="65" functionId="400" serviceType="2" tableName="dns_res_strategy" className="DnsResStrategy" desc="DNS响应策略"/>
<service id="64" functionId="400" serviceType="2" tableName="dns_ip_cfg" className="DnsIpCfg" desc="DNS欺骗IP"/>
<service id="520" functionId="570" serviceType="2" tableName="pxy_obj_keyring" className="PxyObjKeyring" desc="证书管理"></service>
<service id="640" functionId="571" serviceType="2" tableName="pxy_obj_trusted_ca_cert" className="PxyObjTrustedCaCert" desc="可信证书颁发机构"></service>
<service id="641" functionId="571" serviceType="2" tableName="pxy_obj_trusted_ca_crl" className="PxyObjTrustedCaCrl" desc="证书吊销列表"></service>
<!-- ASN IP -->
<service id="400" functionId="600" serviceType="1" cfgType="1" tableName="asn_ip_cfg" className="AppIpCfg" desc="ASN IP特征">
<userRegion regionKey="ASN" regionColumn="userRegion1" userRegionPosition="1"></userRegion>
</service>
<service id="65" functionId="400" serviceType="2" tableName="dns_res_strategy" className="DnsResStrategy" desc="DNS响应策略"/>
<service id="64" functionId="400" serviceType="2" tableName="dns_ip_cfg" className="DnsIpCfg" desc="DNS欺骗IP"/>
<service id="266" functionId="33" serviceType="2" tableName="av_sign_sample_cfg" className="AvSignSampleCfg" desc="色情场景封堵"></service>
<service id="394" functionId="33" serviceType="2" tableName="av_sign_sample_cfg" className="AvSignSampleCfg" desc="色情场景监测"></service>
<!-- 回调类配置结束-->
</serviceList>

View File

@@ -68,7 +68,7 @@ CREATE TABLE `schedule_exce_log` (
DROP TABLE IF EXISTS `schedule_exce_new`;
CREATE TABLE `schedule_exce_new` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键自增',
`schedule_id` bigint(20) NOT NULL COMMENT 'schedule_info 表的主键',
`schedule_id` bigint(20) NULL DEFAULT -1 COMMENT 'schedule_info 表的主键',
`exce_time` datetime(0) NULL DEFAULT NULL COMMENT '最新执行时间',
`issue_status` int(255) NULL DEFAULT NULL COMMENT '下发状态1生效0失效',
`issue_result` int(255) NULL DEFAULT NULL COMMENT '下发结果1成功0失败',

View File

@@ -225,6 +225,13 @@
<function-signature>java.util.List getFunctionServiceDictList(java.lang.Integer)</function-signature>
<example>${fns:getFunctionServiceDictList(key)}</example>
</function>
<function>
<description>获取service列表</description>
<name>getAllFunctionServiceDictList</name>
<function-class>com.nis.util.DictUtils</function-class>
<function-signature>java.util.List getFunctionServiceDictList()</function-signature>
<example>${fns:getAllFunctionServiceDictList()}</example>
</function>
<function>
<description>获取functionId下的region列表</description>
<name>getFunctionRegionDictList</name>

View File

@@ -80,7 +80,7 @@ $(function(){
<div class="form-group asnNo">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="asn_no"/></label>
<div class="col-md-6">
<input id="asnNo" class="form-control required asnMustExists number" type="text" name="asnId" value="${_cfg.asnId}" autocomplete="off" maxlength="15" ctx="${ctx }">
<input id="asnNo" class="form-control required asnNoUnique number" type="text" name="asnId" value="${_cfg.asnId}" autocomplete="off" maxlength="15" ctx="${ctx }">
</div>
<div for="asnId"></div>
</div>

View File

@@ -5,6 +5,7 @@
<title></title>
<script type="text/javascript">
$(document) .ready(function() {
top.$.jBox.closeTip();
$("#cfgFrom").validate({
submitHandler : function(form) {
top.$.jBox.tip("The system is being maintained and temporarily inaccessible.",'loading',{opacity:0.5,persistent:true});
@@ -12,11 +13,20 @@
},
})
})
function changeService(){
var serviceId=$("#service").val();
if(serviceId != 'undefined'){
var url=$("#cfgFrom").attr("action");
url=url.split("&")[0]+"&serviceId="+serviceId
$("#cfgFrom").attr("action",url);
}
}
</script>
</head>
<body>
<form id="cfgFrom" action="${ctx}/config/synchronization/configSync?cmd=1" method="post" class="form-horizontal">
<form id="cfgFrom" action="${ctx}/config/synchronization/configSync?cmd=1&serviceId=null" method="post" class="form-horizontal">
<div class="page-content">
<h3 class="page-title">
<c:forEach items="${fns:getDictList('currrent_sync_status') }" var="dict">
@@ -34,6 +44,17 @@
<c:if test="${dict.itemValue eq '-2' }">界面端同步失败</c:if>
</c:forEach>
</h2>
<div class="col-md-2">
<div class="col-md-12">
<select name="service" id="service" data-live-search="true" class="selectpicker show-tick form-control required " onchange="changeService()">
<option value="" ><spring:message code="all" /></option>
<c:forEach items="${fns:getAllFunctionServiceDictList()}"
var="_service">
<option value="${_service.serviceId }" ><spring:message code="${_service.serviceName }" /></option>
</c:forEach>
</select>
</div>
</div>
<button id="save" type="submit" class="btn green">
配置同步
</button>