diff --git a/src/main/java/com/nis/domain/FunctionRegionDict.java b/src/main/java/com/nis/domain/FunctionRegionDict.java index 130984d68..613daeaf6 100644 --- a/src/main/java/com/nis/domain/FunctionRegionDict.java +++ b/src/main/java/com/nis/domain/FunctionRegionDict.java @@ -27,7 +27,14 @@ public class FunctionRegionDict extends BaseCfg { private String configPortPattern; private String configDirection; private String configProtocol; + private Integer configRegionSort; + public Integer getConfigRegionSort() { + return configRegionSort; + } + public void setConfigRegionSort(Integer configRegionSort) { + this.configRegionSort = configRegionSort; + } public String getConfigIpPortShow() { return configIpPortShow; } diff --git a/src/main/java/com/nis/domain/FunctionServiceDict.java b/src/main/java/com/nis/domain/FunctionServiceDict.java index 42215de2b..912676a1a 100644 --- a/src/main/java/com/nis/domain/FunctionServiceDict.java +++ b/src/main/java/com/nis/domain/FunctionServiceDict.java @@ -16,12 +16,12 @@ public class FunctionServiceDict extends BaseCfg { private String serviceName; private String serviceDesc; private String actionCode; - private Integer regionCode; + private String regionCode; - public Integer getRegionCode() { + public String getRegionCode() { return regionCode; } - public void setRegionCode(Integer regionCode) { + public void setRegionCode(String regionCode) { this.regionCode = regionCode; } public Integer getDictId() { diff --git a/src/main/java/com/nis/domain/callback/ProxyFileStrategyCfg.java b/src/main/java/com/nis/domain/callback/ProxyFileStrategyCfg.java new file mode 100644 index 000000000..f2373a6f3 --- /dev/null +++ b/src/main/java/com/nis/domain/callback/ProxyFileStrategyCfg.java @@ -0,0 +1,60 @@ +package com.nis.domain.callback; + +import com.nis.domain.configuration.BaseCfg; +/** + * http代理文件策略 + * @author nanfang + * + */ +public class ProxyFileStrategyCfg extends BaseCfg { + private static final long serialVersionUID = 4283944377949702481L; + public final static String TABLE_NAME = "PROXY_FILE_STRATEGY_CFG";//对应表名 + private String fileId;//glaxy返回的文件id + private String fileDesc;//文件描述 + private String url;//文件保存的url + private String contentType;//内容类型,如text/html,取字典表contentType + private String md5;//文件md5值 + private Long contentLength;//文件长度 + + public ProxyFileStrategyCfg() { + super(); + } + + public String getFileId() { + return fileId; + } + public void setFileId(String fileId) { + this.fileId = fileId; + } + public String getFileDesc() { + return fileDesc; + } + public void setFileDesc(String fileDesc) { + this.fileDesc = fileDesc; + } + public String getUrl() { + return url; + } + public void setUrl(String url) { + this.url = url; + } + public String getContentType() { + return contentType; + } + public void setContentType(String contentType) { + this.contentType = contentType; + } + public Long getContentLength() { + return contentLength; + } + public void setContentLength(Long contentLength) { + this.contentLength = contentLength; + } + public String getMd5() { + return md5; + } + public void setMd5(String md5) { + this.md5 = md5; + } + +} diff --git a/src/main/java/com/nis/domain/configuration/AppSslCertCfg.java b/src/main/java/com/nis/domain/configuration/AppSslCertCfg.java new file mode 100644 index 000000000..0d4af4a17 --- /dev/null +++ b/src/main/java/com/nis/domain/configuration/AppSslCertCfg.java @@ -0,0 +1,147 @@ +/** + *@Title: BaseStringConfig.java + *@Package com.nis.domain.restful + *@Description TODO + *@author dell + *@date 2018年2月5日 下午5:26:02 + *@version 版本号 + */ +package com.nis.domain.configuration; + +import com.google.gson.annotations.Expose; +import com.google.gson.annotations.SerializedName; +import com.nis.util.excel.ExcelField; + +/** + * APP SSL证书特征配置 + * @author dell + * + */ +public class AppSslCertCfg extends BaseCfg { + + /** + * + */ + private static final long serialVersionUID = -4366457794248757698L; + private static final String tableName="app_ssl_cert_cfg"; + @Expose + private Integer compileId; + @Expose + private Integer ratelimit; + private Integer appCode;//specific_service_cfg表一级节点的spec_service_code + private Integer behavCode;//specific_service_cfg表二级节点的spec_service_code + private Integer specServiceId; + private String district; + private String cfgKeywords; + private String appName; + + @Expose + @ExcelField(title="expression_type") + @SerializedName("exprType") + protected Integer exprType ; + + @Expose + @ExcelField(title="match_method") + @SerializedName("matchMethod") + protected Integer matchMethod ; + + @Expose + @ExcelField(title="whether_hexbinary") + @SerializedName("isHexbin") + protected Integer isHexbin; + + public Integer getExprType() { + return exprType; + } + + public void setExprType(Integer exprType) { + this.exprType = exprType; + } + + public Integer getMatchMethod() { + return matchMethod; + } + + public void setMatchMethod(Integer matchMethod) { + this.matchMethod = matchMethod; + } + + public Integer getIsHexbin() { + return isHexbin; + } + + public void setIsHexbin(Integer isHexbin) { + this.isHexbin = isHexbin; + } + @Override + public void initDefaultValue() { + // TODO Auto-generated method stub + super.initDefaultValue(); + this.isHexbin = 0; + } + + + public Integer getCompileId() { + return compileId; + } + public void setCompileId(Integer compileId) { + this.compileId = compileId; + } + + public static String getTablename() { + return tableName; + } + + public Integer getRatelimit() { + return ratelimit; + } + + public void setRatelimit(Integer ratelimit) { + this.ratelimit = ratelimit; + } + public Integer getAppCode() { + return appCode; + } + public void setAppCode(Integer appCode) { + this.appCode = appCode; + } + public Integer getSpecServiceId() { + return specServiceId; + } + public void setSpecServiceId(Integer specServiceId) { + this.specServiceId = specServiceId; + } + + public String getDistrict() { + return district; + } + + public void setDistrict(String district) { + this.district = district; + } + + public String getCfgKeywords() { + return cfgKeywords; + } + + public void setCfgKeywords(String cfgKeywords) { + this.cfgKeywords = cfgKeywords; + } + + public String getAppName() { + return appName; + } + + public void setAppName(String appName) { + this.appName = appName; + } + + public Integer getBehavCode() { + return behavCode; + } + + public void setBehavCode(Integer behavCode) { + this.behavCode = behavCode; + } + +} diff --git a/src/main/java/com/nis/domain/configuration/BaseCfg.java b/src/main/java/com/nis/domain/configuration/BaseCfg.java index 02472d9f0..8eae2e6f8 100644 --- a/src/main/java/com/nis/domain/configuration/BaseCfg.java +++ b/src/main/java/com/nis/domain/configuration/BaseCfg.java @@ -15,6 +15,7 @@ import com.fasterxml.jackson.annotation.JsonFormat; import com.google.gson.annotations.Expose; import com.google.gson.annotations.SerializedName; import com.nis.domain.BaseEntity; +import com.nis.util.Constants; import com.nis.util.excel.ExcelField; /** @@ -196,6 +197,18 @@ public class BaseCfg extends BaseEntity implements Cloneable{ */ protected Integer functionId; + /** + * do_log属性在界面(do_log:0不需要1记录所有日志2只记录结构化日志。默认是2) + */ + protected Integer doLog = Constants.MAAT_CFG_DOLOG_DEFAULT; + + + public Integer getDoLog() { + return doLog; + } + public void setDoLog(Integer doLog) { + this.doLog = doLog; + } /** * cfgRegionCode * @return cfgRegionCode diff --git a/src/main/java/com/nis/domain/configuration/CfgIndexInfo.java b/src/main/java/com/nis/domain/configuration/CfgIndexInfo.java index 569f71bfe..5ce860067 100644 --- a/src/main/java/com/nis/domain/configuration/CfgIndexInfo.java +++ b/src/main/java/com/nis/domain/configuration/CfgIndexInfo.java @@ -53,6 +53,8 @@ public class CfgIndexInfo extends BaseCfg { private List digestList; private List ntcSubscribeIdCfgList;//新增SUBSCRIBE_ID private NtcSubscribeIdCfg ntcSubscribeIdCfg; + private InterceptPktBin interceptPktBin; + private List interceptPktBinList; private Long dnsStrategyId; private String dnsStrategyName; @@ -63,6 +65,18 @@ public class CfgIndexInfo extends BaseCfg { private List p2pKeywordList; + public InterceptPktBin getInterceptPktBin() { + return interceptPktBin; + } + public void setInterceptPktBin(InterceptPktBin interceptPktBin) { + this.interceptPktBin = interceptPktBin; + } + public void setInterceptPktBinList(List interceptPktBinList) { + this.interceptPktBinList = interceptPktBinList; + } + public List getInterceptPktBinList() { + return interceptPktBinList; + } public List getNtcSubscribeIdCfgList() { return ntcSubscribeIdCfgList; } diff --git a/src/main/java/com/nis/domain/configuration/InterceptPktBin.java b/src/main/java/com/nis/domain/configuration/InterceptPktBin.java new file mode 100644 index 000000000..2f676ce28 --- /dev/null +++ b/src/main/java/com/nis/domain/configuration/InterceptPktBin.java @@ -0,0 +1,49 @@ +/** + *@Title: DnsDomainConfig.java + *@Package com.nis.domain.restful + *@Description TODO + *@author dell + *@date 2018年2月5日 下午3:34:14 + *@version 版本号 + */ +package com.nis.domain.configuration; + +/** + * @ClassName: DnsDomainConfig.java + * @Description: TODO + * @author (dell) + * @date 2018年2月5日 下午3:34:14 + * @version V1.0 + */ +public class InterceptPktBin extends ComplexkeywordCfg { + private static final String tableName="pxy_intercept_pkt_bin"; + /** + * @Fields serialVersionUID:TODO(用一句话描述这个变量表示什么) + * + * @since 1.0.0 + */ + + private static final long serialVersionUID = -2761078174512000577L; + + /* (non-Javadoc) + * @see com.nis.domain.configuration.ComplexkeywordCfg#initDefaultValue() + */ + @Override + public void initDefaultValue() { + // TODO Auto-generated method stub + super.initDefaultValue(); + this.exprType=0; + this.matchMethod=0; + this.isHexbin=0; + } + + /** + * tablename + * @return tablename + */ + + public static String getTablename() { + return tableName; + } + +} diff --git a/src/main/java/com/nis/util/Constants.java b/src/main/java/com/nis/util/Constants.java index 2365f5b10..f419468d4 100644 --- a/src/main/java/com/nis/util/Constants.java +++ b/src/main/java/com/nis/util/Constants.java @@ -11,7 +11,7 @@ public final class Constants { /** * MaatConfig 默认值 */ - public static Integer MAAT_CFG_DOLOG_DEFAULT=Configurations.getIntProperty("maat_cfg_dolog_default", 1); + public static Integer MAAT_CFG_DOLOG_DEFAULT=Configurations.getIntProperty("maat_cfg_dolog_default", 2); public static Integer MAAT_CFG_DOLOG_DOBLACKLIST_DEFAULT=Configurations.getIntProperty("maat_cfg_dolog_doblacklist_default", 1); public static Integer MAAT_CFG_DOLOG_CONFIGPERCENT_DEFAULT=Configurations.getIntProperty("maat_cfg_dolog_configpercent_default", 100); public static Integer MAAT_CFG_DOLOG_CONFIGOPTION_DEFAULT=Configurations.getIntProperty("maat_cfg_dolog_configoption_default", 1); @@ -480,6 +480,7 @@ public final class Constants { public static final String REDIRECT_RESPONSE_CODE_KEY = Configurations.getStringProperty("redirect_response_code_key","code"); public static final String REDIRECT_URL_KEY = Configurations.getStringProperty("redirect_url_key","url"); public static final String REDIRECT_CONTENT_KEY = Configurations.getStringProperty("redirect_content_key","content"); + public static final String CONTENT_FILE_ID_KEY = Configurations.getStringProperty("content_file_id_key","content_file_id"); public static final String REDIRECT_RESPONSE_CODE_STARTWITH = Configurations.getStringProperty("redirect_response_code_startwith","30"); public static final String REPLACE_ZONE_KEY = Configurations.getStringProperty("replace_zone_key","zone"); public static final String REPLACE_SUBSTITUTE_KEY = Configurations.getStringProperty("replace_substitute_key","substitute"); diff --git a/src/main/java/com/nis/web/controller/configuration/AppCfgController.java b/src/main/java/com/nis/web/controller/configuration/AppCfgController.java index 586f20711..1a9ed2334 100644 --- a/src/main/java/com/nis/web/controller/configuration/AppCfgController.java +++ b/src/main/java/com/nis/web/controller/configuration/AppCfgController.java @@ -22,6 +22,7 @@ import com.nis.domain.configuration.AppDomainCfg; import com.nis.domain.configuration.AppHttpCfg; import com.nis.domain.configuration.AppIpCfg; import com.nis.domain.configuration.AppPolicyCfg; +import com.nis.domain.configuration.AppSslCertCfg; import com.nis.domain.configuration.IpPortCfg; import com.nis.domain.specific.SpecificServiceCfg; import com.nis.exceptions.MaatConvertException; @@ -633,4 +634,114 @@ public class AppCfgController extends BaseController { appCfgService.updateAppByteCfgValid(isValid,ids,functionId); return "redirect:" + adminPath +"/app/byteCfgList?functionId="+functionId; } + + /** + * APP ssl证书特征配置 列表 + * @param model + * @param cfg + * @param request + * @param response + * @return + */ + @RequestMapping(value = {"sslCfgList"}) + public String sslCfgList(Model model,@ModelAttribute("cfg")AppSslCertCfg cfg,HttpServletRequest request,HttpServletResponse response) { + Page searchPage=new Page(request,response,"r"); + Page page = appCfgService.findAppSslList(searchPage, cfg); + for(AppSslCertCfg entity:page.getList()){ + SpecificServiceCfg app = specificServiceCfgService.getBySpecServiceId(entity.getSpecServiceId()); + entity.setAppName(app.getSpecServiceName()); + } + model.addAttribute("page", page); + initPageCondition(model,cfg); + return "/cfg/app/appSslCfgList"; + } + /** + * APP ssl证书特征配置表单(新增/修改) + * @param model + * @param ids + * @param entity + * @return + */ + @RequestMapping(value = {"sslCfgForm"}) + @RequiresPermissions(value={"app:ssl:config"}) + public String sslCfgForm(Model model,String ids,AppSslCertCfg entity) { + if(StringUtils.isNotBlank(ids)){ + entity = appCfgService.getAppSslCfg(Long.parseLong(ids)); + initUpdateFormCondition(model,entity); + }else{ + initFormCondition(model,entity); + } + model.addAttribute("_cfg", entity); + return "/cfg/app/appSslCfgForm"; + } + /** + * APP ssl证书特征配置(新增/修改)提交 + * @param model + * @param request + * @param response + * @param entity + * @param redirectAttributes + * @return + */ + @RequestMapping(value = {"saveAppSslCfg"}) + @RequiresPermissions(value={"app:ssl:config"}) + public String saveAppSslCfg(Model model,HttpServletRequest request,HttpServletResponse response, + AppSslCertCfg entity,RedirectAttributes redirectAttributes) { + try { + SpecificServiceCfg specificService = specificServiceCfgService.getBySpecServiceId(entity.getSpecServiceId()); + if(specificService!=null){ + entity.setAppCode(specificService.getSpecServiceCode()); + } + appCfgService.saveOrUpdateAppSslCfg(entity); + } catch (Exception e) { + e.printStackTrace(); + addMessage(redirectAttributes, e.getMessage()); + } + + return "redirect:" + adminPath +"/app/sslCfgList?functionId="+entity.getFunctionId(); + } + /** + * APP ssl证书特征配置 审核 + * @param isAudit + * @param isValid + * @param ids + * @param functionId + * @param redirectAttributes + * @return + */ + @RequestMapping(value = {"auditAppSslCfg"}) + @RequiresPermissions(value={"app:ssl:confirm"}) + public String auditAppSslCfg(Integer isAudit,Integer isValid,String ids,Integer functionId, RedirectAttributes redirectAttributes) { + AppSslCertCfg entity = new AppSslCertCfg(); + String[] idArray = ids.split(","); + for(String id :idArray){ + entity = appCfgService.getAppSslCfg(Long.parseLong(id)); + entity.setIsAudit(isAudit); + entity.setIsValid(isValid); + entity.setAuditorId(UserUtils.getUser().getId()); + entity.setAuditTime(new Date()); + entity.setFunctionId(functionId); + try { + appCfgService.auditAppSslCfg(entity,isAudit); + } catch (MaatConvertException e) { + e.printStackTrace(); + logger.info("app SSL配置下发失败:"+e.getMessage()); + addMessage(redirectAttributes, e.getMessage()); + } + } + return "redirect:" + adminPath +"/app/sslCfgList?functionId="+functionId; + } + /** + * APP ssl证书特征配置 删除 + * @param isValid + * @param ids + * @param functionId + * @return + */ + @RequestMapping(value = {"updateAppSslCfgValid"}) + @RequiresPermissions(value={"app:ssl:config"}) + public String updateAppSslCfgValid(Integer isValid,String ids,Integer functionId) { + appCfgService.updateAppSslCfgValid(isValid,ids,functionId); + return "redirect:" + adminPath +"/app/sslCfgList?functionId="+functionId; + } } diff --git a/src/main/java/com/nis/web/controller/configuration/ntc/IpController.java b/src/main/java/com/nis/web/controller/configuration/ntc/IpController.java index 7bd3a945d..d5696f3ac 100644 --- a/src/main/java/com/nis/web/controller/configuration/ntc/IpController.java +++ b/src/main/java/com/nis/web/controller/configuration/ntc/IpController.java @@ -56,11 +56,11 @@ public class IpController extends CommonController{ model.addAttribute("dropAction",Constants.DROP_ACTION); model.addAttribute("urlPrefix","/ntc/iplist"); model.addAttribute("requiresPermissionPrefix","iplist"); - if(specialFunctionId!=null && "ipsec".equals(specialFunctionId)) { - return "/cfg/ipsec/ipForm"; - }else if(specialFunctionId!=null && "ipaddr".equals(specialFunctionId)) { - return "/cfg/ipaddr/ipForm"; - } +// if(specialFunctionId!=null && "ipsec".equals(specialFunctionId)) { +// return "/cfg/ipsec/ipForm"; +// }else if(specialFunctionId!=null && "ipaddr".equals(specialFunctionId)) { +// return "/cfg/ipaddr/ipForm"; +// } return "/cfg/common/ipForm"; } @RequestMapping(value = {"saveOrUpdate"}) diff --git a/src/main/java/com/nis/web/controller/configuration/proxy/FileStrategyController.java b/src/main/java/com/nis/web/controller/configuration/proxy/FileStrategyController.java new file mode 100644 index 000000000..83553f4a5 --- /dev/null +++ b/src/main/java/com/nis/web/controller/configuration/proxy/FileStrategyController.java @@ -0,0 +1,155 @@ +/** + *@Title: ControlController.java + *@Package com.nis.web.controller.configuration.proxy + *@Description TODO + *@author dell + *@date 2018年6月22日 下午4:35:42 + *@version 版本号 + */ +package com.nis.web.controller.configuration.proxy; + +import java.io.File; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.shiro.authz.annotation.Logical; +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.multipart.MultipartFile; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; + +import com.google.common.collect.Maps; +import com.nis.domain.Page; +import com.nis.domain.callback.ProxyFileStrategyCfg; +import com.nis.domain.configuration.BaseCfg; +import com.nis.domain.maat.ToMaatResult; +import com.nis.domain.maat.ToMaatResult.ResponseData; +import com.nis.util.ConfigServiceUtil; +import com.nis.util.FileUtils; +import com.nis.util.JsonMapper; +import com.nis.util.StringUtil; +import com.nis.web.controller.configuration.CommonController; + +/** + * @ClassName: ControlController.java + * @Description: TODO + * @author (dell) + * @date 2018年6月22日 下午4:35:42 + * @version V1.0 + */ +@Controller +@RequestMapping("${adminPath}/proxy/fileStrategy") +public class FileStrategyController extends CommonController { + + @RequestMapping(value = {"list"}) + public String fileStrategyList(ProxyFileStrategyCfg cfg,Model model,HttpServletRequest request,HttpServletResponse response) { + Page page = proxyFileStrategyService.findPage(new Page(request, response,"a"), cfg); + model.addAttribute("page", page); + model.addAttribute("cfg", cfg); + initPageCondition(model); + return "/cfg/proxy/fileStrategy/list"; + } + + @RequestMapping(value = {"form"}) + @RequiresPermissions(value={"proxy:fileStrategy:config"}) + public String fileform(Model model,HttpServletRequest request + ,HttpServletResponse response + ,@ModelAttribute("cfg")ProxyFileStrategyCfg cfg + ,String ids + ,RedirectAttributes redirectAttributes) { + if(!StringUtil.isEmpty(ids)){ + cfg = proxyFileStrategyService.getCfgById(Long.valueOf(ids)); + } +// initFormCondition(model); + initFormCondition(model, cfg); + model.addAttribute("_cfg", cfg); + return "/cfg/proxy/fileStrategy/form"; + } + + /** + * 保存 文件 + * 1、将文件上传到 service 接口 + * 2、将文件信息及 1返回的结果 保存到数据库 + * @param model + * @param request + * @param response + * @param cfgFile + * @param cfg + * @param redirectAttributes + * @return + */ + @RequiresPermissions(value={"proxy:fileStrategy:config"}) + @RequestMapping(value = {"saveOrUpdate"}) + public String saveOrUpdate(Model model,HttpServletRequest request + ,HttpServletResponse response,MultipartFile cfgFile, + @ModelAttribute("cfg")ProxyFileStrategyCfg cfg, + RedirectAttributes redirectAttributes){ + File file = null; + try{ + if(cfgFile != null) { + String filename = cfgFile.getOriginalFilename(); + String prefix = FileUtils.getPrefix(filename, false); + String suffix = FileUtils.getSuffix(filename, false); + file = File.createTempFile("file_"+ prefix, suffix); + cfgFile.transferTo(file);//复制文件 + String md5 = FileUtils.getFileMD5(file); + Map srcMap = Maps.newHashMap(); + srcMap.put("filetype", suffix); + srcMap.put("datatype", "dbSystem");//源文件存入数据中心 + srcMap.put("createTime",new Date()); + srcMap.put("key",prefix); + srcMap.put("fileName", filename); + srcMap.put("checksum", md5); + ToMaatResult result = ConfigServiceUtil.postFileCfg(null, file, JsonMapper.toJsonString(srcMap)); + logger.info("http 重定向阻断文件上传响应信息:"+JsonMapper.toJsonString(result)); + String srcAccessUrl = null; + if(!StringUtil.isEmpty(result)){ + ResponseData data = result.getData(); + srcAccessUrl=data.getAccessUrl(); + cfg.setUrl(srcAccessUrl);; + } + cfg.setMd5(md5);//文件md5值 + cfg.setContentLength(file.length());//文件长度 + cfg.setFileId(md5); + } + proxyFileStrategyService.saveOrUpdate(cfg); + addMessage(redirectAttributes,"save_success"); + }catch(Exception e){ + logger.error("信息保存失败",e); + addMessage(redirectAttributes,"save_failed"); + }finally { + if(file != null) { + file.delete();//删除临时文件 + } + } + return "redirect:" + adminPath +"/proxy/fileStrategy/list?functionId="+cfg.getFunctionId(); + } + + @RequestMapping(value = {"delete"}) + @RequiresPermissions(value={"proxy:fileStrategy:config"}) + public String delete(Integer isAudit,Integer isValid, + String ids, + Integer functionId, + RedirectAttributes redirectAttributes){ + proxyFileStrategyService.update(isAudit,isValid,ids,functionId); + return "redirect:" + adminPath +"/proxy/fileStrategy/list?functionId="+functionId; + } + + + @RequestMapping(value = {"audit"}) + @RequiresPermissions(value={"proxy:fileStrategy:confirm"}) + public String audit(Integer isAudit,Integer isValid,String ids + ,Integer functionId, RedirectAttributes redirectAttributes) { + if(!StringUtil.isEmpty(ids)){ + proxyFileStrategyService.audit(isAudit, isValid, functionId, ids); + } + return "redirect:" + adminPath +"/proxy/fileStrategy/list?functionId="+functionId; + } +} diff --git a/src/main/java/com/nis/web/controller/configuration/proxy/HttpRedirectPolicyController.java b/src/main/java/com/nis/web/controller/configuration/proxy/HttpRedirectPolicyController.java index d5e00af03..ce251b69c 100644 --- a/src/main/java/com/nis/web/controller/configuration/proxy/HttpRedirectPolicyController.java +++ b/src/main/java/com/nis/web/controller/configuration/proxy/HttpRedirectPolicyController.java @@ -17,6 +17,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.mvc.support.RedirectAttributes; import com.nis.domain.Page; +import com.nis.domain.callback.ProxyFileStrategyCfg; import com.nis.domain.configuration.CfgIndexInfo; import com.nis.domain.configuration.HttpBodyCfg; import com.nis.domain.configuration.HttpReqHeadCfg; @@ -42,6 +43,9 @@ public class HttpRedirectPolicyController extends BaseController{ Page page = httpRedirectCfgService.getHttpRedirectList(searchPage, cfg); model.addAttribute("page", page); initPageCondition(model,cfg); + //获取所有的响应文件内容,阻断,或重定向时可以选择 + List allProxyFileStrategys = proxyFileStrategyService.getProxyFileStrategyCfgList(new ProxyFileStrategyCfg()); + model.addAttribute("allProxyFileStrategys", allProxyFileStrategys); return "/cfg/proxy/control/httpRedirectList"; } @RequestMapping(value = {"form"}) @@ -136,8 +140,10 @@ public class HttpRedirectPolicyController extends BaseController{ entity.setIpPortList(ipPortList); initFormCondition(model,entity); } - + //获取所有的响应文件内容,阻断,或重定向时可以选择 + List allProxyFileStrategys = proxyFileStrategyService.getProxyFileStrategyCfgList(new ProxyFileStrategyCfg()); model.addAttribute("_cfg", entity); + model.addAttribute("allProxyFileStrategys", allProxyFileStrategys); return "/cfg/proxy/control/httpRedirectForm"; } 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 ffa1e14a7..693b6d777 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 @@ -1,8 +1,11 @@ package com.nis.web.controller.configuration.proxy; +import java.util.List; + import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.apache.commons.lang3.StringUtils; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; @@ -13,7 +16,10 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.servlet.mvc.support.RedirectAttributes; +import com.nis.domain.Page; import com.nis.domain.configuration.BaseIpCfg; +import com.nis.domain.configuration.CfgIndexInfo; +import com.nis.domain.configuration.DnsResStrategy; import com.nis.domain.configuration.HttpUrlCfg; import com.nis.domain.configuration.IpPortCfg; import com.nis.domain.configuration.template.IpAddrTemplate; @@ -28,13 +34,22 @@ import com.nis.web.controller.configuration.CommonController; @RequestMapping("${adminPath}/proxy/intercept") public class InterceptController extends CommonController{ @RequestMapping(value = {"/ip/list"}) +// @RequiresPermissions(value={"website:dns:config"}) + public String dnsList(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"; + } + /*@RequestMapping(value = {"/ip/list"}) // @RequiresPermissions(value={"intercept:ip:config","intercept:ip:confirm"},logical=Logical.OR) public String ipList(String cfgName,Model model,@ModelAttribute("cfg")IpPortCfg cfg,HttpServletRequest request,HttpServletResponse response) { this._ipList(cfgName,model, cfg, request, response); model.addAttribute("urlPrefix","/proxy/intercept/ip"); model.addAttribute("requiresPermissionPrefix","intercept:ip"); return "/cfg/common/ipList"; - } + }*/ @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) { @@ -43,14 +58,31 @@ public class InterceptController extends CommonController{ model.addAttribute("requiresPermissionPrefix","intercept:domain"); return "/cfg/common/domainList"; } - @RequestMapping(value = {"/ip/form"}) + + @RequestMapping(value = {"/interceptIpForm"}) + @RequiresPermissions(value={"intercept:ip:config"}) + public String dnsForm(Model model,String ids,CfgIndexInfo entity) { + if(StringUtils.isNotBlank(ids)){ + entity = interceptCfgService.getInterceptIpCfg(Long.parseLong(ids)); + initUpdateFormCondition(model,entity); + }else{ + initFormCondition(model,entity); + } + //TODO获取证书信息 + //List resStrategys=dnsResStrategyService.findDnsResStrategys(null, 1,1); + //model.addAttribute("dnsResStrategys", resStrategys); + + model.addAttribute("_cfg", entity); + return "/cfg/intercept/interceptIpForm"; + } + /*@RequestMapping(value = {"/ip/form"}) @RequiresPermissions(value={"intercept:ip:config"}) public String ipForm(String cfgName,Model model,String ids,Integer functionId,BaseIpCfg entity) { this._ipForm(cfgName,model, ids, functionId, entity); model.addAttribute("urlPrefix","/proxy/intercept/ip"); model.addAttribute("requiresPermissionPrefix","intercept:ip"); return "/cfg/common/ipForm"; - } + }*/ @RequestMapping(value = {"/domain/form"}) @RequiresPermissions(value={"intercept:domain:config"}) public String domainForm(String cfgName,Model model,String ids,Integer functionId,HttpUrlCfg entity) { @@ -59,11 +91,16 @@ public class InterceptController extends CommonController{ model.addAttribute("requiresPermissionPrefix","intercept:domain"); return "/cfg/common/domainForm"; } - @RequestMapping(value = {"/ip/saveOrUpdate"}) + @RequestMapping(value = {"saveOrUpdate"}) + public String saveInterceptIpCfg(Model model,HttpServletRequest request,HttpServletResponse response,String ids,CfgIndexInfo entity) { + interceptCfgService.saveInterceptIpCfg(entity); + return "redirect:" + adminPath +"/proxy/intercept/ip/list?functionId="+entity.getFunctionId(); + } + /*@RequestMapping(value = {"/ip/saveOrUpdate"}) public String saveOrUpdateIp(String cfgName,RedirectAttributes model, IpPortCfg cfg) { this._saveOrUpdateIp(cfgName,model, cfg); return "redirect:" + adminPath +"/proxy/intercept/ip/list?functionId="+cfg.getFunctionId(); - } + }*/ @RequestMapping(value = {"/domain/saveOrUpdate"}) public String saveOrUpdateDomain(String cfgName,RedirectAttributes model, HttpUrlCfg cfg) { this._saveOrUpdateDomain(cfgName, model, cfg); diff --git a/src/main/java/com/nis/web/controller/log/ntc/B2pLogController.java b/src/main/java/com/nis/web/controller/log/ntc/B2pLogController.java deleted file mode 100644 index 0cca62917..000000000 --- a/src/main/java/com/nis/web/controller/log/ntc/B2pLogController.java +++ /dev/null @@ -1,75 +0,0 @@ -package com.nis.web.controller.log.ntc; - -import java.io.File; -import java.io.IOException; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.apache.commons.lang3.StringUtils; -import org.aspectj.util.FileUtil; -import org.springframework.beans.BeanUtils; -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.ResponseBody; - -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; -import com.google.gson.reflect.TypeToken; -import com.nis.domain.FunctionServiceDict; -import com.nis.domain.Page; -import com.nis.domain.PageLog; -import com.nis.domain.log.NtcIpLog; -import com.nis.domain.maat.LogRecvData; -import com.nis.exceptions.MaatConvertException; -import com.nis.util.Constants; -import com.nis.util.DictUtils; -import com.nis.util.httpclient.HttpClientUtil; -import com.nis.web.controller.BaseController; - -@Controller -@RequestMapping("${adminPath}/log/ntc/p2pLogs") -public class B2pLogController extends BaseController { - - @RequestMapping(value = {"list", ""}) - public String list(@ModelAttribute("log") NtcIpLog log, Model model, HttpServletRequest request, HttpServletResponse response) { - try { - PageLog page = new PageLog(request, response); - Map params = new HashMap(); - params.put("pageSize", page.getPageSize()); - params.put("pageNo", page.getPageNo()); - initLogSearchValue(log, params); - - List serviceList = DictUtils.getFunctionServiceDictList(log.getFunctionId()); - model.addAttribute("serviceList", serviceList); - - String url = Constants.LOG_BASE_URL + Constants.NTC_P2P_LOG; - String recv = HttpClientUtil.getMsg(url, params, request); - logger.info("查询结果:" + recv); - if (StringUtils.isNotBlank(recv)) { - Gson gson = new GsonBuilder().create(); - LogRecvData fromJson = gson.fromJson(recv, new TypeToken>(){}.getType()); - if (fromJson.getStatus().intValue() == 200) { - page.setList(fromJson.getData().getList()); - List list = page.getList(); - for (NtcIpLog l : list) { - l.setFunctionId(log.getFunctionId()); - setLogAction(l,serviceList); - } - model.addAttribute("page", page); - } - } - } catch (Exception e) { - logger.error("查询失败", e); - addMessageLog(model, e.getMessage()); - } - - return "/log/ntc/p2pList"; - } - -} diff --git a/src/main/java/com/nis/web/service/configuration/InterceptCfgService.java b/src/main/java/com/nis/web/service/configuration/InterceptCfgService.java new file mode 100644 index 000000000..8361c2917 --- /dev/null +++ b/src/main/java/com/nis/web/service/configuration/InterceptCfgService.java @@ -0,0 +1,332 @@ +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; +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.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; +import com.nis.web.service.CrudService; + +/** + * 网站相关配置事务类 + * @author dell + * + */ +@Service +public class InterceptCfgService extends CrudService { + @Autowired + protected WebsiteCfgDao websiteCfgDao; + @Autowired + protected InterceptCfgDao interceptCfgDao; + @Autowired + protected AreaIpCfgDao areaIpCfgDao; + + public CfgIndexInfo getInterceptIpCfg(Long cfgId){ + CfgIndexInfo entity = websiteCfgDao.getCfgIndexInfo(cfgId); + List ipPortList = websiteCfgDao.getIpPortList(entity); + List pktBinList = interceptCfgDao.getInterceptPktBin(entity); + entity.setIpPortList(ipPortList); + entity.setInterceptPktBinList(pktBinList); + return entity; + } + public Page getWebsiteList(Page page, CfgIndexInfo entity){ + // 生成数据权限过滤条件(dsf为dataScopeFilter的简写,在xml中使用 ${sqlMap.dsf}调用权限SQL) + entity.getSqlMap().put("dsf", configScopeFilter(entity.getCurrentUser(),"a")); + entity.setPage(page); + List list = websiteCfgDao.getWebsiteList(entity); + page.setList(list); + return page; + } + /** + * 保存dns配置 + * @param entity + */ + + public void saveInterceptIpCfg(CfgIndexInfo entity){ + //设置区域运营商信息 + setAreaEffectiveIds(entity); + if(entity.getCfgId()==null){ + Integer compileId = 0; + try { + List idList = ConfigServiceUtil.getId(1, 1); + if(idList!=null && idList.size()>0){ + compileId = idList.get(0); + } + 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"}); + interceptCfgDao.insertInterceptPktBin(cfg); + } + } + } + //保存区域IP信息 + if(entity.getAreaCfg()!=null){ + for(AreaIpCfg cfg:entity.getAreaCfg()){ + cfg.initDefaultValue(); + BeanUtils.copyProperties(entity, cfg,new String[]{"cfgRegionCode","cfgType"}); + areaIpCfgDao.saveAreaIpCfg(cfg); + } + } + } catch (Exception e) { + e.printStackTrace(); + logger.info("获取编译ID出错"); + throw new MaatConvertException(":"+e.getMessage()); + } + + }else{ + + entity.setEditTime(new Date()); + entity.setEditorId(entity.getCurrentUser().getId()); + + websiteCfgDao.updateCfgIndex(entity); + //无效子配置后,再新增子配置 + interceptCfgDao.deleteInterceptIpCfg(entity); + interceptCfgDao.deleteInterceptPktBin(entity); + AreaIpCfg area = new AreaIpCfg(); + area.setCompileId(entity.getCompileId()); + area.setFunctionId(entity.getFunctionId()); + areaIpCfgDao.deleteAreaIpCfg(area); + entity.setCreateTime(new Date()); + entity.setCreatorId(entity.getCurrentUser().getId()); + 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"}); + interceptCfgDao.insertInterceptPktBin(cfg); + } + } + } + //保存区域IP信息 + if(entity.getAreaCfg()!=null){ + for(AreaIpCfg cfg:entity.getAreaCfg()){ + cfg.initDefaultValue(); + BeanUtils.copyProperties(entity, cfg,new String[]{"cfgDesc","cfgRegionCode","cfgType"}); + areaIpCfgDao.saveAreaIpCfg(cfg); + } + } + } + } + /**//** + * dns配置删除 + * @param isValid + * @param ids + * @param functionId + *//* + public void updateDnsCfgValid(Integer isValid,String ids,Integer functionId){ + CfgIndexInfo entity = new CfgIndexInfo(); + String[] idArray = ids.split(","); + for(String id :idArray){ + entity.setCfgId(Long.parseLong(id)); + entity.setIsValid(isValid); + entity.setEditorId(UserUtils.getUser().getId()); + entity.setEditTime(new Date()); + entity.setTableName(CfgIndexInfo.getTablename()); + entity.setFunctionId(functionId); + websiteCfgDao.updateCfgValid(entity); + //查询子配置 + entity = this.getDnsCfg(Long.parseLong(id)); + if(entity.getIpPortList()!=null && entity.getIpPortList().size()>0){ + IpPortCfg cfg = new IpPortCfg(); + BeanUtils.copyProperties(entity, cfg, new String[]{"cfgId"}); + cfg.setTableName(IpPortCfg.getTablename()); + websiteCfgDao.updateCfgValid(cfg); + } + if(entity.getDomainList()!=null && entity.getDomainList().size()>0) + { + SslKeywordCfg cfg = new SslKeywordCfg(); + BeanUtils.copyProperties(entity, cfg, new String[]{"cfgId"}); + cfg.setTableName(DnsDomainCfg.getTablename()); + websiteCfgDao.updateCfgValid(cfg); + } + //保存区域IP信息 + if(entity.getAreaCfg()!=null && entity.getAreaCfg().size()>0){ + AreaIpCfg cfg = new AreaIpCfg(); + BeanUtils.copyProperties(entity, cfg, new String[]{"cfgId"}); + cfg.setTableName(AreaIpCfg.getTablename()); + websiteCfgDao.updateCfgValid(cfg); + } + + } + + } + *//** + * dns配置审核 + * @param entity + * @param isAudit + * @throws MaatConvertException + *//* + public void auditDnsCfg(CfgIndexInfo entity,Integer isAudit) throws MaatConvertException{ + //修改数据库审核状态信息 + entity.setTableName(CfgIndexInfo.getTablename()); + websiteCfgDao.auditCfg(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(); + + //查询子配置并修改审核状态 + entity = this.getDnsCfg(entity.getCfgId()); + if(entity.getIpPortList()!=null && entity.getIpPortList().size()>0){ + IpPortCfg cfg = new IpPortCfg(); + BeanUtils.copyProperties(entity, cfg, new String[]{"cfgId"}); + cfg.setTableName(IpPortCfg.getTablename()); + websiteCfgDao.auditCfg(cfg); + if(isAudit==1){ + Map map = cfgConvert(ipRegionList,entity.getIpPortList(),1,entity,groupRelationList); + groupRelationList=map.get("groupList"); + ipRegionList=map.get("dstList"); + if(map.get("numRegionList")!=null){ + numRegionList.addAll(map.get("numRegionList")); + } + } + } + if(entity.getDomainList()!=null && entity.getDomainList().size()>0){ + DnsDomainCfg cfg = new DnsDomainCfg(); + BeanUtils.copyProperties(entity, cfg, new String[]{"cfgId"}); + cfg.setTableName(DnsDomainCfg.getTablename()); + websiteCfgDao.auditCfg(cfg); + if(isAudit==1){ + Map map = cfgConvert(strRegionList,entity.getDomainList(),2,entity,groupRelationList); + groupRelationList=map.get("groupList"); + strRegionList=map.get("dstList"); + } + } + //保存区域IP信息 + List areaIpCfgList=areaIpCfgDao.getByCompileId(entity.getCompileId()); + if(!StringUtil.isEmpty(areaIpCfgList)){ + AreaIpCfg cfg = new AreaIpCfg(); + BeanUtils.copyProperties(entity, cfg, new String[]{"cfgId"}); + cfg.setTableName(AreaIpCfg.getTablename()); + websiteCfgDao.auditCfg(cfg); + if(isAudit==1){ + Map map = cfgConvert(areaIpRegionList,areaIpCfgList,1,entity,groupRelationList); + groupRelationList=map.get("groupList"); + areaIpRegionList=map.get("dstList"); + } + } + + //构造提交综合服务参数格式,一条配置提交一次综合服务 + if(isAudit==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.setGroupNum(groupRelationList.size()); + maatCfg.setAreaIpRegionList(areaIpRegionList); + maatCfg.setIsValid(entity.getIsValid()); + // dns reject userRegion=;dnsStrategyId; + if(!StringUtil.isEmpty(entity.getDnsStrategyId())){ +// maatCfg.setUserRegion(Constants.USER_REGION_SPLIT+entity.getDnsStrategyId()+Constants.USER_REGION_SPLIT); + maatCfg.setUserRegion(Constants.DNS_STRATEGY_USER_REGION_KEY+"="+entity.getDnsStrategyId()); + } + 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("dns配置下发配置参数:"+json); + //调用服务接口下发配置 + ToMaatResult result = ConfigServiceUtil.postMaatCfg(json); + logger.info("dns配置下发响应信息:"+result.getMsg()); + + }else if(isAudit==3){ + 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("dns配置下发配置参数:"+json); + //调用服务接口下发配置 + ToMaatResult result = ConfigServiceUtil.put(json,1); + logger.info("dns配置取消配置响应信息:"+result.getMsg()); + } + }*/ +} diff --git a/src/main/resources/sql/add_intercepter_ratelimit_and_replace.sql b/src/main/resources/sql/add_intercepter_ratelimit_and_replace.sql new file mode 100644 index 000000000..c143f009b --- /dev/null +++ b/src/main/resources/sql/add_intercepter_ratelimit_and_replace.sql @@ -0,0 +1,26 @@ +INSERT INTO function_service_dict + () +VALUES + (108, 200, 0, 64, 'ratelimit', 531, 'ip_intercepter_ratelimit', '', 1,null , null,null , null,null ); + +INSERT INTO function_service_dict + () +VALUES + (109, 201, 0, 64, 'ratelimit', 541, 'domain_intercepter_ratelimit', '', 1,null , null,null ,null,null ); + + + INSERT INTO function_service_dict + () +VALUES + (110, 200, 0, 80, 'replace', 551, 'ip_intercepter_replace', '', 1,null , null,null , null,null ); + +INSERT INTO function_service_dict + () +VALUES + (111, 201, 0, 80, 'replace', 561, 'domain_intercepter_replace', '', 1,null , null,null ,null,null ); + + + INSERT INTO function_region_dict + (`config_service_type`, `config_multi_keywords`, `config_expr_type`, `config_hex`, `config_match_method`, `dict_id`, `function_id`, `config_region_code`, `config_region_value`, `config_district`, `config_desc`, `is_valid`, `creator_id`, `create_time`, `editor_id`, `edit_time`, `is_maat`, `region_type`, `config_ip_type`, `config_ip_pattern`, `config_port_pattern`, `config_direction`, `config_protocol`, `config_ip_port_show`) +VALUES + ('', '0', '0,1', '0,1,2', '0,1,2,3', 167, 200, 2, 'PXY_INTERCEPT_PKT_BIN', '', 'PXY', 1, NULL, NULL, NULL, NULL, 1, 2, '', '', '', '', '', ''); diff --git a/src/main/webapp/WEB-INF/include/excel/importIp.jsp b/src/main/webapp/WEB-INF/include/excel/importIp.jsp index d14bb3fe1..d3ced21e2 100644 --- a/src/main/webapp/WEB-INF/include/excel/importIp.jsp +++ b/src/main/webapp/WEB-INF/include/excel/importIp.jsp @@ -2,7 +2,7 @@ <%@ include file="/WEB-INF/include/taglib.jsp"%>