diff --git a/src/main/java/com/nis/web/controller/configuration/proxy/InterceptController.java b/src/main/java/com/nis/web/controller/configuration/proxy/InterceptController.java index 7cb65e3e7..561d247c0 100644 --- a/src/main/java/com/nis/web/controller/configuration/proxy/InterceptController.java +++ b/src/main/java/com/nis/web/controller/configuration/proxy/InterceptController.java @@ -40,29 +40,19 @@ import com.nis.web.security.UserUtils; @Controller @RequestMapping("${adminPath}/proxy/intercept") public class InterceptController extends CommonController{ - @RequestMapping(value = {"/ip/list"}) -// @RequiresPermissions(value={"website:dns:config"}) + @RequestMapping(value = {"/ip/list","domain/list"}) public String ipList(Model model,@ModelAttribute("cfg")CfgIndexInfo cfg,HttpServletRequest request,HttpServletResponse response) { Page searchPage=new Page(request,response,"a"); Page page = websiteCfgService.getWebsiteList(searchPage, cfg); model.addAttribute("page", page); initPageCondition(model,cfg); - return "/cfg/intercept/interceptIpList"; + return "/cfg/intercept/interceptList"; } - @RequestMapping(value = {"/domain/list"}) -// @RequiresPermissions(value={"intercept:domain:config","intercept:domain:confirm"},logical=Logical.OR) - public String domainList(String cfgName,Model model,@ModelAttribute("cfg")HttpUrlCfg cfg,HttpServletRequest request,HttpServletResponse response) { - this._domainList(cfgName,model, cfg, request, response); - model.addAttribute("urlPrefix","/proxy/intercept/domain"); - model.addAttribute("requiresPermissionPrefix","intercept:domain"); - return "/cfg/common/domainList"; - } - - @RequestMapping(value = {"/interceptIpForm"}) - @RequiresPermissions(value={"intercept:ip:config"}) + @RequestMapping(value = {"/interceptIpForm","interceptDomainForm"}) + @RequiresPermissions(value={"intercept:ip:config","intercept:domain:config"}) public String interceptIpForm(Model model,String ids,CfgIndexInfo entity) { if(StringUtils.isNotBlank(ids)){ - entity = interceptCfgService.getInterceptIpCfg(Long.parseLong(ids)); + entity = interceptCfgService.getInterceptCfg(Long.parseLong(ids)); initUpdateFormCondition(model,entity); }else{ initFormCondition(model,entity); @@ -72,20 +62,12 @@ public class InterceptController extends CommonController{ //model.addAttribute("dnsResStrategys", resStrategys); model.addAttribute("_cfg", entity); - return "/cfg/intercept/interceptIpForm"; + return "/cfg/intercept/interceptForm"; } - @RequestMapping(value = {"/domain/form"}) - @RequiresPermissions(value={"intercept:domain:config"}) - public String domainForm(String cfgName,Model model,String ids,Integer functionId,HttpUrlCfg entity) { - this._domainForm(cfgName, model, ids, functionId, entity); - model.addAttribute("urlPrefix","/proxy/intercept/domain"); - model.addAttribute("requiresPermissionPrefix","intercept:domain"); - return "/cfg/common/domainForm"; - } - @RequestMapping(value = {"/ip/saveOrUpdate"}) + @RequestMapping(value = {"/ip/saveOrUpdate","/domain/saveOrUpdate"}) public String saveInterceptIpCfg(RedirectAttributes redirectAttributes,Model model,HttpServletRequest request,HttpServletResponse response,String ids,CfgIndexInfo entity) { try { - interceptCfgService.saveInterceptIpCfg(entity); + interceptCfgService.saveInterceptCfg(entity); addMessage(redirectAttributes,"save_success"); } catch (Exception e) { addMessage(redirectAttributes,"save_failed"); @@ -93,9 +75,9 @@ public class InterceptController extends CommonController{ return "redirect:" + adminPath +"/proxy/intercept/ip/list?functionId="+entity.getFunctionId(); } - @RequestMapping(value = {"/ajaxInterceptIpSubList"}) + @RequestMapping(value = {"/ajaxInterceptIpSubList","/ajaxInterceptDomainSubList"}) public String ajaxInterceptIpSubList(Model model,Long cfgId,Integer index) { - CfgIndexInfo cfg = interceptCfgService.getInterceptIpCfg(cfgId); + CfgIndexInfo cfg = interceptCfgService.getInterceptCfg(cfgId); List tabList = new ArrayList(); if(cfg.getIpPortList()!=null){ String cfgType = null; @@ -115,19 +97,28 @@ public class InterceptController extends CommonController{ } } } + if(cfg.getHttpUrlList()!=null){ + String cfgType = null; + for(BaseStringCfg keyword:cfg.getHttpUrlList()){ + if(!keyword.getCfgType().equals(cfgType)){ + tabList.add(new String[]{"2",keyword.getCfgType()}); + cfgType = keyword.getCfgType(); + } + } + } model.addAttribute("_cfg", cfg); model.addAttribute("index", index); model.addAttribute("tabList", tabList); - return "/cfg/intercept/interceptIpSubList"; + return "/cfg/intercept/interceptSubList"; } - @RequestMapping(value = {"auditInterceptIpCfg"}) - @RequiresPermissions(value={"intercept:ip:confirm"}) + @RequestMapping(value = {"auditInterceptIpCfg","auditInterceptDomainCfg"}) + @RequiresPermissions(value={"intercept:ip:confirm","intercept:domain:confirm"}) public String auditInterceptIpCfg(Integer isAudit,Integer isValid,String ids,Integer functionId, RedirectAttributes redirectAttributes) { CfgIndexInfo entity = new CfgIndexInfo(); String[] idArray = ids.split(","); for(String id :idArray){ - entity = interceptCfgService.getInterceptIpCfg(Long.parseLong(id)); + entity = interceptCfgService.getInterceptCfg(Long.parseLong(id)); entity.setIsAudit(isAudit); entity.setIsValid(isValid); entity.setAuditorId(UserUtils.getUser().getId()); @@ -144,8 +135,8 @@ public class InterceptController extends CommonController{ return "redirect:" + adminPath +"/proxy/intercept/ip/list?functionId="+functionId; } - @RequestMapping(value = {"updateInterceptIpValid"}) - @RequiresPermissions(value={"intercept:ip:config"}) + @RequestMapping(value = {"updateInterceptIpValid","updateInterceptDomainValid"}) + @RequiresPermissions(value={"intercept:ip:config","intercept:domain:config"}) public String updateInterceptIpValid(Integer isValid,String ids,Integer functionId, RedirectAttributes redirectAttributes) { try { interceptCfgService.updatInterceptValid(isValid,ids,functionId); @@ -157,28 +148,7 @@ public class InterceptController extends CommonController{ return "redirect:" + adminPath +"/proxy/intercept/ip/list?functionId="+functionId; } - @RequestMapping(value = {"/domain/saveOrUpdate"}) - public String saveOrUpdateDomain(String cfgName,RedirectAttributes model, HttpUrlCfg cfg) { - this._saveOrUpdateDomain(cfgName, model, cfg); - return "redirect:" + adminPath +"/proxy/intercept/domain/list?functionId="+cfg.getFunctionId(); - } - - @RequestMapping(value = {"/domain/delete"}) - @RequiresPermissions("intercept:domain:config") - public String deleteDomain(String cfgName,String ids,String compileIds,Integer functionId,RedirectAttributes model) { - this._deleteDomain(cfgName, ids, compileIds, functionId, model); - model.addAttribute("urlPrefix","/proxy/intercept/domain"); - model.addAttribute("requiresPermissionPrefix","intercept:domain"); - return "redirect:" + adminPath +"/proxy/intercept/domain/list?functionId="+functionId; - } - @RequestMapping(value = {"/domain/audit"}) - @RequiresPermissions("intercept:domain:confirm") - public String auditDomain(String ids,HttpUrlCfg cfg,RedirectAttributes redirectAttributes) { - this._auditDomain(ids, cfg, redirectAttributes); - redirectAttributes.addAttribute("urlPrefix","/proxy/intercept/domain"); - redirectAttributes.addAttribute("requiresPermissionPrefix","intercept:domain"); - return "redirect:" + adminPath +"/proxy/intercept/domain/list?functionId="+cfg.getFunctionId(); - } + /* //ip配置导入 @RequestMapping(value = "/ip/import", method=RequestMethod.POST) public String importIp(String cfgName,RedirectAttributes redirectAttributes, @@ -198,5 +168,5 @@ public class InterceptController extends CommonController{ public void exportIp(String columns,Model model,HttpServletRequest request,HttpServletResponse response, @ModelAttribute("cfg")IpPortCfg entity,String ids,RedirectAttributes redirectAttributes){ this._exportIp(columns,model, request, response, entity, ids, redirectAttributes); - } + }*/ } diff --git a/src/main/java/com/nis/web/service/configuration/InterceptCfgService.java b/src/main/java/com/nis/web/service/configuration/InterceptCfgService.java index 1900a79c1..7c44cd8a4 100644 --- a/src/main/java/com/nis/web/service/configuration/InterceptCfgService.java +++ b/src/main/java/com/nis/web/service/configuration/InterceptCfgService.java @@ -1,40 +1,21 @@ package com.nis.web.service.configuration; -import java.beans.PropertyDescriptor; -import java.lang.reflect.Method; -import java.lang.reflect.Modifier; import java.util.ArrayList; -import java.util.Arrays; import java.util.Date; -import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; -import org.springframework.beans.BeansException; -import org.springframework.beans.FatalBeanException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import org.springframework.util.Assert; -import org.springframework.util.ClassUtils; import com.nis.domain.Page; 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.BaseStringCfg; import com.nis.domain.configuration.CfgIndexInfo; -import com.nis.domain.configuration.ComplexkeywordCfg; -import com.nis.domain.configuration.DnsDomainCfg; -import com.nis.domain.configuration.HttpBodyCfg; -import com.nis.domain.configuration.HttpReqHeadCfg; -import com.nis.domain.configuration.HttpResHeadCfg; import com.nis.domain.configuration.HttpUrlCfg; import com.nis.domain.configuration.InterceptPktBin; import com.nis.domain.configuration.IpPortCfg; -import com.nis.domain.configuration.SslKeywordCfg; import com.nis.domain.maat.MaatCfg; import com.nis.domain.maat.MaatCfg.NumBoundaryCfg; import com.nis.domain.maat.ToMaatBean; @@ -46,13 +27,9 @@ import com.nis.domain.maat.MaatCfg.StringCfg; import com.nis.exceptions.MaatConvertException; import com.nis.util.ConfigServiceUtil; import com.nis.util.Constants; -import com.nis.util.DictUtils; -import com.nis.util.IpUtil; import com.nis.util.StringUtil; import com.nis.web.dao.configuration.AreaIpCfgDao; import com.nis.web.dao.configuration.InterceptCfgDao; -import com.nis.web.dao.configuration.IpCfgDao; -import com.nis.web.dao.configuration.StringCfgDao; import com.nis.web.dao.configuration.WebsiteCfgDao; import com.nis.web.security.UserUtils; import com.nis.web.service.BaseService; @@ -72,12 +49,14 @@ public class InterceptCfgService extends CrudService @Autowired protected AreaIpCfgDao areaIpCfgDao; - public CfgIndexInfo getInterceptIpCfg(Long cfgId){ + public CfgIndexInfo getInterceptCfg(Long cfgId){ CfgIndexInfo entity = websiteCfgDao.getCfgIndexInfo(cfgId); List ipPortList = websiteCfgDao.getIpPortList(entity); List pktBinList = interceptCfgDao.getInterceptPktBin(entity); + List httpUrlList = websiteCfgDao.getHttpUrlList(entity); entity.setIpPortList(ipPortList); entity.setInterceptPktBinList(pktBinList); + entity.setHttpUrlList(httpUrlList); return entity; } public Page getWebsiteList(Page page, CfgIndexInfo entity){ @@ -93,7 +72,7 @@ public class InterceptCfgService extends CrudService * @param entity */ - public void saveInterceptIpCfg(CfgIndexInfo entity){ + public void saveInterceptCfg(CfgIndexInfo entity){ if(!entity.getAction().equals(Constants.REPLACE_ACTION)){ entity.setInterceptPktBinList(null); } @@ -115,33 +94,41 @@ public class InterceptCfgService extends CrudService logger.info("获取编译ID出错"); throw new MaatConvertException(":"+e.getMessage()); } - entity.setCompileId(compileId); - entity.setCreateTime(new Date()); - entity.setCreatorId(entity.getCurrentUser().getId()); - websiteCfgDao.saveCfgIndex(entity); - if(entity.getIpPortList()!=null){ - for(IpPortCfg cfg:entity.getIpPortList()){ + entity.setCompileId(compileId); + entity.setCreateTime(new Date()); + entity.setCreatorId(entity.getCurrentUser().getId()); + websiteCfgDao.saveCfgIndex(entity); + if(entity.getIpPortList()!=null){ + for(IpPortCfg cfg:entity.getIpPortList()){ + BeanUtils.copyProperties(entity, cfg,new String[]{"cfgRegionCode","cfgType"}); + websiteCfgDao.saveIpPortCfg(cfg); + } + } + + if(entity.getInterceptPktBinList()!=null ){ + for(InterceptPktBin cfg:entity.getInterceptPktBinList()){ + if(StringUtils.isNotBlank(cfg.getCfgKeywords())){ BeanUtils.copyProperties(entity, cfg,new String[]{"cfgRegionCode","cfgType"}); - websiteCfgDao.saveIpPortCfg(cfg); + interceptCfgDao.saveInterceptPktBin(cfg); } } - - if(entity.getInterceptPktBinList()!=null ){ - for(InterceptPktBin cfg:entity.getInterceptPktBinList()){ - if(StringUtils.isNotBlank(cfg.getCfgKeywords())){ - BeanUtils.copyProperties(entity, cfg,new String[]{"cfgRegionCode","cfgType"}); - interceptCfgDao.saveInterceptPktBin(cfg); - } - } - } - //保存区域IP信息 - if(entity.getAreaCfg()!=null){ - for(AreaIpCfg cfg:entity.getAreaCfg()){ - cfg.initDefaultValue(); + } + if(entity.getHttpUrlList()!=null ){ + for(HttpUrlCfg cfg:entity.getHttpUrlList()){ + if(StringUtils.isNotBlank(cfg.getCfgKeywords())){ BeanUtils.copyProperties(entity, cfg,new String[]{"cfgRegionCode","cfgType"}); - areaIpCfgDao.saveAreaIpCfg(cfg); + websiteCfgDao.saveHttpUrlCfg(cfg); } } + } + //保存区域IP信息 + if(entity.getAreaCfg()!=null){ + for(AreaIpCfg cfg:entity.getAreaCfg()){ + cfg.initDefaultValue(); + BeanUtils.copyProperties(entity, cfg,new String[]{"cfgRegionCode","cfgType"}); + areaIpCfgDao.saveAreaIpCfg(cfg); + } + } }else{ @@ -153,6 +140,7 @@ public class InterceptCfgService extends CrudService //无效子配置后,再新增子配置 interceptCfgDao.deleteInterceptIpCfg(entity); interceptCfgDao.deleteInterceptPktBin(entity); + websiteCfgDao.deleteHttpUrlCfg(entity); AreaIpCfg area = new AreaIpCfg(); area.setCompileId(entity.getCompileId()); area.setFunctionId(entity.getFunctionId()); @@ -173,6 +161,14 @@ public class InterceptCfgService extends CrudService } } } + if(entity.getHttpUrlList()!=null){ + for(HttpUrlCfg cfg:entity.getHttpUrlList()){ + if(StringUtils.isNotBlank(cfg.getCfgKeywords())){ + BeanUtils.copyProperties(entity, cfg,new String[]{"cfgRegionCode","cfgType"}); + websiteCfgDao.saveHttpUrlCfg(cfg); + } + } + } //保存区域IP信息 if(entity.getAreaCfg()!=null){ for(AreaIpCfg cfg:entity.getAreaCfg()){ @@ -201,7 +197,7 @@ public class InterceptCfgService extends CrudService entity.setFunctionId(functionId); websiteCfgDao.updateCfgValid(entity); //查询子配置 - entity = this.getInterceptIpCfg(Long.parseLong(id)); + entity = this.getInterceptCfg(Long.parseLong(id)); if(entity.getIpPortList()!=null && entity.getIpPortList().size()>0){ IpPortCfg cfg = new IpPortCfg(); BeanUtils.copyProperties(entity, cfg, new String[]{"cfgId"}); @@ -215,6 +211,13 @@ public class InterceptCfgService extends CrudService cfg.setTableName(InterceptPktBin.getTablename()); websiteCfgDao.updateCfgValid(cfg); } + if(entity.getHttpUrlList()!=null && entity.getHttpUrlList().size()>0) + { + HttpUrlCfg cfg = new HttpUrlCfg(); + BeanUtils.copyProperties(entity, cfg, new String[]{"cfgId"}); + cfg.setTableName(HttpUrlCfg.getTablename()); + websiteCfgDao.updateCfgValid(cfg); + } //保存区域IP信息 if(entity.getAreaCfg()!=null && entity.getAreaCfg().size()>0){ AreaIpCfg cfg = new AreaIpCfg(); @@ -227,7 +230,7 @@ public class InterceptCfgService extends CrudService } /** - * dns配置审核 + * 配置审核 * @param entity * @param isAudit * @throws MaatConvertException @@ -248,7 +251,7 @@ public class InterceptCfgService extends CrudService List areaIpRegionList = new ArrayList(); //查询子配置并修改审核状态 - entity = this.getInterceptIpCfg(entity.getCfgId()); + entity = this.getInterceptCfg(entity.getCfgId()); if(entity.getIpPortList()!=null && entity.getIpPortList().size()>0){ IpPortCfg cfg = new IpPortCfg(); BeanUtils.copyProperties(entity, cfg, new String[]{"cfgId"}); @@ -274,6 +277,17 @@ public class InterceptCfgService extends CrudService strRegionList=map.get("dstList"); } } + if(entity.getHttpUrlList()!=null && entity.getHttpUrlList().size()>0){ + HttpUrlCfg cfg = new HttpUrlCfg(); + BeanUtils.copyProperties(entity, cfg, new String[]{"cfgId"}); + cfg.setTableName(HttpUrlCfg.getTablename()); + websiteCfgDao.auditCfg(cfg); + if(isAudit==1){ + Map map = cfgConvert(strRegionList,entity.getHttpUrlList(),2,entity,groupRelationList); + groupRelationList=map.get("groupList"); + strRegionList=map.get("dstList"); + } + } //保存区域IP信息 List areaIpCfgList=areaIpCfgDao.getByCompileId(entity.getCompileId()); if(!StringUtil.isEmpty(areaIpCfgList)){ @@ -345,10 +359,10 @@ public class InterceptCfgService extends CrudService maatBean.setOpAction(Constants.INSERT_ACTION); //调用服务接口下发配置数据 String json=gsonToJson(maatBean); - logger.info("intercept IP 配置下发配置参数:"+json); + logger.info("intercept IP/DNS 配置下发配置参数:"+json); //调用服务接口下发配置 ToMaatResult result = ConfigServiceUtil.postMaatCfg(json); - logger.info("intercept IP 配置下发响应信息:"+result.getMsg()); + logger.info("intercept IP/DNS 配置下发响应信息:"+result.getMsg()); }else if(isAudit==3){ maatCfg.setCompileId(entity.getCompileId()); @@ -362,10 +376,10 @@ public class InterceptCfgService extends CrudService maatBean.setOpAction(Constants.UPDATE_ACTION); //调用服务接口取消配置 String json=gsonToJson(maatBean); - logger.info("intercept IP 配置下发配置参数:"+json); + logger.info("intercept IP/DNS 配置下发配置参数:"+json); //调用服务接口下发配置 ToMaatResult result = ConfigServiceUtil.put(json,1); - logger.info("intercept IP 配置取消配置响应信息:"+result.getMsg()); + logger.info("intercept IP/DNS 配置取消配置响应信息:"+result.getMsg()); } } } diff --git a/src/main/webapp/WEB-INF/views/cfg/complexCfgForm.jsp b/src/main/webapp/WEB-INF/views/cfg/complexCfgForm.jsp index 18e892efe..22eb2d8e0 100644 --- a/src/main/webapp/WEB-INF/views/cfg/complexCfgForm.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/complexCfgForm.jsp @@ -78,7 +78,11 @@
- domainCheck + " + type="text" name="${cfgName}.cfgKeywords" value="${cfg.cfgKeywords}">
diff --git a/src/main/webapp/WEB-INF/views/cfg/intercept/interceptIpForm.jsp b/src/main/webapp/WEB-INF/views/cfg/intercept/interceptForm.jsp similarity index 75% rename from src/main/webapp/WEB-INF/views/cfg/intercept/interceptIpForm.jsp rename to src/main/webapp/WEB-INF/views/cfg/intercept/interceptForm.jsp index 9ddfc1d19..ac1864748 100644 --- a/src/main/webapp/WEB-INF/views/cfg/intercept/interceptIpForm.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/intercept/interceptForm.jsp @@ -144,11 +144,20 @@ +

- + + + + + + + + +

@@ -166,7 +175,7 @@
-
@@ -319,6 +328,7 @@
+ @@ -352,43 +362,84 @@ - -

- - -

- - <%-- --%> - - - - - - -
- <%@include file="/WEB-INF/views/cfg/complexCfgForm.jsp"%> -
- - -
-
-
- -