diff --git a/src/main/java/com/nis/domain/basics/AsnIpCfg.java b/src/main/java/com/nis/domain/basics/AsnIpCfg.java new file mode 100644 index 000000000..765362c9d --- /dev/null +++ b/src/main/java/com/nis/domain/basics/AsnIpCfg.java @@ -0,0 +1,136 @@ +package com.nis.domain.basics; + +import com.google.gson.annotations.Expose; +import com.google.gson.annotations.SerializedName; +import com.nis.domain.configuration.BaseCfg; + +public class AsnIpCfg extends BaseCfg { + + /** + * + */ + private static final long serialVersionUID = 398247881810945300L; + private static final String tableName="asn_ip_cfg"; + @Expose + private Integer regionId; + @Expose + private String ratelimit; + @Expose + @SerializedName("ipType") + private Integer ipType; + private Integer ipPattern; + private String srcIpAddress; + private String destIpAddress; + private Integer portPattern; + private String srcPort; + private String destPort; + private String asnIpGroupName;//asn组名 + private Integer asnIpGroup;//asn号 + /** + * 方向 + */ + @Expose + @SerializedName("direction") + private Integer direction ; + /** + * 方向 + */ + @Expose + @SerializedName("protocol") + private Integer protocol ; + private Integer protocolId; + private Integer compileId=0; + + public Integer getCompileId() { + return compileId; + } + public Integer getProtocolId() { + return protocolId; + } + public void setProtocolId(Integer protocolId) { + this.protocolId = protocolId; + } + + public String getAsnIpGroupName() { + return asnIpGroupName; + } + public void setAsnIpGroupName(String asnIpGroupName) { + this.asnIpGroupName = asnIpGroupName; + } + public Integer getAsnIpGroup() { + return asnIpGroup; + } + public void setAsnIpGroup(Integer asnIpGroup) { + this.asnIpGroup = asnIpGroup; + } + public String getRatelimit() { + return ratelimit; + } + public void setRatelimit(String ratelimit) { + this.ratelimit = ratelimit; + } + public Integer getIpType() { + return ipType; + } + public void setIpType(Integer ipType) { + this.ipType = ipType; + } + public Integer getIpPattern() { + return ipPattern; + } + public void setIpPattern(Integer ipPattern) { + this.ipPattern = ipPattern; + } + public String getSrcIpAddress() { + return srcIpAddress; + } + public void setSrcIpAddress(String srcIpAddress) { + this.srcIpAddress = srcIpAddress; + } + public String getDestIpAddress() { + return destIpAddress; + } + public void setDestIpAddress(String destIpAddress) { + this.destIpAddress = destIpAddress; + } + public Integer getPortPattern() { + return portPattern; + } + public void setPortPattern(Integer portPattern) { + this.portPattern = portPattern; + } + public String getSrcPort() { + return srcPort; + } + public void setSrcPort(String srcPort) { + this.srcPort = srcPort; + } + public String getDestPort() { + return destPort; + } + public void setDestPort(String destPort) { + this.destPort = destPort; + } + public Integer getDirection() { + return direction; + } + public void setDirection(Integer direction) { + this.direction = direction; + } + public Integer getProtocol() { + return protocol; + } + public void setProtocol(Integer protocol) { + this.protocol = protocol; + } + public static String getTablename() { + return tableName; + } + public Integer getRegionId() { + return regionId; + } + public void setRegionId(Integer regionId) { + this.regionId = regionId; + } + +} diff --git a/src/main/java/com/nis/domain/configuration/CfgIndexInfo.java b/src/main/java/com/nis/domain/configuration/CfgIndexInfo.java index 994cef81f..385387a73 100644 --- a/src/main/java/com/nis/domain/configuration/CfgIndexInfo.java +++ b/src/main/java/com/nis/domain/configuration/CfgIndexInfo.java @@ -10,6 +10,8 @@ package com.nis.domain.configuration; import java.util.List; +import com.nis.domain.basics.AsnIpCfg; + /** * @ClassName: CfgIndexInfo.java @@ -26,6 +28,7 @@ public class CfgIndexInfo extends BaseCfg { private static final long serialVersionUID = 2796500715438264119L; private static final String tableName="cfg_index_info"; private List voipAccounts;//Add表单使用 + private List asnIpCfgs;//Add表单使用 private List voipIps; //Add表单使用 private AvVoipAccountCfg voipAccount;//Search使用 private AvVoipIpCfg voipIp;//Search使用 @@ -56,7 +59,8 @@ public class CfgIndexInfo extends BaseCfg { private Long dnsStrategyId; private String dnsStrategyName; - + private Integer asnIpGroup;//asn ip使用的组,仅用来帮助asnIpCfgs中的 ip保存组名,数据库并不需要新增字段 + private String asnIpGroupName; private P2pHashCfg p2pHash; private P2pKeywordCfg p2pKeyword; private List p2pHashList; @@ -65,6 +69,24 @@ public class CfgIndexInfo extends BaseCfg { + public Integer getAsnIpGroup() { + return asnIpGroup; + } + public void setAsnIpGroup(Integer asnIpGroup) { + this.asnIpGroup = asnIpGroup; + } + public String getAsnIpGroupName() { + return asnIpGroupName; + } + public void setAsnIpGroupName(String asnIpGroupName) { + this.asnIpGroupName = asnIpGroupName; + } + public List getAsnIpCfgs() { + return asnIpCfgs; + } + public void setAsnIpCfgs(List asnIpCfgs) { + this.asnIpCfgs = asnIpCfgs; + } public NtcBgpAsCfg getNtcBgpAsCfg() { return ntcBgpAsCfg; } diff --git a/src/main/java/com/nis/domain/maat/GroupReuseAddBean.java b/src/main/java/com/nis/domain/maat/GroupReuseAddBean.java new file mode 100644 index 000000000..b19bf123e --- /dev/null +++ b/src/main/java/com/nis/domain/maat/GroupReuseAddBean.java @@ -0,0 +1,93 @@ +/** + *@Title: ToMaatBean.java + *@Package com.nis.domain.configuration + *@Description TODO + *@author dell + *@date 2018年2月28日 下午2:03:08 + *@version 版本号 + */ +package com.nis.domain.maat; + +import java.io.Serializable; +import java.util.Date; +import java.util.List; + +import com.google.gson.annotations.Expose; +import com.google.gson.annotations.SerializedName; + +/** + * @ClassName: ToMaatBean.java + * @Description: TODO + * @author (dell) + * @date 2018年2月28日 下午2:03:08 + * @version V1.0 + */ +public class GroupReuseAddBean implements Serializable{ + + /** + * + */ + private static final long serialVersionUID = -3468862666445104490L; + /** + * @Fields serialVersionUID:TODO(转换为maat格式的java bean) + * + * @since 1.0.0 + */ + @Expose + private String version; + @Expose + @SerializedName("operator") + private String creatorName; + @Expose + @SerializedName("opTime") + private Date auditTime; + @Expose + private Integer opAction; + @Expose + @SerializedName("groupReuseList") + private List groupReuseCfgList; + + public String getVersion() { + return version; + } + + public void setVersion(String version) { + this.version = version; + } + + public String getCreatorName() { + return creatorName; + } + + public void setCreatorName(String creatorName) { + this.creatorName = creatorName; + } + + public Date getAuditTime() { + return auditTime; + } + + public void setAuditTime(Date auditTime) { + this.auditTime = auditTime; + } + + public List getGroupReuseCfgList() { + return groupReuseCfgList; + } + + public void setGroupReuseCfgList(List groupReuseCfgList) { + this.groupReuseCfgList = groupReuseCfgList; + } + + public Integer getOpAction() { + return opAction; + } + + public void setOpAction(Integer opAction) { + this.opAction = opAction; + } + + public static void main(String[] args) { + + } +} diff --git a/src/main/java/com/nis/domain/maat/GroupReuseCfg.java b/src/main/java/com/nis/domain/maat/GroupReuseCfg.java new file mode 100644 index 000000000..2ad349667 --- /dev/null +++ b/src/main/java/com/nis/domain/maat/GroupReuseCfg.java @@ -0,0 +1,46 @@ +package com.nis.domain.maat; + +import java.io.Serializable; +import java.util.List; + +import com.google.gson.annotations.Expose; +import com.nis.domain.maat.MaatCfg.IpCfg; +import com.nis.domain.maat.MaatCfg.NumBoundaryCfg; +import com.nis.domain.maat.MaatCfg.StringCfg; +/** + * 组复用配置 + * @author dell + * + */ +public class GroupReuseCfg implements Serializable { + + /** + * + */ + private static final long serialVersionUID = 1830956100866313836L; + @Expose + private List strRegionList; + @Expose + private List ipRegionList; + @Expose + private List numRegionList; + public List getStrRegionList() { + return strRegionList; + } + public void setStrRegionList(List strRegionList) { + this.strRegionList = strRegionList; + } + public List getIpRegionList() { + return ipRegionList; + } + public void setIpRegionList(List ipRegionList) { + this.ipRegionList = ipRegionList; + } + public List getNumRegionList() { + return numRegionList; + } + public void setNumRegionList(List numRegionList) { + this.numRegionList = numRegionList; + } + +} diff --git a/src/main/java/com/nis/domain/maat/ToMaatResult.java b/src/main/java/com/nis/domain/maat/ToMaatResult.java index cea002a98..2c111df95 100644 --- a/src/main/java/com/nis/domain/maat/ToMaatResult.java +++ b/src/main/java/com/nis/domain/maat/ToMaatResult.java @@ -41,6 +41,14 @@ public class ToMaatResult implements Serializable{ private String digest; private List configCompileList; private List updateStatCfgList; + private List groupReuseList; + + public List getGroupReuseList() { + return groupReuseList; + } + public void setGroupReuseList(List groupReuseList) { + this.groupReuseList = groupReuseList; + } public List getUpdateStatCfgList() { return updateStatCfgList; } diff --git a/src/main/java/com/nis/util/ConfigServiceUtil.java b/src/main/java/com/nis/util/ConfigServiceUtil.java index bbcde543d..62ef868dc 100644 --- a/src/main/java/com/nis/util/ConfigServiceUtil.java +++ b/src/main/java/com/nis/util/ConfigServiceUtil.java @@ -19,11 +19,13 @@ import org.glassfish.jersey.media.multipart.FormDataMultiPart; import org.glassfish.jersey.media.multipart.file.FileDataBodyPart; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.BeanUtils; -import com.google.gson.Gson; +import com.nis.domain.basics.AsnIpCfg; +import com.nis.domain.configuration.BaseIpCfg; import com.nis.domain.log.SearchReport; import com.nis.domain.maat.ToMaatResult; -import com.nis.domain.report.ReportResult; +import com.nis.domain.maat.MaatCfg.IpCfg; import com.nis.exceptions.MaatConvertException; import com.nis.util.httpclient.ClientUtil; @@ -250,7 +252,7 @@ public class ConfigServiceUtil { /** * 配置状态修改 * @param params - * @param type,1表示maat配置取消,2表示回调配置取消 + * @param type,1表示maat配置取消,2表示回调配置取消,3,分组复用删除域 * @return */ public static ToMaatResult put(String params,Integer type) throws MaatConvertException{ @@ -261,6 +263,8 @@ public class ConfigServiceUtil { url = url+Constants.MAAT_CFG; }else if(type==2){ url = url+Constants.CALLBACK_CFG; + }else if(type==3) { + url = url+Constants.GROUP_REUSE_SOURCES; } //创建连接 WebTarget wt = ClientUtil.getWebTarger(url); @@ -305,6 +309,33 @@ public class ConfigServiceUtil { } return bean; } + /** + * 分组复用域配置新增 + * @param params + * @return + * @throws MaatConvertException + */ + public static ToMaatResult postGroupReuseSources(String params) throws MaatConvertException{ + String result = null; + ToMaatResult bean = null; + String url = Constants.SERVICE_URL+Constants.GROUP_REUSE_SOURCES; + //创建连接 + WebTarget wt = ClientUtil.getWebTarger(url); + logger.info("postGroupReuseSources url:"+url); + //获取响应结果 + Builder header = wt.request(MediaType.APPLICATION_JSON).header("Content-Type", MediaType.APPLICATION_JSON); + Response response= header.post(Entity.entity(params, MediaType.APPLICATION_JSON)); + if( response.getStatus() == 200){ + result= response.readEntity(String.class); + JsonConfig config=new JsonConfig(); + config.setExcludes(new String[]{"configCompileList"}); + JSONObject resObject = JSONObject.fromObject(result,config); + bean = (ToMaatResult) JSONObject.toBean(resObject,ToMaatResult.class); + }else{ + throw new MaatConvertException(":"+response.readEntity(String.class)); + } + return bean; + } /** * * getReport(配置日志总量统计查询) diff --git a/src/main/java/com/nis/util/Constants.java b/src/main/java/com/nis/util/Constants.java index fb49860ac..c54b2c096 100644 --- a/src/main/java/com/nis/util/Constants.java +++ b/src/main/java/com/nis/util/Constants.java @@ -7,6 +7,7 @@ import java.util.Map; import com.google.gson.GsonBuilder; public final class Constants { + public static final String GROUP_REUSE_SOURCES=Configurations.getStringProperty("groupReuseSources","groupReuseSources"); public static Integer APP_SPEC_SERVICE_CODE_MIN_VAL=Configurations.getIntProperty("app_spec_service_code_min_val", 300001); public static Integer APP_SPEC_SERVICE_CODE_MAX_VAL=Configurations.getIntProperty("app_spec_service_code_max_val", 268435455); public static String APP_CFG_USERREGION_SPLITOR=Configurations.getStringProperty("app_cfg_userregion_splitor", "&"); diff --git a/src/main/java/com/nis/web/controller/BaseController.java b/src/main/java/com/nis/web/controller/BaseController.java index c19fa4bc1..6c93c7418 100644 --- a/src/main/java/com/nis/web/controller/BaseController.java +++ b/src/main/java/com/nis/web/controller/BaseController.java @@ -35,7 +35,6 @@ import com.nis.domain.SysDataDictionaryItem; import com.nis.domain.basics.PolicyGroupInfo; import com.nis.domain.basics.ServiceDictInfo; import com.nis.domain.basics.SysDictInfo; -import com.nis.domain.configuration.AppBuiltInFeatureFile; import com.nis.domain.configuration.AreaBean; import com.nis.domain.configuration.AreaIpCfg; import com.nis.domain.configuration.BaseCfg; @@ -64,11 +63,13 @@ import com.nis.web.service.OfficeService; import com.nis.web.service.RoleService; import com.nis.web.service.SystemService; import com.nis.web.service.UserService; +import com.nis.web.service.basics.AsnIpCfgService; import com.nis.web.service.basics.PolicyGroupInfoService; import com.nis.web.service.basics.ServiceDictInfoService; import com.nis.web.service.basics.SysDictInfoService; import com.nis.web.service.configuration.AppBuiltInFeatureService; import com.nis.web.service.configuration.AppCfgService; +import com.nis.web.service.configuration.AsnPolicyCfgService; import com.nis.web.service.configuration.AvCfgService; import com.nis.web.service.configuration.AvContentCfgService; import com.nis.web.service.configuration.BgpCfgService; @@ -195,7 +196,10 @@ public class BaseController { protected PxyObjKeyringService pxyObjKeyringService;//拦截策略service @Autowired protected AppBuiltInFeatureService appBuiltInFeatureService;//拦截策略service - + @Autowired + protected AsnIpCfgService asnIpCfgService;//asn ip service + @Autowired + protected AsnPolicyCfgService asnPolicyCfgService;//asn 策略 service /** * 管理基础路径 */ @@ -477,14 +481,17 @@ public class BaseController { model.addAttribute("isps", isps); //查询配置对应的地域ip - List areaCfgs=ipCfgService.getAreaCfgByCompileId(cfg.getCompileId()); - model.addAttribute("areaCfgs", areaCfgs); - StringBuffer areaCfgIds=new StringBuffer(); - for(AreaIpCfg areaCfg:areaCfgs){ - areaCfgIds.append(areaCfg.getCfgId()+","); + if(cfg.getCompileId()!=null) { + List areaCfgs=ipCfgService.getAreaCfgByCompileId(cfg.getCompileId()); + model.addAttribute("areaCfgs", areaCfgs); + + StringBuffer areaCfgIds=new StringBuffer(); + for(AreaIpCfg areaCfg:areaCfgs){ + areaCfgIds.append(areaCfg.getCfgId()+","); + } + //update时判断是否有删除地域ip + model.addAttribute("areaCfgIds", areaCfgIds.toString()); } - //update时判断是否有删除地域ip - model.addAttribute("areaCfgIds", areaCfgIds.toString()); //初始化一个默认的地域ip给界面 AreaIpCfg areaIpCfg=new AreaIpCfg(); areaIpCfg.initDefaultValue(); diff --git a/src/main/java/com/nis/web/controller/basics/AsnIpController.java b/src/main/java/com/nis/web/controller/basics/AsnIpController.java new file mode 100644 index 000000000..6e9db0acf --- /dev/null +++ b/src/main/java/com/nis/web/controller/basics/AsnIpController.java @@ -0,0 +1,119 @@ +package com.nis.web.controller.basics; + +import java.util.List; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.commons.lang.StringUtils; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; + +import com.nis.domain.Page; +import com.nis.domain.basics.AsnIpCfg; +import com.nis.domain.basics.PolicyGroupInfo; +import com.nis.domain.configuration.CfgIndexInfo; +import com.nis.exceptions.MaatConvertException; +import com.nis.web.controller.BaseController; +@Controller +@RequestMapping(value = "${adminPath}/basics/asn") +public class AsnIpController extends BaseController{ + @RequestMapping(value = {"/list"}) + public String list(Model model,HttpServletRequest request + ,HttpServletResponse response,@ModelAttribute("cfg")AsnIpCfg entity + ,RedirectAttributes redirectAttributes){ + Page page = asnIpCfgService.findPage(new Page(request, response,"r"), entity); + model.addAttribute("page", page); + initPageCondition(model); + return "/basics/asnIpCfgList"; + } + @RequestMapping(value = {"/addForm"}) + public String addForm(Model model,HttpServletRequest request + ,HttpServletResponse response,@ModelAttribute("cfg")CfgIndexInfo cfg + ,RedirectAttributes redirectAttributes){ + initFormCondition(model,cfg); + List policyGroups=policyGroupInfoService.findPolicyGroupInfosByType(4); + model.addAttribute("policyGroups", policyGroups); + model.addAttribute("_cfg", cfg); + return "/basics/asnIpCfgFormAdd"; + } + @RequestMapping(value = {"/updateForm"}) + public String updateForm(Model model,HttpServletRequest request + ,HttpServletResponse response,String ids,@ModelAttribute("cfg")AsnIpCfg cfg + ,RedirectAttributes redirectAttributes){ + cfg = asnIpCfgService.get(Long.parseLong(ids)); + initUpdateFormCondition(model, cfg); + List policyGroups=policyGroupInfoService.findPolicyGroupInfosByType(4); + model.addAttribute("policyGroups", policyGroups); + model.addAttribute("_cfg", cfg); + return "/basics/asnIpCfgFormUpdate"; + } + @RequestMapping(value = {"/save"}) + @RequiresPermissions(value={"asn:ip:config"}) + public String save(Model model,HttpServletRequest request,HttpServletResponse response,@ModelAttribute("cfg")CfgIndexInfo cfg,RedirectAttributes redirectAttributes){ + try{ + asnIpCfgService.saveAsnIpCfg(cfg); + addMessage(redirectAttributes,"save_success"); + }catch(Exception e){ + logger.error("信息保存失败",e); + e.printStackTrace(); + if(e instanceof MaatConvertException) { + addMessage(redirectAttributes,e.getMessage()); + }else { + addMessage(redirectAttributes,"save_failed"); + } + } + + return "redirect:" + adminPath +"/basics/asn/list?functionId="+cfg.getFunctionId(); + } + @RequestMapping(value = {"/update"}) + @RequiresPermissions(value={"asn:ip:config"}) + public String update(Model model,HttpServletRequest request,HttpServletResponse response,@ModelAttribute("cfg")AsnIpCfg cfg,RedirectAttributes redirectAttributes){ + try{ + + asnIpCfgService.update(cfg); + addMessage(redirectAttributes,"save_success"); + }catch(Exception e){ + logger.error("信息保存失败",e); + e.printStackTrace(); + addMessage(redirectAttributes,"save_failed"); + } + + return "redirect:" + adminPath +"/basics/asn/list?functionId="+cfg.getFunctionId(); + } + @RequestMapping(value = {"/delete"}) + @RequiresPermissions(value={"asn:ip:config"}) + public String delete(Integer isValid + ,String ids,Integer functionId + ,RedirectAttributes redirectAttributes){ + try{ + asnIpCfgService.delete(functionId,isValid,ids); + addMessage(redirectAttributes,"delete_success"); + }catch(Exception e){ + logger.error("信息保存失败",e); + e.printStackTrace(); + if(e instanceof MaatConvertException) { + addMessage(redirectAttributes,e.getMessage()); + }else { + addMessage(redirectAttributes,"delete_failed"); + } + } + + return "redirect:" + adminPath +"/basics/asn/list?functionId="+functionId; + } + @RequestMapping(value="ajaxServiceIdState",method=RequestMethod.POST) + @ResponseBody + public boolean ajaxServiceIdState(Model model,@RequestParam(required=true,value="serviceGroupIds")String serviceGroupIds){ + if(StringUtils.isNotBlank(serviceGroupIds)) { + return policyGroupInfoService.checkIsIssued(serviceGroupIds); + } + return false; + } +} diff --git a/src/main/java/com/nis/web/controller/configuration/ntc/AsnPolicyCfgController.java b/src/main/java/com/nis/web/controller/configuration/ntc/AsnPolicyCfgController.java new file mode 100644 index 000000000..4ae935ff5 --- /dev/null +++ b/src/main/java/com/nis/web/controller/configuration/ntc/AsnPolicyCfgController.java @@ -0,0 +1,100 @@ +package com.nis.web.controller.configuration.ntc; + +import java.util.Date; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; + +import com.nis.domain.Page; +import com.nis.domain.configuration.CfgIndexInfo; +import com.nis.domain.specific.ConfigGroupInfo; +import com.nis.exceptions.MaatConvertException; +import com.nis.util.StringUtil; +import com.nis.web.controller.BaseController; +@Controller +@RequestMapping("${adminPath}/cfg/asnPolicy") +public class AsnPolicyCfgController extends BaseController { + @RequestMapping(value = {"/list"}) + public String list(Model model,HttpServletRequest request + ,HttpServletResponse response,@ModelAttribute("cfg")CfgIndexInfo entity + ,RedirectAttributes redirectAttributes){ + Page page = asnPolicyCfgService.findPage(new Page(request, response,"r"), entity); + model.addAttribute("page", page); + initPageCondition(model); + return "/cfg/asnPolicyCfgList"; + } + @RequestMapping(value = {"/form"}) + @RequiresPermissions(value={"asn:policy:config"}) + public String form(Model model,HttpServletRequest request + ,HttpServletResponse response,String ids,@ModelAttribute("cfg")CfgIndexInfo entity + ,RedirectAttributes redirectAttributes){ + if(!StringUtil.isEmpty(ids)){ + entity = asnPolicyCfgService.get(Long.parseLong(ids)); + initUpdateFormCondition(model, entity); + }else{ + initFormCondition(model,entity); + } + List policyGroups=asnPolicyCfgService.getConfigGroupInfoList(4); + model.addAttribute("policyGroups", policyGroups); + model.addAttribute("_cfg", entity); + return "/cfg/asnPolicyCfgForm"; + } + @RequestMapping(value = {"/saveOrUpdate"}) + @RequiresPermissions(value={"asn:policy:config"}) + public String saveOrUpdate(Model model,HttpServletRequest request + ,HttpServletResponse response, + @ModelAttribute("cfg")CfgIndexInfo cfg + ,RedirectAttributes redirectAttributes){ + try{ + asnPolicyCfgService.saveOrUpdate(cfg); + addMessage(redirectAttributes,"save_success"); + }catch(Exception e){ + logger.error("信息保存失败",e); + e.printStackTrace(); + if(e instanceof MaatConvertException) { + addMessage(redirectAttributes,e.getMessage()); + }else { + addMessage(redirectAttributes,"save_failed"); + } + } + + return "redirect:" + adminPath +"/cfg/asnPolicy/list?functionId="+cfg.getFunctionId(); + } + @RequestMapping(value = {"/delete"}) + @RequiresPermissions(value={"asn:policy:config"}) + public String delete(Integer isAudit,Integer isValid + ,String ids,Integer functionId + ,RedirectAttributes redirectAttributes){ + asnPolicyCfgService.delete(functionId, isValid, ids); + return "redirect:" + adminPath +"/cfg/asnPolicy/list?functionId="+functionId; + } + @RequestMapping(value = {"/audit"}) + @RequiresPermissions(value={"asn:policy:confirm"}) + public String audit(Integer isAudit,Integer isValid,String ids + ,Integer functionId, RedirectAttributes redirectAttributes) { + if(!StringUtil.isEmpty(ids)){ + String[] idArray = ids.split(","); + Date auditTime=new Date(); + for(String id :idArray){ + try { + asnPolicyCfgService.audit(isAudit,isValid,functionId,id,auditTime); + } catch (MaatConvertException e) { + e.printStackTrace(); + logger.info("dns fake ip配置下发失败:"+e.getMessage()); + addMessage(redirectAttributes, e.getMessage()); + } + + } + + } + return "redirect:" + adminPath +"/cfg/asnPolicy/list?functionId="+functionId; + } +} diff --git a/src/main/java/com/nis/web/dao/basics/AsnIpCfgDao.java b/src/main/java/com/nis/web/dao/basics/AsnIpCfgDao.java new file mode 100644 index 000000000..59f329e8b --- /dev/null +++ b/src/main/java/com/nis/web/dao/basics/AsnIpCfgDao.java @@ -0,0 +1,20 @@ +package com.nis.web.dao.basics; + +import java.util.List; + +import org.apache.ibatis.annotations.Param; + +import com.nis.domain.basics.AsnIpCfg; +import com.nis.domain.specific.ConfigGroupInfo; +import com.nis.web.dao.CrudDao; +import com.nis.web.dao.MyBatisDao; +@MyBatisDao +public interface AsnIpCfgDao extends CrudDao{ + public List findPage(AsnIpCfg cfg); + public void updateValid(@Param("isValid")Integer isValid,@Param("ids")String ids); + public void updateIssued(AsnIpCfg cfg); + public List getByIds(@Param("ids")String ids); + public List findAllList(AsnIpCfg cfg); + public List findPolicyGroupInfosByType(@Param("groupId")Integer groupId); + public List findOtherIps(@Param("groupId")Integer groupId,@Param("cfgId")Integer cfgId); +} diff --git a/src/main/java/com/nis/web/dao/basics/AsnIpCfgDao.xml b/src/main/java/com/nis/web/dao/basics/AsnIpCfgDao.xml new file mode 100644 index 000000000..a343f1dfc --- /dev/null +++ b/src/main/java/com/nis/web/dao/basics/AsnIpCfgDao.xml @@ -0,0 +1,387 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + r.cfg_id,r.cfg_desc,r.ip_type,r.src_ip_address,r.ip_pattern,r.port_pattern,r.src_port + ,r.protocol,r.protocol_id,r.direction,r.cfg_type,r.action,r.dest_port,r.dest_ip_address + ,r.is_valid,r.is_audit,r.creator_id,r.create_time,r.editor_id + ,r.edit_time,r.auditor_id,r.audit_time,r.service_id,r.request_id, + r.region_id,r.is_area_effective,r.classify,r.attribute,r.lable + ,r.area_effective_ids,r.function_id,r.cfg_region_code,r.asn_ip_group + + + + + + + + + + insert into asn_ip_cfg ( + CFG_DESC, + ACTION, + IS_VALID, + IS_AUDIT, + CREATOR_ID, + CREATE_TIME, + EDITOR_ID, + EDIT_TIME, + AUDITOR_ID, + AUDIT_TIME, + SERVICE_ID, + REQUEST_ID, + region_id, + IS_AREA_EFFECTIVE, + CLASSIFY, + ATTRIBUTE, + LABLE, + AREA_EFFECTIVE_IDS, + function_id, + ip_type, + src_ip_address, + ip_pattern, + port_pattern, + src_port, + protocol, + protocol_id, + direction, + dest_port, + dest_ip_address, + cfg_type, + cfg_region_code, + asn_ip_group + )values ( + #{cfgDesc,jdbcType=VARCHAR}, + #{action,jdbcType=INTEGER}, + #{isValid,jdbcType=INTEGER}, + 0, + #{creatorId,jdbcType=INTEGER}, + #{createTime,jdbcType=TIMESTAMP}, + #{editorId,jdbcType=INTEGER}, + #{editTime,jdbcType=TIMESTAMP}, + #{auditorId,jdbcType=INTEGER}, + #{auditTime,jdbcType=TIMESTAMP}, + #{serviceId,jdbcType=INTEGER}, + #{requestId,jdbcType=INTEGER}, + #{regionId,jdbcType=INTEGER}, + #{isAreaEffective,jdbcType=INTEGER}, + #{classify,jdbcType=VARCHAR}, + #{attribute,jdbcType=VARCHAR}, + #{lable,jdbcType=VARCHAR}, + #{areaEffectiveIds,jdbcType=VARCHAR}, + #{functionId,jdbcType=INTEGER}, + #{ipType,jdbcType=INTEGER}, + #{srcIpAddress,jdbcType=VARCHAR}, + #{ipPattern,jdbcType=INTEGER}, + #{portPattern,jdbcType=INTEGER}, + #{srcPort,jdbcType=VARCHAR}, + #{protocol,jdbcType=INTEGER}, + #{protocolId,jdbcType=INTEGER}, + #{direction,jdbcType=INTEGER}, + #{destPort,jdbcType=VARCHAR}, + #{destIpAddress,jdbcType=VARCHAR}, + #{cfgType,jdbcType=VARCHAR}, + #{cfgRegionCode,jdbcType=INTEGER}, + #{asnIpGroup,jdbcType=INTEGER} + ) + + + update asn_ip_cfg set is_valid=#{isValid} where asn_ip_group =#{asnIpGroup} + + + update asn_ip_cfg + + + + cfg_desc = #{cfgDesc,jdbcType=VARCHAR}, + + + action = #{action,jdbcType=INTEGER}, + + + is_valid = #{isValid,jdbcType=INTEGER}, + + + is_audit = #{isAudit,jdbcType=INTEGER}, + + + editor_id = #{editorId,jdbcType=INTEGER}, + + + edit_time = #{editTime,jdbcType=TIMESTAMP}, + + + AUDITOR_ID = #{auditorId,jdbcType=INTEGER}, + + + AUDIT_TIME = #{auditTime,jdbcType=TIMESTAMP}, + + + region_id = #{regionId,jdbcType=TIMESTAMP}, + + + request_id = #{requestId,jdbcType=INTEGER}, + + + is_area_effective = #{isAreaEffective,jdbcType=INTEGER}, + + + classify = #{classify,jdbcType=VARCHAR}, + + + attribute = #{attribute,jdbcType=VARCHAR}, + + + lable = #{lable,jdbcType=VARCHAR}, + + + area_effective_ids = #{areaEffectiveIds,jdbcType=VARCHAR}, + + + function_id = #{functionId,jdbcType=INTEGER}, + + + service_id = #{serviceId,jdbcType=INTEGER}, + + + ip_type = #{ipType,jdbcType=INTEGER}, + + + src_ip_address = #{srcIpAddress,jdbcType=VARCHAR}, + + + ip_pattern = #{ipPattern,jdbcType=INTEGER}, + + + port_pattern = #{portPattern,jdbcType=INTEGER}, + + + src_port = #{srcPort,jdbcType=VARCHAR}, + + + protocol = #{protocol,jdbcType=INTEGER}, + + + protocol_id = #{protocolId,jdbcType=INTEGER}, + + + direction = #{direction,jdbcType=INTEGER}, + + + dest_port = #{destPort,jdbcType=VARCHAR}, + + + dest_ip_address = #{destIpAddress,jdbcType=VARCHAR}, + + + cfg_type = #{cfgType,jdbcType=VARCHAR}, + + + cfg_region_code = #{cfgRegionCode,jdbcType=INTEGER}, + + + asn_ip_group = #{asnIpGroup,jdbcType=INTEGER}, + + + + + and cfg_id = #{cfgId,jdbcType=INTEGER} + + + + update asn_ip_cfg set is_valid=#{isValid} where cfg_id in (#{ids}) + + + + + \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/basics/PolicyGroupInfoDao.java b/src/main/java/com/nis/web/dao/basics/PolicyGroupInfoDao.java index 46af2df89..f7a2c81cf 100644 --- a/src/main/java/com/nis/web/dao/basics/PolicyGroupInfoDao.java +++ b/src/main/java/com/nis/web/dao/basics/PolicyGroupInfoDao.java @@ -12,6 +12,7 @@ public interface PolicyGroupInfoDao extends CrudDao { List findPolicyGroupInfoList(PolicyGroupInfo policyGroupInfo); List findPolicyGroupInfos(); List findPolicyGroupInfosByType(int groupType); + List findPolicyGroupInfosHasIpRegionByType(int groupType); PolicyGroupInfo getById(int id); } \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/configuration/AsnPolicyCfgDao.java b/src/main/java/com/nis/web/dao/configuration/AsnPolicyCfgDao.java new file mode 100644 index 000000000..0c0362dff --- /dev/null +++ b/src/main/java/com/nis/web/dao/configuration/AsnPolicyCfgDao.java @@ -0,0 +1,19 @@ +package com.nis.web.dao.configuration; + +import java.util.List; + +import org.apache.ibatis.annotations.Param; + +import com.nis.domain.configuration.CfgIndexInfo; +import com.nis.domain.specific.ConfigGroupInfo; +import com.nis.web.dao.CrudDao; +import com.nis.web.dao.MyBatisDao; +@MyBatisDao +public interface AsnPolicyCfgDao extends CrudDao{ + public List findPage(CfgIndexInfo cfg); + public void updateValid(@Param("isValid")Integer isValid,@Param("ids")String ids); + public List getByIds(@Param("ids")String ids); + public void save(CfgIndexInfo entity); + public void updateCfgIndexInfo(CfgIndexInfo entity); + public List getConfigGroupInfoList(@Param("groupType")Integer groupType); +} diff --git a/src/main/java/com/nis/web/dao/configuration/AsnPolicyCfgDao.xml b/src/main/java/com/nis/web/dao/configuration/AsnPolicyCfgDao.xml new file mode 100644 index 000000000..b64b3b484 --- /dev/null +++ b/src/main/java/com/nis/web/dao/configuration/AsnPolicyCfgDao.xml @@ -0,0 +1,264 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + r.CFG_ID,r.CFG_DESC,r.ACTION,r.IS_VALID,r.IS_AUDIT, + r.CREATOR_ID,r.CREATE_TIME,r.EDITOR_ID,r.EDIT_TIME,r.AUDITOR_ID,r.AUDIT_TIME, + r.SERVICE_ID,r.REQUEST_ID,r.COMPILE_ID,r.IS_AREA_EFFECTIVE,r.CLASSIFY, + r.ATTRIBUTE,r.LABLE,r.AREA_EFFECTIVE_IDS,r.function_id,r.user_region1, + r.user_region2,r.user_region3,r.user_region4,r.user_region5,r.do_log + + + + + + + + SELECT LAST_INSERT_ID() + + insert into cfg_index_info( + CFG_DESC, + ACTION, + IS_VALID, + IS_AUDIT, + CREATOR_ID, + CREATE_TIME, + EDITOR_ID, + EDIT_TIME, + AUDITOR_ID, + AUDIT_TIME, + SERVICE_ID, + REQUEST_ID, + COMPILE_ID, + IS_AREA_EFFECTIVE, + CLASSIFY, + ATTRIBUTE, + LABLE, + AREA_EFFECTIVE_IDS, + function_id, + dns_strategy_id, + user_region1, + user_region2, + user_region3, + user_region4, + user_region5, + do_log + )values ( + #{cfgDesc,jdbcType=VARCHAR}, + #{action,jdbcType=INTEGER}, + 0, + 0, + #{creatorId,jdbcType=INTEGER}, + #{createTime,jdbcType=TIMESTAMP}, + #{editorId,jdbcType=INTEGER}, + #{editTime,jdbcType=TIMESTAMP}, + #{auditorId,jdbcType=INTEGER}, + #{auditTime,jdbcType=TIMESTAMP}, + #{serviceId,jdbcType=INTEGER}, + #{requestId,jdbcType=INTEGER}, + #{compileId,jdbcType=INTEGER}, + #{isAreaEffective,jdbcType=INTEGER}, + #{classify,jdbcType=VARCHAR}, + #{attribute,jdbcType=VARCHAR}, + #{lable,jdbcType=VARCHAR}, + #{areaEffectiveIds,jdbcType=VARCHAR}, + #{functionId,jdbcType=INTEGER}, + #{dnsStrategyId,jdbcType=INTEGER}, + #{userRegion1,jdbcType=VARCHAR}, + #{userRegion2,jdbcType=VARCHAR}, + #{userRegion3,jdbcType=VARCHAR}, + #{userRegion4,jdbcType=VARCHAR}, + #{userRegion5,jdbcType=VARCHAR}, + #{doLog,jdbcType=INTEGER} + ) + + + update cfg_index_info + + + + cfg_desc = #{cfgDesc,jdbcType=VARCHAR}, + + + action = #{action,jdbcType=INTEGER}, + + + do_log = #{doLog,jdbcType=INTEGER}, + + + is_valid = #{isValid,jdbcType=INTEGER}, + + + is_audit = #{isAudit,jdbcType=INTEGER}, + + + creator_id = #{creatorId,jdbcType=INTEGER}, + + + create_time = #{createTime,jdbcType=TIMESTAMP}, + + + editor_id = #{editorId,jdbcType=INTEGER}, + + edit_time = #{editTime,jdbcType=TIMESTAMP}, + + service_id = #{serviceId,jdbcType=INTEGER}, + + + request_id = #{requestId,jdbcType=INTEGER}, + + + is_area_effective = #{isAreaEffective,jdbcType=INTEGER}, + + + classify = #{classify,jdbcType=VARCHAR}, + + + attribute = #{attribute,jdbcType=VARCHAR}, + + + lable = #{lable,jdbcType=VARCHAR}, + + + area_effective_ids = #{areaEffectiveIds,jdbcType=VARCHAR}, + + + function_id = #{functionId,jdbcType=INTEGER}, + + user_region1 = #{userRegion1,jdbcType=VARCHAR}, + user_region2 = #{userRegion2,jdbcType=VARCHAR}, + user_region3 = #{userRegion3,jdbcType=VARCHAR}, + user_region4 = #{userRegion4,jdbcType=VARCHAR}, + user_region5 = #{userRegion5,jdbcType=VARCHAR}, + dns_strategy_id = #{dnsStrategyId,jdbcType=INTEGER}, + + + where cfg_id = #{cfgId,jdbcType=BIGINT} + + + update cfg_index_info set is_valid=#{isValid} where cfg_id in (#{ids}) + + + \ No newline at end of file diff --git a/src/main/java/com/nis/web/service/BaseService.java b/src/main/java/com/nis/web/service/BaseService.java index 7f4d49fdd..0d69f66b7 100644 --- a/src/main/java/com/nis/web/service/BaseService.java +++ b/src/main/java/com/nis/web/service/BaseService.java @@ -28,6 +28,7 @@ import com.googlecode.ipv6.IPv6Address; import com.googlecode.ipv6.IPv6Network; import com.nis.domain.SysRole; import com.nis.domain.SysUser; +import com.nis.domain.basics.AsnIpCfg; import com.nis.domain.callback.InlineIp; import com.nis.domain.callback.NtcDnsResStrategy; import com.nis.domain.callback.ProxyObjKeyring; @@ -41,6 +42,7 @@ 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.domain.specific.ConfigGroupInfo; import com.nis.util.ConfigServiceUtil; import com.nis.util.Configurations; import com.nis.util.Constants; @@ -735,4 +737,20 @@ public abstract class BaseService { } return replaceContent; } + //asn IP 复用转换 + public List groupReuseCfgAddRemoveConvert(List ipCfgList,Integer isValid) { + List maatIpList=new ArrayList<>(); + for(AsnIpCfg asnIpCfg:ipCfgList) { + BaseIpCfg baseIpCfg = new BaseIpCfg(); + BeanUtils.copyProperties(asnIpCfg, baseIpCfg); + IpCfg cfg = new IpCfg(); + BeanUtils.copyProperties(baseIpCfg, cfg); + cfg.setGroupId(asnIpCfg.getAsnIpGroup()); + cfg.setRegionId(asnIpCfg.getRegionId()); + cfg.setIsValid(isValid); + cfg = ipConvert(cfg,baseIpCfg); + maatIpList.add(cfg); + } + return maatIpList; + } } diff --git a/src/main/java/com/nis/web/service/basics/AsnIpCfgService.java b/src/main/java/com/nis/web/service/basics/AsnIpCfgService.java new file mode 100644 index 000000000..79f9398f5 --- /dev/null +++ b/src/main/java/com/nis/web/service/basics/AsnIpCfgService.java @@ -0,0 +1,174 @@ +package com.nis.web.service.basics; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import com.nis.domain.Page; +import com.nis.domain.basics.AsnIpCfg; +import com.nis.domain.configuration.CfgIndexInfo; +import com.nis.domain.maat.GroupReuseAddBean; +import com.nis.domain.maat.GroupReuseCfg; +import com.nis.domain.maat.MaatCfg.IpCfg; +import com.nis.domain.maat.MaatCfg.NumBoundaryCfg; +import com.nis.domain.maat.MaatCfg.StringCfg; +import com.nis.domain.maat.ToMaatResult; +import com.nis.domain.specific.ConfigGroupInfo; +import com.nis.util.ConfigServiceUtil; +import com.nis.util.Constants; +import com.nis.web.dao.CrudDao; +import com.nis.web.dao.basics.AsnIpCfgDao; +import com.nis.web.dao.specific.SpecificServiceCfgDao; +import com.nis.web.service.CrudService; +@Service +public class AsnIpCfgService extends CrudService, AsnIpCfg> { + @Autowired + private AsnIpCfgDao asnIpCfgDao; + @Autowired + private SpecificServiceCfgDao specificServiceCfgDao; + /** + * @param page + * @param entity + * @return + */ + public Page findPage(Page page, AsnIpCfg entity) { + entity.getSqlMap().put("dsf", configScopeFilter(entity.getCurrentUser(),"r")); + entity.setPage(page); + List list=asnIpCfgDao.findPage(entity); + page.setList(list); + return page; + } + public AsnIpCfg get(Long id ) { + return asnIpCfgDao.get(id); + } + @Transactional(readOnly=false,rollbackFor=RuntimeException.class) + public void save(List entitys){ + Date createTime=new Date(); + for(AsnIpCfg entity:entitys) { + entity.setCreateTime(createTime); + entity.setCreatorId(entity.getCurrentUser().getId()); + entity.setRegionId(ConfigServiceUtil.getId(3, 1).get(0)); + } + this.saveBatch(entitys, AsnIpCfgDao.class); + } + @Transactional(readOnly=false,rollbackFor=RuntimeException.class) + public void update(AsnIpCfg entity){ + Date editTime=new Date(); + entity.setEditTime(editTime); + entity.setEditorId(entity.getCurrentUser().getId()); + if(entity.getAsnIpGroup()==null) { + throw new RuntimeException("asn group name not found!"); + } + ConfigGroupInfo groupInfo=specificServiceCfgDao.getConfigGroupInfoByGroupId(entity.getAsnIpGroup()); + if(groupInfo.getIsIssued()==0) {//未下发,可修改 + asnIpCfgDao.update(entity); + }else { + throw new RuntimeException("asn group is issued, cannot update asn ip!"); + } + + } + @Transactional(readOnly=false,rollbackFor=RuntimeException.class) + public void saveAsnIpCfg(CfgIndexInfo entity) { + Date crateTime=new Date(); + ConfigGroupInfo groupInfo=specificServiceCfgDao.getConfigGroupInfoByGroupId(entity.getAsnIpGroup().intValue()); + + if(groupInfo.getIsIssued()==1) {//如果已经下发,则需要下到综合服务中 + if(entity.getAsnIpCfgs()!=null) { + for(AsnIpCfg cfg:entity.getAsnIpCfgs()) { + BeanUtils.copyProperties(entity, cfg, new String[]{"cfgId"}); + cfg.setCreateTime(crateTime); + cfg.setCreatorId(entity.getCurrentUser().getId()); + cfg.setAsnIpGroup(entity.getAsnIpGroup()); + cfg.setIsValid(Constants.VALID_YES); + } + } + this.save(entity.getAsnIpCfgs()); + GroupReuseAddBean maatBean = new GroupReuseAddBean(); + List groupReuseList=new ArrayList<>(); + GroupReuseCfg groupReuseCfg=new GroupReuseCfg(); + List ipRegionList = groupReuseCfgAddRemoveConvert(entity.getAsnIpCfgs(),Constants.VALID_YES); + List strRegionList = new ArrayList<>(); + List numRegionList = new ArrayList<>(); + groupReuseCfg.setIpRegionList(ipRegionList); + groupReuseCfg.setStrRegionList(strRegionList); + groupReuseCfg.setNumRegionList(numRegionList); + groupReuseList.add(groupReuseCfg); + maatBean.setGroupReuseCfgList(groupReuseList); + maatBean.setAuditTime(crateTime); + maatBean.setCreatorName(entity.getCurrentUser().getName()); + maatBean.setVersion(Constants.MAAT_VERSION); + maatBean.setOpAction(Constants.INSERT_ACTION); + //调用服务接口下发配置数据 + String json=gsonToJson(maatBean); + logger.info("asn ip复用域新增配置下发配置参数:"+json); + //调用服务接口下发配置 + ToMaatResult result = ConfigServiceUtil.postGroupReuseSources(json); + logger.info("asn ip复用域新增配置响应信息:"+result.getMsg()); + }else { + if(entity.getAsnIpCfgs()!=null) { + for(AsnIpCfg cfg:entity.getAsnIpCfgs()) { + BeanUtils.copyProperties(entity, cfg, new String[]{"cfgId"}); + cfg.setCreateTime(crateTime); + cfg.setCreatorId(entity.getCurrentUser().getId()); + cfg.setAsnIpGroup(entity.getAsnIpGroup().intValue()); + cfg.setIsValid(Constants.VALID_NO); + } + } + this.save(entity.getAsnIpCfgs()); + } + } + @Transactional(readOnly=false,rollbackFor=RuntimeException.class) + public void delete(Integer functionId,Integer isValid,String ids) { + for(String id:ids.split(",")) { + Long.parseLong(id); + } + List issuedList=new ArrayList<>(); + List asnIpCfgList= asnIpCfgDao.getByIds(ids); + + for(AsnIpCfg asnIpCfg:asnIpCfgList) { + if(asnIpCfg.getIsValid()==Constants.VALID_YES) {//代表下发过了 + asnIpCfg.setIsValid(isValid); + issuedList.add(asnIpCfg); + Integer groupId=asnIpCfg.getAsnIpGroup(); + List result=asnIpCfgDao.findOtherIps(groupId, asnIpCfg.getCfgId().intValue()); + if(result==null||result.size()==0) { + throw new RuntimeException("Cant not delete ip from asn group, there is only one ip left in the group!"); + } + } + } + if(issuedList.size()>0) { + //已经下发过的,调用分组复用配置删除接口 + GroupReuseAddBean maatBean = new GroupReuseAddBean(); + List groupReuseList=new ArrayList<>(); + GroupReuseCfg groupReuseCfg=new GroupReuseCfg(); + List ipRegionList = groupReuseCfgAddRemoveConvert(issuedList,Constants.VALID_NO); + List strRegionList = new ArrayList<>(); + List numRegionList = new ArrayList<>(); + groupReuseCfg.setIpRegionList(ipRegionList); + groupReuseCfg.setStrRegionList(strRegionList); + groupReuseCfg.setNumRegionList(numRegionList); + groupReuseList.add(groupReuseCfg); + maatBean.setGroupReuseCfgList(groupReuseList); + maatBean.setAuditTime(new Date()); + maatBean.setCreatorName(new AsnIpCfg().getCurrentUser().getName()); + maatBean.setVersion(Constants.MAAT_VERSION); + maatBean.setOpAction(Constants.UPDATE_ACTION); + //调用服务接口下发配置数据 + String json=gsonToJson(maatBean); + logger.info("asn ip复用域删除配置下发配置参数:"+json); + //调用服务接口下发配置 + ToMaatResult result = ConfigServiceUtil.put(json,3); + logger.info("asn ip复用域删除配置响应信息:"+result.getMsg()); + } + asnIpCfgDao.updateValid(isValid, ids); + } + public List findPolicyGroupInfosByType(Integer groupId) { + // TODO Auto-generated method stub + return asnIpCfgDao.findPolicyGroupInfosByType(groupId); + } +} diff --git a/src/main/java/com/nis/web/service/basics/PolicyGroupInfoService.java b/src/main/java/com/nis/web/service/basics/PolicyGroupInfoService.java index ccae13991..b0b9d93ce 100644 --- a/src/main/java/com/nis/web/service/basics/PolicyGroupInfoService.java +++ b/src/main/java/com/nis/web/service/basics/PolicyGroupInfoService.java @@ -46,6 +46,10 @@ public class PolicyGroupInfoService extends BaseService{ List list=policyGroupInfoDao.findPolicyGroupInfosByType(type); return list; } + public List findPolicyGroupInfosHasIpRegionByType(int type) { + List list=policyGroupInfoDao.findPolicyGroupInfosByType(type); + return list; + } public PolicyGroupInfo getById(int id) { PolicyGroupInfo policyGroupInfo=policyGroupInfoDao.getById(id); diff --git a/src/main/java/com/nis/web/service/configuration/AsnPolicyCfgService.java b/src/main/java/com/nis/web/service/configuration/AsnPolicyCfgService.java new file mode 100644 index 000000000..03a79ce7e --- /dev/null +++ b/src/main/java/com/nis/web/service/configuration/AsnPolicyCfgService.java @@ -0,0 +1,219 @@ +package com.nis.web.service.configuration; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import com.nis.domain.Page; +import com.nis.domain.basics.AsnIpCfg; +import com.nis.domain.configuration.CfgIndexInfo; +import com.nis.domain.maat.MaatCfg; +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.NumBoundaryCfg; +import com.nis.domain.maat.MaatCfg.StringCfg; +import com.nis.domain.maat.ToMaatBean; +import com.nis.domain.maat.ToMaatResult; +import com.nis.domain.specific.ConfigGroupInfo; +import com.nis.exceptions.MaatConvertException; +import com.nis.util.ConfigServiceUtil; +import com.nis.util.Constants; +import com.nis.web.dao.basics.AsnIpCfgDao; +import com.nis.web.dao.configuration.AsnPolicyCfgDao; +import com.nis.web.dao.specific.SpecificServiceCfgDao; +import com.nis.web.security.UserUtils; +import com.nis.web.service.BaseService; +@Service +public class AsnPolicyCfgService extends BaseService { + @Autowired + private AsnPolicyCfgDao asnPolicyCfgDao; + @Autowired + private AsnIpCfgDao asnIpCfgDao; + @Autowired + private SpecificServiceCfgDao specificServiceCfgDao; + /** + * @param page + * @param entity + * @return + */ + public Page findPage(Page page, CfgIndexInfo entity) { + entity.getSqlMap().put("dsf", configScopeFilter(entity.getCurrentUser(),"r")); + entity.setPage(page); + List list=asnPolicyCfgDao.findPage(entity); + page.setList(list); + return page; + } + public CfgIndexInfo get(Long id ) { + return asnPolicyCfgDao.get(id); + } + @Transactional(readOnly=false,rollbackFor=RuntimeException.class) + public void saveOrUpdate(CfgIndexInfo entity){ + Date time=new Date(); + if(entity.getCfgId()==null) {//新增,获取compileId + entity.setCreateTime(time); + entity.setCreatorId(entity.getCurrentUser().getId()); + //调用服务接口获取compileId + List compileIds = new ArrayList(); + try { + compileIds = ConfigServiceUtil.getId(1,1); + } catch (Exception e) { + e.printStackTrace(); + logger.info("获取编译ID出错"); + throw new MaatConvertException(":"+e.getMessage()); + } + if(compileIds != null && compileIds.size() >0 && compileIds.get(0) != 0){ + entity.setCompileId(compileIds.get(0)); + asnPolicyCfgDao.save(entity); + }else{ + throw new MaatConvertException(""); + } + }else { + entity.setEditTime(time); + entity.setEditorId(entity.getCurrentUser().getId()); + asnPolicyCfgDao.updateCfgIndexInfo(entity); + } + + } + + @Transactional(readOnly=false,rollbackFor=RuntimeException.class) + public void delete(Integer functionId,Integer isValid,String ids) { + asnPolicyCfgDao.updateValid(isValid, ids); + } + public List getConfigGroupInfoList(Integer groupType) { + // TODO Auto-generated method stub + return asnPolicyCfgDao.getConfigGroupInfoList(groupType); + } + /** + * + * @param isAudit + * @param isValid + * @param ids cfgId + * @param functionId + */ + @Transactional(readOnly=false,rollbackFor=RuntimeException.class) + public void audit(Integer isAudit,Integer isValid,Integer functionId,String id,Date auditTime){ + CfgIndexInfo entity=asnPolicyCfgDao.get(Long.valueOf(id)); + entity.setIsAudit(isAudit); + entity.setIsValid(isValid); + entity.setAuditorId(UserUtils.getUser().getId()); + entity.setAuditTime(auditTime); + asnPolicyCfgDao.updateCfgIndexInfo(entity); + ToMaatBean maatBean = new ToMaatBean(); + MaatCfg maatCfg = new MaatCfg(); + List configCompileList = new ArrayList<>(); + List groupRelationList = new ArrayList<>(); + List ipRegionList = new ArrayList<>(); + List strRegionList = new ArrayList<>(); + List numRegionList = new ArrayList<>(); + List digestRegionList = new ArrayList<>(); + List areaIpRegionList = new ArrayList<>(); + if(isAudit==Constants.AUDIT_YES) { + ConfigGroupInfo group=specificServiceCfgDao.getConfigGroupInfoByGroupId(Integer.parseInt(entity.getUserRegion1())); + if(group.getIsIssued()==1) {//复用,值下编译跟分组 + maatCfg.initDefaultValue(); + BeanUtils.copyProperties(entity, maatCfg); + maatCfg.setAction(entity.getAction()); + maatCfg.setAuditTime(entity.getAuditTime()); + maatCfg.setIpRegionList(ipRegionList); + maatCfg.setStrRegionList(strRegionList); + maatCfg.setNumRegionList(numRegionList); + maatCfg.setDigestRegionList(digestRegionList); + maatCfg.setGroupRelationList(groupRelationList); + maatCfg.setAreaIpRegionList(areaIpRegionList); + maatCfg.setIsValid(entity.getIsValid()); + //group + GroupCfg groupCfg=new GroupCfg(); + groupCfg.setCompileId(entity.getCompileId()); + groupCfg.setGroupId(Integer.parseInt(entity.getUserRegion1())); + groupCfg.setIsValid(Constants.VALID_YES); + groupCfg.setAuditTime(auditTime); + groupRelationList.add(groupCfg); + maatCfg.setGroupNum(groupRelationList.size()); + configCompileList.add(maatCfg); + maatBean.setConfigCompileList(configCompileList); + maatBean.setAuditTime(entity.getAuditTime()); + maatBean.setCreatorName(entity.getCurrentUser().getName()); + maatBean.setVersion(Constants.MAAT_VERSION); + maatBean.setOpAction(Constants.INSERT_ACTION); + //调用服务接口下发配置数据 + String json=gsonToJson(maatBean); + logger.info("asn策略组复用配置下发配置参数:"+json); + //调用服务接口下发配置 + ToMaatResult result = ConfigServiceUtil.postMaatCfg(json); + logger.info("asn策略组复用配置下发响应信息:"+result.getMsg()); + }else {//首次下发 + maatCfg.initDefaultValue(); + BeanUtils.copyProperties(entity, maatCfg); + maatCfg.setAction(entity.getAction()); + maatCfg.setAuditTime(entity.getAuditTime()); + maatCfg.setStrRegionList(strRegionList); + maatCfg.setNumRegionList(numRegionList); + maatCfg.setDigestRegionList(digestRegionList); + maatCfg.setGroupRelationList(groupRelationList); + maatCfg.setAreaIpRegionList(areaIpRegionList); + maatCfg.setIsValid(entity.getIsValid()); + //group + GroupCfg groupCfg=new GroupCfg(); + groupCfg.setCompileId(entity.getCompileId()); + groupCfg.setGroupId(Integer.parseInt(entity.getUserRegion1())); + groupCfg.setIsValid(Constants.VALID_YES); + groupCfg.setAuditTime(auditTime); + groupRelationList.add(groupCfg); + maatCfg.setGroupNum(groupRelationList.size()); + //region + //查询asn group id下所有的 ip + AsnIpCfg asnIpCfg=new AsnIpCfg(); + asnIpCfg.setAsnIpGroup(Integer.parseInt(entity.getUserRegion1())); + List allAsnIpCfgs=asnIpCfgDao.findAllList(asnIpCfg); + ipRegionList.addAll(groupReuseCfgAddRemoveConvert(allAsnIpCfgs,Constants.VALID_YES)); + maatCfg.setIpRegionList(ipRegionList); + configCompileList.add(maatCfg); + maatBean.setConfigCompileList(configCompileList); + maatBean.setAuditTime(entity.getAuditTime()); + maatBean.setCreatorName(entity.getCurrentUser().getName()); + maatBean.setVersion(Constants.MAAT_VERSION); + maatBean.setOpAction(Constants.INSERT_ACTION); + + //调用服务接口下发配置数据 + String json=gsonToJson(maatBean); + logger.info("asn策略配置下发配置参数:"+json); + //调用服务接口下发配置 + ToMaatResult result = ConfigServiceUtil.postMaatCfg(json); + logger.info("asn策略配置下发响应信息:"+result.getMsg()); + ConfigGroupInfo info=new ConfigGroupInfo(); + info.setIsIssued(1); + info.setGroupId(Integer.parseInt(entity.getUserRegion1())); + specificServiceCfgDao.updateConfigGroupInfobyGroupId(info); + AsnIpCfg cfg=new AsnIpCfg(); + cfg.setIsValid(Constants.VALID_YES); + cfg.setAsnIpGroup(Integer.parseInt(entity.getUserRegion1())); + asnIpCfgDao.updateIssued(cfg); + } + }else if(isAudit==Constants.AUDIT_NOT_YES) {//取消审核通过 + maatCfg.setCompileId(entity.getCompileId()); + maatCfg.setServiceId(entity.getServiceId()); + maatCfg.setIsValid(0);//无效 + configCompileList.add(maatCfg); + maatBean.setConfigCompileList(configCompileList); + maatBean.setAuditTime(entity.getAuditTime()); + maatBean.setCreatorName(entity.getCurrentUser().getName()); + maatBean.setVersion(Constants.MAAT_VERSION); + maatBean.setOpAction(Constants.UPDATE_ACTION); + //调用服务接口取消配置 + String json=gsonToJson(maatBean); + logger.info("asn策略取消下发配置参数:"+json); + //调用服务接口下发配置 + ToMaatResult result = ConfigServiceUtil.put(json,1); + logger.info("asn策略取消配置响应信息:"+result.getMsg()); + }else { + throw new RuntimeException("unknown isAudit value "+isAudit); + } + + } +} diff --git a/src/main/resources/messages/message_en.properties b/src/main/resources/messages/message_en.properties index d891e5131..30ebb3f3d 100644 --- a/src/main/resources/messages/message_en.properties +++ b/src/main/resources/messages/message_en.properties @@ -1132,4 +1132,8 @@ topic=Topic website_server=Website Server domain_existed=Domain Has Existed app_ssl_cert_feature_monit=APP SSL Cert Feature Monitoring -app_header_feature_monit=APP Header Feature Monitoring \ No newline at end of file +app_header_feature_monit=APP Header Feature Monitoring +can_not_edit_issued_ans_ip=Can not edit issued ASN IP +is_issued=Is Issued +asn_ip_configuration=ASN IP Configuration +asn_policy=ASN Policy \ No newline at end of file diff --git a/src/main/resources/messages/message_zh_CN.properties b/src/main/resources/messages/message_zh_CN.properties index 93e50d298..60ba0c1cb 100644 --- a/src/main/resources/messages/message_zh_CN.properties +++ b/src/main/resources/messages/message_zh_CN.properties @@ -1129,4 +1129,8 @@ topic=\u4E3B\u9898 website_server=\u7F51\u7AD9 domain_existed=\u57DF\u540D\u5DF2\u7ECF\u5B58\u5728 app_ssl_cert_feature_monit=APP SSL\u8BC1\u4E66\u7279\u5F81\u76D1\u6D4B -app_header_feature_monit=APP\u5C42\u5934\u7279\u5F81\u76D1\u6D4B \ No newline at end of file +app_header_feature_monit=APP\u5C42\u5934\u7279\u5F81\u76D1\u6D4B +can_not_edit_issued_ans_ip=\u4E0D\u80FD\u4FEE\u6539\u5DF2\u7ECF\u4E0B\u53D1\u8FC7\u7684ASN IP +is_issued=\u662F\u5426\u4E0B\u53D1 +asn_ip_configuration=ASN IP\u914D\u7F6E +asn_policy=ASN\u7B56\u7565 \ No newline at end of file diff --git a/src/main/resources/nis.properties b/src/main/resources/nis.properties index 45cc906e4..4f140cd64 100644 --- a/src/main/resources/nis.properties +++ b/src/main/resources/nis.properties @@ -442,7 +442,7 @@ specific_service_cfg_type_encrypted_tunnel_behavior=encrypted_tunnel_behavior specific_service_cfg_type_basic_protocol=basic_protocol #\u57fa\u7840\u534f\u8bae\u81ea\u5b9a\u4e49\u57df proto_id_region=PROTO_ID -#拦截IP自定义域key +#\u62e6\u622aIP\u81ea\u5b9a\u4e49\u57dfkey keyring_id=keyring_id droprate=Droprate bandwidth=Bandwidth @@ -465,4 +465,5 @@ app_cfg_userregion_splitor=& app_id_region=APP_ID #application spec service code scope app_spec_service_code_max_val=310000 -app_spec_service_code_min_val=300001 \ No newline at end of file +app_spec_service_code_min_val=300001 +groupReuseSources=groupReuseSources \ No newline at end of file diff --git a/src/main/resources/sql/about_asn.sql b/src/main/resources/sql/about_asn.sql index e40f801f1..b5e5a2b31 100644 --- a/src/main/resources/sql/about_asn.sql +++ b/src/main/resources/sql/about_asn.sql @@ -23,7 +23,7 @@ CREATE TABLE `asn_ip_cfg` ( `audit_time` DATETIME DEFAULT NULL, `service_id` INT(11) NOT NULL COMMENT '参考系统业务类型管理表', `request_id` INT(11) NOT NULL COMMENT '取自request_info.id', - `compile_id` INT(11) NOT NULL COMMENT '取自服务接口返回的maat配置的编译id,配置初始入库时获取。', + `region_id` INT(11) NOT NULL COMMENT '取自服务接口返回的maat配置的域id,配置初始入库时获取。', `is_area_effective` INT(11) NOT NULL COMMENT '0否,1是', `classify` VARCHAR(128) DEFAULT NULL COMMENT '分类id,多个用英文逗号分隔', `attribute` VARCHAR(128) DEFAULT NULL COMMENT '性质id,多个用英文逗号分隔', @@ -39,8 +39,7 @@ CREATE TABLE `asn_ip_cfg` ( `dest_ip_address` VARCHAR (128) DEFAULT NULL, `dest_port` VARCHAR(16) DEFAULT NULL, `ratelimit` VARCHAR(10) DEFAULT NULL, - `dns_strategy_id` INT(11) DEFAULT NULL, - `IR_TYPE` INT (11) DEFAULT NULL, + `asn_ip_group` INT(11) DEFAULT NULL, `user_region1` VARCHAR(1024) DEFAULT '' COMMENT '预留自定义域1', `user_region2` VARCHAR(1024) DEFAULT '' COMMENT '预留自定义域2', `user_region3` VARCHAR(1024) DEFAULT '' COMMENT '预留自定义域3', diff --git a/src/main/resources/sql/update_function_region_dict_data.sql b/src/main/resources/sql/update_function_region_dict_data.sql index 1fefff423..16e7abd08 100644 --- a/src/main/resources/sql/update_function_region_dict_data.sql +++ b/src/main/resources/sql/update_function_region_dict_data.sql @@ -68,8 +68,16 @@ UPDATE function_region_dict SET config_ip_port_show='1,2' ,config_ip_type='4,6,4 #voip ip UPDATE function_service_dict SET region_code='1,2' WHERE function_id=24 AND ACTION IN(1,16); UPDATE function_region_dict SET config_ip_port_show='1,2' ,config_ip_type='4,6,46,64,10',config_ip_pattern='1,2,3',config_port_pattern='1,2',config_direction='0,1',config_protocol='0,6,17' WHERE dict_id=8; - - - - +#asn ip +INSERT INTO function_region_dict +(function_id,config_region_code,config_region_value,config_desc,is_maat,region_type,config_ip_type,config_ip_pattern,config_port_pattern,config_direction,config_protocol,config_ip_port_show,config_region_sort,is_valid) VALUE +(600,1,'NTC_ASN_IP','asn ip池',1,1,'4,6','1,2,3','1,2','0','0','2',1,1) +#asn 策略 +INSERT INTO function_region_dict +(function_id,config_region_code,config_region_value,config_desc,is_maat,region_type,config_region_sort,is_valid) VALUE +(601,1,'NTC_ASN_IP','asn策略',1,1,1,1) +INSERT INTO function_service_dict (function_id,protocol_id,ACTION,action_code,service_id,service_name,service_desc,is_valid,region_code) +VALUES(601,0,1,'monit',149,'ANS_POLICY_REJECT','ANS_POLICY_REJECT',1,1) +INSERT INTO function_service_dict (function_id,protocol_id,ACTION,action_code,service_id,service_name,service_desc,is_valid,region_code) +VALUES(601,0,16,'reject',37,'ANS_POLICY_REJECT','ANS_POLICY_REJECT',1,1) diff --git a/src/main/webapp/WEB-INF/tags/sys/delRow.tag b/src/main/webapp/WEB-INF/tags/sys/delRow.tag index 6dcd6b3ca..c409177e1 100644 --- a/src/main/webapp/WEB-INF/tags/sys/delRow.tag +++ b/src/main/webapp/WEB-INF/tags/sys/delRow.tag @@ -69,6 +69,15 @@ function update(url){ top.$.jBox.tip("", ""); return; } + //处理asnIp,asn组下发过的ip配置不允许修改 + if(cked.attr("serviceGroupId")&&cked.attr("isValid")){ + var serviceGroupId=cked.attr("serviceGroupId"); + var _isValid=cked.attr("isValid"); + if(_isValid==1){ + top.$.jBox.tip("", ""); + return; + } + } doAll(checkboxes,url); }else{ top.$.jBox.tip("", ""); diff --git a/src/main/webapp/WEB-INF/views/basics/asnIpCfgFormAdd.jsp b/src/main/webapp/WEB-INF/views/basics/asnIpCfgFormAdd.jsp new file mode 100644 index 000000000..a6e6367ed --- /dev/null +++ b/src/main/webapp/WEB-INF/views/basics/asnIpCfgFormAdd.jsp @@ -0,0 +1,238 @@ +<%@ page contentType="text/html;charset=UTF-8"%> +<%@ include file="/WEB-INF/include/taglib.jsp"%> + + +<spring:message code="asn_ip_configuration"></spring:message> + + + + +
+ +

+ +

+ +
+
+
+
+
+ + +
+
+
+ +
+ + + + + + + + + + + + + +
+ +
+
+
+ +
+ +
+
+
+
+
+ +
+ +
+
+
+
+ +

+ + +

+ +
+
+
+
+
+
+ + +
+
+
+
+
+
+
+ +
+
+
+
+
+ + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/basics/asnIpCfgFormUpdate.jsp b/src/main/webapp/WEB-INF/views/basics/asnIpCfgFormUpdate.jsp new file mode 100644 index 000000000..e068ca654 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/basics/asnIpCfgFormUpdate.jsp @@ -0,0 +1,207 @@ +<%@ page contentType="text/html;charset=UTF-8"%> +<%@ include file="/WEB-INF/include/taglib.jsp"%> + + +<spring:message code="asn_ip_configuration"></spring:message> + + + + +
+ +

+ +

+ +
+
+
+
+
+ + +
+
+
+ +
+ + + + + + + + + + + + + +
+ +
+
+
+ +
+ +
+
+
+
+
+ +
+ +
+
+
+ +
+ + <%-- <%@include file="/WEB-INF/include/form/complexIpInfo.jsp" %> --%> +
+
+
+
+ +
+ +
+
+
+
+
+
+
+
+ +
+ +
+
+
+
+
+
+ +
+ +
+
+
+
+
+ <%--
+
+
+ +
+ +
+
+
+
+
+
+ +
+ +
+
+
+
+
--%> + + + + + + + +
+ <%-- <%@include file="/WEB-INF/include/form/basicInfo.jsp" %> --%> +
+
+
+
+
+
+ + +
+
+
+
+
+
+
+ +
+
+
+
+
+ + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/basics/asnIpCfgList.jsp b/src/main/webapp/WEB-INF/views/basics/asnIpCfgList.jsp new file mode 100644 index 000000000..a68ebe976 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/basics/asnIpCfgList.jsp @@ -0,0 +1,363 @@ +<%@ page contentType="text/html;charset=UTF-8"%> +<%@ include file="/WEB-INF/include/taglib.jsp"%> + + +<spring:message code="asn_ip_configuration"></spring:message> + + + + +
+ + +

+ + <%-- --%> +

+ +
+
+
+
+
+ + + + + + + + + +
+
+ <%-- + + + + + + + --%> +
+ +
+ +
+
+ + + + + <%-- --%> + + +
+ + + +
+
+
+ + + +
+
+ + + + + <%-- +
+ + +
+
--%> + href="javascript:;"> + + +
+
+ + + +
+
+
+
+ + +
+
+ +
+
+ + " onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/> + +
+
+ +
+
+ + " onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/> + +
+
+ +
+
+ + " onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/> + +
+
+ + <%--
+
+ + " onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/> + +
+
+ +
+
+ + " onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/> + +
+
--%> +
+ + +
+ + +
+
+
+ + + + + + <%-- --%> + + + + + <%-- --%> + + <%-- --%> + <%-- --%> + <%-- + + + --%> + + <%-- --%> + <%-- --%> + + + + + <%-- + --%> + <%-- --%> + + + + + + + + + + + <%-- --%> + + <%-- --%> + <%-- --%> + <%-- + + + --%> + <%-- --%> + + <%-- --%> + <%-- --%> + + + + + <%-- + --%> + + + + +
${cfg.cfgDesc }${cfg.asnIpGroupName } + + + + + ${fns:abbr(cfg.destIpAddress, 42)}${cfg.destPort } + + + + + + + + + + + + + + ${cfg.requestName } + + + + + + + + + + + + + + + ${fns:abbr(classify,20)} + + + + + + + + + + + + + + + + + ${fns:abbr(attribute,20)} + + + + + + + + + + + + + + + + + ${fns:abbr(lableInfo,20)} + + ${cfg.areaEffectiveIds } + + + + + + + + + + +
${cfg.creatorName }${cfg.editorName }${cfg.auditorName }
+
${page}
+
+ +
+
+
+ + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/cfg/asnPolicyCfgForm.jsp b/src/main/webapp/WEB-INF/views/cfg/asnPolicyCfgForm.jsp new file mode 100644 index 000000000..6a1fe48ce --- /dev/null +++ b/src/main/webapp/WEB-INF/views/cfg/asnPolicyCfgForm.jsp @@ -0,0 +1,135 @@ +<%@ page contentType="text/html;charset=UTF-8"%> +<%@ include file="/WEB-INF/include/taglib.jsp"%> + + +<spring:message code="asn_policy"></spring:message> + + + + +
+ +

+ +

+ +
+
+
+
+
+ + + +
+
+
+ +
+ + + + + + + + + + + + + +
+ +
+
+
+ +
+ +
+
+
+
+
+ +
+ +
+
+
+
+
+ +
+ + + +
+
+
+
+
+ + <%-- <%@include file="/WEB-INF/include/form/complexIpInfo.jsp" %> + <%@include file="/WEB-INF/include/form/basicInfo.jsp" %>--%> +
+
+
+
+
+
+ + +
+
+
+
+
+
+
+ +
+
+
+
+
+ + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/cfg/asnPolicyCfgList.jsp b/src/main/webapp/WEB-INF/views/cfg/asnPolicyCfgList.jsp new file mode 100644 index 000000000..a5b8bd2b1 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/cfg/asnPolicyCfgList.jsp @@ -0,0 +1,391 @@ +<%@ page contentType="text/html;charset=UTF-8"%> +<%@ include file="/WEB-INF/include/taglib.jsp"%> + + +<spring:message code="asn_policy"></spring:message> + + + + + + +
+ + +

+ +

+ +
+
+
+
+ + + + + + + + + + +
+
+ + + + + + + + +
+ +
+ +
+
+ + + + + <%-- + + + --%> + + +
+ + + +
+
+
+ + + +
+
+ + + + + +
+ + +
+
+ href="javascript:;"> + + +
+
+ + + +
+
+
+
+ + +
+
+ +
+
+ + " onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/> + +
+
+ +
+
+ + " onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/> + +
+
+ +
+
+ + " onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/> + +
+
+ +
+
+ + " onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/> + +
+
+ +
+
+ + " onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/> + +
+
+
+ + +
+ + +
+
+
+ + + + + + + + + <%-- + + + + + --%> + + + <%-- --%> + + + + + + + + + + + + + + + + + <%-- + + + + + --%> + + + <%-- --%> + + + + + + + + + +
+ <%-- --%> + + ${indexCfg.compileId }${indexCfg.cfgDesc }${indexCfg.asnIpGroupName} + + + + + + + + + + + + + + + + + + + ${indexCfg.requestName } + + + + + + + + + + + + + + + ${fns:abbr(classify,20)} + + + + + + + + + + + + + + + + + ${fns:abbr(attribute,20)} + + + + + + + + + + + + + + + + + + ${fns:abbr(lableInfo,20)} + + + + + + + + + + + + +
${indexCfg.creatorName }${indexCfg.editorName }${indexCfg.auditorName }
+
${page}
+
+ +
+
+
+ + + \ No newline at end of file