HTTP配置审核界面配置转maat配置处理逻辑提交

This commit is contained in:
zhangwei
2018-05-29 12:48:27 +08:00
parent 9064b553fd
commit 3f9f9f3088
9 changed files with 375 additions and 40 deletions

View File

@@ -2,11 +2,15 @@ package com.nis.web.service;
import java.lang.reflect.Type;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import com.google.common.collect.Lists;
import com.google.gson.Gson;
@@ -17,7 +21,19 @@ import com.google.gson.JsonSerializationContext;
import com.google.gson.JsonSerializer;
import com.nis.domain.SysRole;
import com.nis.domain.SysUser;
import com.nis.domain.configuration.BaseCfg;
import com.nis.domain.configuration.BaseIpCfg;
import com.nis.domain.configuration.BaseStringCfg;
import com.nis.domain.configuration.ComplexkeywordCfg;
import com.nis.domain.configuration.HttpBodyCfg;
import com.nis.domain.configuration.IpPortCfg;
import com.nis.domain.maat.MaatCfg.GroupCfg;
import com.nis.domain.maat.MaatCfg.IpCfg;
import com.nis.domain.maat.MaatCfg.NumBoundaryCfg;
import com.nis.domain.maat.MaatCfg.StringCfg;
import com.nis.util.ConfigServiceUtil;
import com.nis.util.Configurations;
import com.nis.util.IpUtil;
import com.nis.util.StringUtils;
/**
@@ -238,5 +254,144 @@ public abstract class BaseService {
}).create();
return gson.toJson(obj);
}
/**
* 界面配置list转换为服务接口端的list
* @param dstList
* @param srcList
* @param cfgType1为IP类型2为字符串类型3为增强字符串4数值类型5摘要类,6回调类[但字符串类域配置和增强字符串域配置在接口参数中同属于strRegionList]
* @param groupId组号
* @return
*/
public static Map<String,List> cfgConvert(List dstList,List srcList,Integer cfgType,BaseCfg baseCfg,List groupRelationList){
GroupCfg group = new GroupCfg();
group.setGroupId(ConfigServiceUtil.getId(2, 1).get(0));
group.setCompileId(baseCfg.getCompileId());
group.setAuditTime(baseCfg.getAuditTime());
group.setIsValid(baseCfg.getIsValid());
groupRelationList.add(group);
Map<String,List> map = new HashMap();
if(cfgType==1){
List numRegionList = new ArrayList();
Integer groupId = 0;
for(int i=0;i<srcList.size();i++){
BaseIpCfg baseIpCfg = (BaseIpCfg) srcList.get(i);
IpCfg cfg = new IpCfg();
BeanUtils.copyProperties(baseIpCfg, cfg);
cfg.setGroupId(group.getGroupId());
cfg.setRegionId(ConfigServiceUtil.getId(3, 1).get(0));
cfg = ipConvert(cfg,baseIpCfg);
dstList.add(cfg);
//如果protocolId非空非零需要构造数值型域配置并且只构造一条
if(baseIpCfg.getProtocolId()!=null && baseIpCfg.getProtocolId()!=0 && groupId!=0){
if(groupId==0){//只构造一次配置分组
GroupCfg group1 = new GroupCfg();
groupId = ConfigServiceUtil.getId(2, 1).get(0);
group1.setGroupId(groupId);
group1.setCompileId(baseIpCfg.getCompileId());
group1.setAuditTime(baseIpCfg.getAuditTime());
group1.setIsValid(baseIpCfg.getIsValid());
groupRelationList.add(group1);
}
NumBoundaryCfg numCfg = new NumBoundaryCfg();
numCfg.setLowBoundary(baseIpCfg.getProtocolId());
numCfg.setUpBoundary(baseIpCfg.getProtocolId());
numCfg.setRegionId(ConfigServiceUtil.getId(3, 1).get(0));
numCfg.setAuditTime(baseIpCfg.getAuditTime());
numCfg.setGroupId(groupId);
numCfg.setCfgType(baseIpCfg.getCfgType());
numRegionList.add(numCfg);
map.put("numRegionList",numRegionList);
}
}
}else if(cfgType==2 || cfgType==3){
for(int i=0;i<srcList.size();i++){
StringCfg cfg = new StringCfg();
BeanUtils.copyProperties(srcList.get(i), cfg);
cfg.setGroupId(group.getGroupId());
cfg.setRegionId(ConfigServiceUtil.getId(3, 1).get(0));
dstList.add(cfg);
}
}else if(cfgType==4){
for(int i=0;i<srcList.size();i++){
com.nis.domain.maat.MaatCfg.NumBoundaryCfg cfg = new com.nis.domain.maat.MaatCfg.NumBoundaryCfg();
BeanUtils.copyProperties(srcList.get(i), cfg);
cfg.setGroupId(group.getGroupId());
cfg.setRegionId(ConfigServiceUtil.getId(3, 1).get(0));
dstList.add(cfg);
}
}else{
dstList.addAll(srcList);
}
map.put("groupList", groupRelationList);
map.put("dstList", dstList);
return map;
}
/**
* 界面IP配置转换为MAAT类或者回调类IP配置
* @param dstIp
* @param srcIp
* @return
*/
public static IpCfg ipConvert(IpCfg dstIp,BaseIpCfg srcIp){
if(srcIp.getSrcIpAddress()!=null){
if(srcIp.getSrcIpAddress().indexOf("/")!=-1){
Integer srcMaskNum = Integer.parseInt(srcIp.getSrcIpAddress().split("/")[1]);
dstIp.setSrcIpMask(IpUtil.convertMask(srcMaskNum));
dstIp.setSrcIp(srcIp.getSrcIpAddress().split("/")[0]);
}else if(srcIp.getSrcIpAddress().indexOf("-")!=-1){
dstIp.setSrcIp(srcIp.getSrcIpAddress().split("-")[0]);
dstIp.setSrcIpMask(IpUtil.getMask(srcIp.getSrcIpAddress().split("-")[0], srcIp.getSrcIpAddress().split("-")[1]));
}else{
dstIp.setSrcIp(srcIp.getSrcIpAddress());
dstIp.setSrcIpMask("0.0.0.0");
}
}else{
dstIp.setSrcIp("0.0.0.0");
dstIp.setSrcIpMask("0.0.0.0");
}
if(srcIp.getDestIpAddress()!=null){
if(srcIp.getDestIpAddress().indexOf("/")!=-1){
Integer dstMaskNum = Integer.parseInt(srcIp.getDestIpAddress().split("/")[1]);
dstIp.setDstIpMask(IpUtil.convertMask(dstMaskNum));
dstIp.setDstIp(srcIp.getDestIpAddress().split("/")[0]);
}else if(srcIp.getDestIpAddress().indexOf("-")!=-1){
dstIp.setDstIp(srcIp.getDestIpAddress().split("-")[0]);
dstIp.setDstIpMask(IpUtil.getMask(srcIp.getDestIpAddress().split("-")[0], srcIp.getDestIpAddress().split("-")[1]));
}else{
dstIp.setDstIp(srcIp.getDestIpAddress());
dstIp.setDstIpMask("0.0.0.0");
}
}else{
dstIp.setDstIp("0.0.0.0");
dstIp.setDstIpMask("0.0.0.0");
}
if(srcIp.getSrcPort()!=null){
if(srcIp.getSrcPort().indexOf("/")!=-1){
String srcMaskNum = srcIp.getSrcPort().split("/")[1];
dstIp.setSrcPortMask(srcMaskNum);
dstIp.setSrcPort(srcIp.getSrcPort().split("/")[0]);
}else{
dstIp.setSrcPort(srcIp.getSrcPort());
dstIp.setSrcPortMask("0");
}
}else{
dstIp.setSrcPort("0");
dstIp.setSrcPortMask("0");
}
if(srcIp.getDestPort()!=null){
if(srcIp.getDestPort().indexOf("/")!=-1){
String dstMaskNum = srcIp.getDestPort().split("/")[1];
dstIp.setDstPortMask(dstMaskNum);
dstIp.setDstPort(srcIp.getDestPort().split("/")[0]);
}else{
dstIp.setDstPort(srcIp.getDestPort());
dstIp.setDstPortMask("0");
}
}else{
dstIp.setDstPort("0");
dstIp.setDstPortMask("0");
}
return dstIp;
}
}