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

@@ -8,6 +8,8 @@
*/ */
package com.nis.domain.configuration; package com.nis.domain.configuration;
import com.nis.util.Constants;
/** /**
* @ClassName: AreaIpCfg.java * @ClassName: AreaIpCfg.java
* @Description: TODO * @Description: TODO
@@ -54,6 +56,14 @@ public class AreaIpCfg extends BaseIpCfg {
this.protocolId=0; this.protocolId=0;
this.isAreaEffective=0; this.isAreaEffective=0;
this.areaEffectiveIds=null; this.areaEffectiveIds=null;
this.cfgType=Constants.AREA_REGION;
this.cfgRegionCode=1;
this.protocol=0;
this.portPattern=1;
this.srcPort="0";
this.destPort="0";
this.direction=0;
this.destIpAddress="0.0.0.0";
} }
/** /**

View File

@@ -18,6 +18,7 @@ import com.nis.domain.configuration.BaseIpCfg;
import com.nis.domain.configuration.BaseStringCfg; import com.nis.domain.configuration.BaseStringCfg;
import com.nis.domain.configuration.ComplexkeywordCfg; import com.nis.domain.configuration.ComplexkeywordCfg;
import com.nis.domain.configuration.NumBoundaryCfg; import com.nis.domain.configuration.NumBoundaryCfg;
import com.nis.util.DateUtils;
/** /**
* @ClassName: MaatCfg.java * @ClassName: MaatCfg.java
@@ -72,7 +73,7 @@ public class MaatCfg implements Serializable {
@Expose @Expose
private Integer fatherCfgId; private Integer fatherCfgId;
@Expose @Expose
@SerializedName("opTime") @SerializedName("auditTime")
private Date auditTime; private Date auditTime;
@Expose @Expose
private List<GroupCfg> groupRelationList; private List<GroupCfg> groupRelationList;
@@ -84,6 +85,9 @@ public class MaatCfg implements Serializable {
private List<NumBoundaryCfg> numRegionList; private List<NumBoundaryCfg> numRegionList;
@Expose @Expose
private List<DigestCfg> digestRegionList; private List<DigestCfg> digestRegionList;
@Expose
@SerializedName("ipClientRangeList ")
private List<IpCfg> areaIpRegionList;
public static class GroupCfg{ public static class GroupCfg{
@Expose @Expose
@@ -93,7 +97,7 @@ public class MaatCfg implements Serializable {
@Expose @Expose
private Integer isValid; private Integer isValid;
@Expose @Expose
private Date opTime; private Date auditTime;
public Integer getGroupId() { public Integer getGroupId() {
return groupId; return groupId;
} }
@@ -112,11 +116,11 @@ public class MaatCfg implements Serializable {
public void setIsValid(Integer isValid) { public void setIsValid(Integer isValid) {
this.isValid = isValid; this.isValid = isValid;
} }
public Date getOpTime() { public Date getAuditTime() {
return opTime; return auditTime;
} }
public void setOpTime(Date opTime) { public void setAuditTime(Date auditTime) {
this.opTime = opTime; this.auditTime = auditTime;
} }
} }
@@ -142,7 +146,7 @@ public class MaatCfg implements Serializable {
@Expose @Expose
private Integer isValid; private Integer isValid;
@Expose @Expose
private Date opTime; private Date auditTime;
public Integer getRegionId() { public Integer getRegionId() {
return regionId; return regionId;
} }
@@ -197,11 +201,11 @@ public class MaatCfg implements Serializable {
public void setIsValid(Integer isValid) { public void setIsValid(Integer isValid) {
this.isValid = isValid; this.isValid = isValid;
} }
public Date getOpTime() { public Date getAuditTime() {
return opTime; return auditTime;
} }
public void setOpTime(Date opTime) { public void setAuditTime(Date auditTime) {
this.opTime = opTime; this.auditTime = auditTime;
} }
} }
@@ -214,22 +218,27 @@ public class MaatCfg implements Serializable {
@SerializedName("tableName") @SerializedName("tableName")
private String cfgType; private String cfgType;
@Expose @Expose
@SerializedName("addrType")
private Integer ipType; private Integer ipType;
@Expose @Expose
private String srcIp; private String srcIp;
@Expose @Expose
@SerializedName("maskSrcIp")
private String srcIpMask ; private String srcIpMask ;
@Expose @Expose
private String srcPort ; private String srcPort ;
@Expose @Expose
@SerializedName("maskSrcPort")
private String srcPortMask ; private String srcPortMask ;
@Expose @Expose
private String dstIp ; private String dstIp ;
@Expose @Expose
@SerializedName("maskDstIp")
private String dstIpMask ; private String dstIpMask ;
@Expose @Expose
private String dstPort ; private String dstPort ;
@Expose @Expose
@SerializedName("maskDstPort")
private String dstPortMask ; private String dstPortMask ;
@Expose @Expose
private Integer direction ; private Integer direction ;
@@ -238,7 +247,7 @@ public class MaatCfg implements Serializable {
@Expose @Expose
private Integer isValid; private Integer isValid;
@Expose @Expose
private Date opTime; private Date auditTime;
public Integer getRegionId() { public Integer getRegionId() {
return regionId; return regionId;
} }
@@ -329,11 +338,11 @@ public class MaatCfg implements Serializable {
public void setIsValid(Integer isValid) { public void setIsValid(Integer isValid) {
this.isValid = isValid; this.isValid = isValid;
} }
public Date getOpTime() { public Date getAuditTime() {
return opTime; return auditTime;
} }
public void setOpTime(Date opTime) { public void setAuditTime(Date auditTime) {
this.opTime = opTime; this.auditTime = auditTime;
} }
} }
public static class NumBoundaryCfg{ public static class NumBoundaryCfg{
@@ -351,7 +360,7 @@ public class MaatCfg implements Serializable {
@Expose @Expose
private Integer isValid; private Integer isValid;
@Expose @Expose
private Date opTime; private Date auditTime;
public Integer getRegionId() { public Integer getRegionId() {
return regionId; return regionId;
} }
@@ -388,11 +397,11 @@ public class MaatCfg implements Serializable {
public void setIsValid(Integer isValid) { public void setIsValid(Integer isValid) {
this.isValid = isValid; this.isValid = isValid;
} }
public Date getOpTime() { public Date getAuditTime() {
return opTime; return auditTime;
} }
public void setOpTime(Date opTime) { public void setAuditTime(Date auditTime) {
this.opTime = opTime; this.auditTime = auditTime;
} }
}public static class DigestCfg{ }public static class DigestCfg{
@Expose @Expose
@@ -411,7 +420,7 @@ public class MaatCfg implements Serializable {
@Expose @Expose
private Integer isValid; private Integer isValid;
@Expose @Expose
private Date opTime; private Date auditTime;
public Integer getRegionId() { public Integer getRegionId() {
return regionId; return regionId;
} }
@@ -454,11 +463,11 @@ public class MaatCfg implements Serializable {
public void setIsValid(Integer isValid) { public void setIsValid(Integer isValid) {
this.isValid = isValid; this.isValid = isValid;
} }
public Date getOpTime() { public Date getAuditTime() {
return opTime; return auditTime;
} }
public void setOpTime(Date opTime) { public void setAuditTime(Date auditTime) {
this.opTime = opTime; this.auditTime = auditTime;
} }
} }
public Integer getCompileId() { public Integer getCompileId() {
@@ -611,4 +620,20 @@ public class MaatCfg implements Serializable {
public void setDigestRegionList(List<DigestCfg> digestRegionList) { public void setDigestRegionList(List<DigestCfg> digestRegionList) {
this.digestRegionList = digestRegionList; this.digestRegionList = digestRegionList;
} }
public List<IpCfg> getAreaIpRegionList() {
return areaIpRegionList;
}
public void setAreaIpRegionList(List<IpCfg> areaIpRegionList) {
this.areaIpRegionList = areaIpRegionList;
}
public void initDefaultValue() {
this.doLog=2;
this.doBlackList=1;
this.configPercent=100;
this.configOption=1;
this.startTime=new Date();
this.endTime=DateUtils.addYears(new Date(), 81);
this.fatherCfgId=0;
}
} }

View File

@@ -291,5 +291,6 @@ public final class Constants {
public static final String HTTP_URL_REGION = Configurations.getStringProperty("http_url_region","http_url"); public static final String HTTP_URL_REGION = Configurations.getStringProperty("http_url_region","http_url");
public static final String VOIP_IP_REGION = Configurations.getStringProperty("voip_ip","av_voip_ip"); public static final String VOIP_IP_REGION = Configurations.getStringProperty("voip_ip","av_voip_ip");
public static final String VOIP_ACCOUNT_REGION = Configurations.getStringProperty("voip_account","av_voip_account"); public static final String VOIP_ACCOUNT_REGION = Configurations.getStringProperty("voip_account","av_voip_account");
public static final String MAAT_VERSION = Configurations.getStringProperty("maat_version","1.0");
} }

View File

@@ -15,6 +15,7 @@ import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import com.nis.domain.Page; import com.nis.domain.Page;
import com.nis.domain.configuration.BaseIpCfg; import com.nis.domain.configuration.BaseIpCfg;
@@ -24,8 +25,10 @@ import com.nis.domain.configuration.HttpReqHeadCfg;
import com.nis.domain.configuration.HttpResHeadCfg; import com.nis.domain.configuration.HttpResHeadCfg;
import com.nis.domain.configuration.HttpUrlCfg; import com.nis.domain.configuration.HttpUrlCfg;
import com.nis.domain.configuration.IpPortCfg; import com.nis.domain.configuration.IpPortCfg;
import com.nis.exceptions.MaatConvertException;
import com.nis.util.Constants; import com.nis.util.Constants;
import com.nis.web.controller.BaseController; import com.nis.web.controller.BaseController;
import com.nis.web.security.UserUtils;
/** /**
* 白名单 * 白名单
@@ -156,4 +159,31 @@ public class WebsiteController extends BaseController{
model.addAttribute("index", index); model.addAttribute("index", index);
return "/cfg/website/httpSubList"; return "/cfg/website/httpSubList";
} }
@RequestMapping(value = {"updateHttpCfgValid"})
@RequiresPermissions(value={"website:http:config"})
public String updateHttpCfgValid(Integer isAudit,Integer isValid,String ids,Integer functionId) {
websiteCfgService.updateHttpCfgValid(isAudit,isValid,ids);
return "redirect:" + adminPath +"/ntc/website/httpList?functionId="+functionId;
}
@RequestMapping(value = {"auditHttpCfg"})
@RequiresPermissions(value={"website:http:audit"})
public String auditHttpCfg(Integer isAudit,Integer isValid,String ids,Integer functionId, RedirectAttributes redirectAttributes) {
CfgIndexInfo entity = new CfgIndexInfo();
String[] idArray = ids.split(",");
for(String id :idArray){
entity = websiteCfgService.getHttpCfg(Long.parseLong(id));
entity.setIsAudit(isAudit);
entity.setIsValid(isValid);
entity.setAuditorId(UserUtils.getUser().getId());
entity.setAuditTime(new Date());
try {
websiteCfgService.auditHttpCfg(entity,isAudit);
} catch (MaatConvertException e) {
e.printStackTrace();
logger.info("http配置下发失败"+e.getMessage());
addMessage(redirectAttributes, e.getMessage());
}
}
return "redirect:" + adminPath +"/ntc/website/httpList?functionId="+functionId;
}
} }

View File

@@ -2,6 +2,8 @@ package com.nis.web.dao.configuration;
import java.util.List; import java.util.List;
import com.nis.domain.configuration.AvFileSampleCfg;
import com.nis.domain.configuration.AvSignSampleCfg;
import com.nis.domain.configuration.CfgIndexInfo; import com.nis.domain.configuration.CfgIndexInfo;
import com.nis.domain.configuration.HttpBodyCfg; import com.nis.domain.configuration.HttpBodyCfg;
import com.nis.domain.configuration.HttpReqHeadCfg; import com.nis.domain.configuration.HttpReqHeadCfg;
@@ -40,10 +42,9 @@ public interface WebsiteCfgDao extends CrudDao<CfgIndexInfo>{
public void deleteHttpResHdrCfg(CfgIndexInfo entity); public void deleteHttpResHdrCfg(CfgIndexInfo entity);
public void deleteHttpBodyCfg(CfgIndexInfo entity); public void deleteHttpBodyCfg(CfgIndexInfo entity);
public void updateCfgIndex(CfgIndexInfo entity); public void updateCfgIndex(CfgIndexInfo entity);
public void updateHttpIpCfg(IpPortCfg entity); public void updateHttpCfgValid(CfgIndexInfo entity);
public void updateHttpUrlCfg(HttpUrlCfg entity); public void auditHttpCfg(CfgIndexInfo entity);
public void updateHttpReqHdrCfg(HttpReqHeadCfg entity);
public void updateHttpResHdrCfg(HttpResHeadCfg entity);
public void updateHttpBodyCfg(HttpBodyCfg entity);
} }

View File

@@ -2,11 +2,15 @@ package com.nis.web.service;
import java.lang.reflect.Type; import java.lang.reflect.Type;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.gson.Gson; import com.google.gson.Gson;
@@ -17,7 +21,19 @@ import com.google.gson.JsonSerializationContext;
import com.google.gson.JsonSerializer; import com.google.gson.JsonSerializer;
import com.nis.domain.SysRole; import com.nis.domain.SysRole;
import com.nis.domain.SysUser; 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.Configurations;
import com.nis.util.IpUtil;
import com.nis.util.StringUtils; import com.nis.util.StringUtils;
/** /**
@@ -238,5 +254,144 @@ public abstract class BaseService {
}).create(); }).create();
return gson.toJson(obj); 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;
}
} }

View File

@@ -3,9 +3,11 @@ package com.nis.web.service.configuration;
import java.beans.PropertyDescriptor; import java.beans.PropertyDescriptor;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.lang.reflect.Modifier; import java.lang.reflect.Modifier;
import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.BeansException; import org.springframework.beans.BeansException;
@@ -17,6 +19,8 @@ import org.springframework.util.ClassUtils;
import com.nis.domain.Page; import com.nis.domain.Page;
import com.nis.domain.configuration.AreaIpCfg; import com.nis.domain.configuration.AreaIpCfg;
import com.nis.domain.configuration.AvFileSampleCfg;
import com.nis.domain.configuration.AvSignSampleCfg;
import com.nis.domain.configuration.BaseIpCfg; import com.nis.domain.configuration.BaseIpCfg;
import com.nis.domain.configuration.CfgIndexInfo; import com.nis.domain.configuration.CfgIndexInfo;
import com.nis.domain.configuration.HttpBodyCfg; import com.nis.domain.configuration.HttpBodyCfg;
@@ -24,11 +28,22 @@ import com.nis.domain.configuration.HttpReqHeadCfg;
import com.nis.domain.configuration.HttpResHeadCfg; import com.nis.domain.configuration.HttpResHeadCfg;
import com.nis.domain.configuration.HttpUrlCfg; import com.nis.domain.configuration.HttpUrlCfg;
import com.nis.domain.configuration.IpPortCfg; import com.nis.domain.configuration.IpPortCfg;
import com.nis.domain.maat.MaatCfg;
import com.nis.domain.maat.MaatCfg.NumBoundaryCfg;
import com.nis.domain.maat.ToMaatBean;
import com.nis.domain.maat.ToMaatResult;
import com.nis.domain.maat.MaatCfg.DigestCfg;
import com.nis.domain.maat.MaatCfg.GroupCfg;
import com.nis.domain.maat.MaatCfg.IpCfg;
import com.nis.domain.maat.MaatCfg.StringCfg;
import com.nis.exceptions.MaatConvertException; import com.nis.exceptions.MaatConvertException;
import com.nis.util.ConfigServiceUtil; import com.nis.util.ConfigServiceUtil;
import com.nis.util.Constants;
import com.nis.util.IpUtil;
import com.nis.web.dao.configuration.AreaIpCfgDao; import com.nis.web.dao.configuration.AreaIpCfgDao;
import com.nis.web.dao.configuration.IpCfgDao; import com.nis.web.dao.configuration.IpCfgDao;
import com.nis.web.dao.configuration.WebsiteCfgDao; import com.nis.web.dao.configuration.WebsiteCfgDao;
import com.nis.web.security.UserUtils;
import com.nis.web.service.BaseService; import com.nis.web.service.BaseService;
import com.nis.web.service.CrudService; import com.nis.web.service.CrudService;
@@ -139,6 +154,7 @@ public class WebsiteCfgService extends CrudService<WebsiteCfgDao,CfgIndexInfo> {
//保存区域IP信息 //保存区域IP信息
if(entity.getAreaCfg()!=null){ if(entity.getAreaCfg()!=null){
for(AreaIpCfg cfg:entity.getAreaCfg()){ for(AreaIpCfg cfg:entity.getAreaCfg()){
cfg.initDefaultValue();
BeanUtils.copyProperties(entity, cfg,new String[]{"cfgRegionCode","cfgType"}); BeanUtils.copyProperties(entity, cfg,new String[]{"cfgRegionCode","cfgType"});
areaIpCfgDao.saveAreaIpCfg(cfg); areaIpCfgDao.saveAreaIpCfg(cfg);
} }
@@ -203,13 +219,110 @@ public class WebsiteCfgService extends CrudService<WebsiteCfgDao,CfgIndexInfo> {
//保存区域IP信息 //保存区域IP信息
if(entity.getAreaCfg()!=null){ if(entity.getAreaCfg()!=null){
for(AreaIpCfg cfg:entity.getAreaCfg()){ for(AreaIpCfg cfg:entity.getAreaCfg()){
cfg.initDefaultValue();
BeanUtils.copyProperties(entity, cfg,new String[]{"cfgDesc","cfgRegionCode","cfgType"}); BeanUtils.copyProperties(entity, cfg,new String[]{"cfgDesc","cfgRegionCode","cfgType"});
areaIpCfgDao.saveAreaIpCfg(cfg); areaIpCfgDao.saveAreaIpCfg(cfg);
} }
} }
} }
}
public void updateHttpCfgValid(Integer isAudit,Integer isValid,String ids){
CfgIndexInfo entity = new CfgIndexInfo();
String[] idArray = ids.split(",");
for(String id :idArray){
entity.setCfgId(Long.parseLong(id));
entity.setIsAudit(isAudit);
entity.setIsValid(isValid);
entity.setEditorId(UserUtils.getUser().getId());
entity.setEditTime(new Date());
websiteCfgDao.updateHttpCfgValid(entity);
}
}
public void auditHttpCfg(CfgIndexInfo entity,Integer isAudit) throws MaatConvertException{
//修改数据库审核状态信息
websiteCfgDao.auditHttpCfg(entity);
ToMaatBean maatBean = new ToMaatBean();
MaatCfg maatCfg = new MaatCfg();
maatCfg.initDefaultValue();
BeanUtils.copyProperties(entity, maatCfg);
//一条配置提交一次综合服务
if(isAudit==1){
entity = this.getHttpCfg(entity.getCfgId());
List<MaatCfg> configCompileList = new ArrayList();
List<GroupCfg> groupRelationList = new ArrayList();
List<IpCfg> ipRegionList = new ArrayList();
List<StringCfg> strRegionList = new ArrayList();
List<NumBoundaryCfg> numRegionList = new ArrayList();
List<DigestCfg> digestRegionList = new ArrayList();
List<IpCfg> areaIpRegionList = new ArrayList();
if(entity.getIpPortList()!=null && entity.getIpPortList().size()>0){
Map<String,List> map = cfgConvert(ipRegionList,entity.getIpPortList(),1,entity,groupRelationList);
groupRelationList=map.get("groupList");
ipRegionList=map.get("dstList");
numRegionList.addAll(map.get("numRegionList"));
}
if(entity.getHttpUrlList()!=null && entity.getHttpUrlList().size()>0){
Map<String,List> map = cfgConvert(strRegionList,entity.getHttpUrlList(),2,entity,groupRelationList);
groupRelationList=map.get("groupList");
strRegionList=map.get("dstList");
}
if(entity.getHttpReqHdrList()!=null && entity.getHttpReqHdrList().size()>0){
Map<String,List> map = cfgConvert(strRegionList,entity.getHttpReqHdrList(),2,entity,groupRelationList);
groupRelationList=map.get("groupList");
strRegionList=map.get("dstList");
}
if(entity.getHttpResHdrList()!=null && entity.getHttpResHdrList().size()>0){
Map<String,List> map = cfgConvert(strRegionList,entity.getHttpResHdrList(),2,entity,groupRelationList);
groupRelationList=map.get("groupList");
strRegionList=map.get("dstList");
}
if(entity.getHttpReqBodyList()!=null && entity.getHttpReqBodyList().size()>0){
Map<String,List> map = cfgConvert(strRegionList,entity.getHttpReqBodyList(),2,entity,groupRelationList);
groupRelationList=map.get("groupList");
strRegionList=map.get("dstList");
}
if(entity.getHttpResBodyList()!=null && entity.getHttpResBodyList().size()>0){
Map<String,List> map = cfgConvert(strRegionList,entity.getHttpResBodyList(),2,entity,groupRelationList);
groupRelationList=map.get("groupList");
strRegionList=map.get("dstList");
}
//保存区域IP信息
if(entity.getAreaCfg()!=null && entity.getAreaCfg().size()>0){
Map<String,List> map = cfgConvert(areaIpRegionList,entity.getAreaCfg(),1,entity,groupRelationList);
groupRelationList=map.get("groupList");
areaIpRegionList=map.get("dstList");
}
maatCfg.setAction(entity.getAction());
maatCfg.setAuditTime(entity.getAuditTime());
maatCfg.setIpRegionList(ipRegionList);
maatCfg.setStrRegionList(strRegionList);
maatCfg.setNumRegionList(numRegionList);
maatCfg.setDigestRegionList(digestRegionList);
maatCfg.setGroupRelationList(groupRelationList);
maatCfg.setGroupNum(groupRelationList.size());
maatCfg.setAreaIpRegionList(areaIpRegionList);
configCompileList.add(maatCfg);
maatBean.setConfigCompileList(configCompileList);
maatBean.setAuditTime(entity.getAuditTime());
maatBean.setCreatorName(entity.getCurrentUser().getName());
maatBean.setVersion(Constants.MAAT_VERSION);
//调用服务接口下发配置数据
String json=gsonToJson(maatBean);
logger.info("http配置下发配置参数"+json);
//调用服务接口下发配置
ToMaatResult result = ConfigServiceUtil.postCallbackCfg(json);
logger.info("http配置下发响应信息"+result.getMsg());
}else if(isAudit==3){
//调用服务接口取消配置
String json=gsonToJson(maatBean);
logger.info("http配置下发配置参数"+json);
//调用服务接口下发配置
ToMaatResult result = ConfigServiceUtil.put(json,2);
logger.info("http配置取消配置响应信息"+result.getMsg());
}
} }
} }

View File

@@ -57,7 +57,7 @@ public class MaatCfgConverTest {
groupId++; groupId++;
group.setGroupId(groupId); group.setGroupId(groupId);
group.setCompileId(1); group.setCompileId(1);
group.setOpTime(new Date()); group.setAuditTime(new Date());
group.setIsValid(1); group.setIsValid(1);
groupList.add(group); groupList.add(group);
} }
@@ -100,7 +100,7 @@ public class MaatCfgConverTest {
groupId++; groupId++;
group.setGroupId(groupId); group.setGroupId(groupId);
group.setCompileId(1); group.setCompileId(1);
group.setOpTime(new Date()); group.setAuditTime(new Date());
group.setIsValid(1); group.setIsValid(1);
groupList.add(group); groupList.add(group);
} }
@@ -135,7 +135,7 @@ public class MaatCfgConverTest {
groupId++; groupId++;
group.setGroupId(groupId); group.setGroupId(groupId);
group.setCompileId(1); group.setCompileId(1);
group.setOpTime(new Date()); group.setAuditTime(new Date());
group.setIsValid(1); group.setIsValid(1);
groupList.add(group); groupList.add(group);
} }

View File

@@ -177,7 +177,7 @@
<div class="pull-right"> <div class="pull-right">
<shiro:hasPermission name="website:http:config"> <shiro:hasPermission name="website:http:config">
<sys:delRow url="${ctx}/ntc/website/httpForm" id="contentTable" label="update"></sys:delRow> <sys:delRow url="${ctx}/ntc/website/httpForm" id="contentTable" label="update"></sys:delRow>
<sys:delRow url="${ctx}/ntc/website/updateAvVoip?isValid=-1&functionId=${cfg.functionId }" id="contentTable" label="delete"></sys:delRow> <sys:delRow url="${ctx}/ntc/website/updateHttpCfgValid?isValid=-1&functionId=${cfg.functionId }" id="contentTable" label="delete"></sys:delRow>
</shiro:hasPermission> </shiro:hasPermission>
<shiro:hasPermission name="website:http:audit"> <shiro:hasPermission name="website:http:audit">
<div class="btn-group"> <div class="btn-group">
@@ -186,9 +186,9 @@
<i class="fa fa-angle-down"></i> <i class="fa fa-angle-down"></i>
</button> </button>
<ul class="dropdown-menu pull-right"> <ul class="dropdown-menu pull-right">
<li><sys:delRow url="${ctx}/ntc/website/auditHttp?isAudit=1&isValid=1&functionId=${cfg.functionId }" id="contentTable" label="approved"></sys:delRow></li> <li><sys:delRow url="${ctx}/ntc/website/auditHttpCfg?isAudit=1&isValid=1&functionId=${cfg.functionId }" id="contentTable" label="approved"></sys:delRow></li>
<li><sys:delRow url="${ctx}/ntc/website/auditHttp?isAudit=2&isValid=0&functionId=${cfg.functionId }" id="contentTable" label="unapproved"></sys:delRow></li> <li><sys:delRow url="${ctx}/ntc/website/auditHttpCfg?isAudit=2&isValid=0&functionId=${cfg.functionId }" id="contentTable" label="unapproved"></sys:delRow></li>
<li><sys:delRow url="${ctx}/ntc/website/auditHttp?isAudit=3&isValid=0&functionId=${cfg.functionId }" id="contentTable" label="cancelPass"></sys:delRow></li> <li><sys:delRow url="${ctx}/ntc/website/auditHttpCfg?isAudit=3&isValid=0&functionId=${cfg.functionId }" id="contentTable" label="cancelPass"></sys:delRow></li>
</ul> </ul>
</div> </div>
</shiro:hasPermission> </shiro:hasPermission>