策略分组功能

dns响应策略功能
dns欺骗ip列表功能
This commit is contained in:
duandongmei
2018-06-22 10:12:54 +08:00
parent adb9d8a665
commit 7f4342f506
19 changed files with 2571 additions and 1126 deletions

View File

@@ -61,6 +61,7 @@ import com.nis.web.service.configuration.AvContentCfgService;
import com.nis.web.service.configuration.BgpCfgService;
import com.nis.web.service.configuration.ComplexStringCfgService;
import com.nis.web.service.configuration.DnsIpCfgService;
import com.nis.web.service.configuration.DnsResStrategyService;
import com.nis.web.service.configuration.FileTransferCfgService;
import com.nis.web.service.configuration.IpCfgService;
import com.nis.web.service.configuration.MailCfgService;
@@ -153,6 +154,8 @@ public class BaseController {
protected XmppCfgService xmppCfgService;
@Autowired
protected PolicyGroupInfoService policyGroupInfoService;
@Autowired
protected DnsResStrategyService dnsResStrategyService;
/**
* 管理基础路径
*/

View File

@@ -16,101 +16,85 @@ import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import com.nis.domain.Page;
import com.nis.domain.basics.ServiceDictInfo;
import com.nis.domain.configuration.BaseIpCfg;
import com.nis.domain.configuration.DnsIpCfg;
import com.nis.domain.configuration.DnsResStrategy;
import com.nis.domain.configuration.DnsIpCfg;
import com.nis.domain.configuration.RequestInfo;
import com.nis.exceptions.MaatConvertException;
import com.nis.util.StringUtil;
import com.nis.web.controller.BaseController;
import com.nis.web.security.UserUtils;
import com.nis.web.service.configuration.DnsIpCfgService;
@Controller
@RequestMapping("${adminPath}/cfg/dnsIp")
public class DnsIpCfgController extends BaseController {
@ModelAttribute
public DnsIpCfg get(Long cfgId) {
if (!StringUtil.isEmpty(cfgId)){
return dnsIpCfgService.get(cfgId);
}else{
return new DnsIpCfg();
}
}
@RequiresPermissions("cfg:ip:view")
@RequestMapping("list")
public String list(Model model, HttpServletRequest request, HttpServletResponse response, DnsIpCfg dnsIpCfg) {
Page<DnsIpCfg> page = dnsIpCfgService.findPage(new Page<DnsIpCfg>(request, response, 30), dnsIpCfg);
@RequestMapping(value = {"/list"})
public String list(Model model,HttpServletRequest request,HttpServletResponse response,@ModelAttribute("cfg")DnsIpCfg entity){
Page<DnsIpCfg> page = dnsIpCfgService.findPage(new Page<DnsIpCfg>(request, response,"r"), entity);
model.addAttribute("page", page);
addRequestAndServiceDictToModel(model);
initPageCondition(model);
return "/cfg/dnsIpCfgList";
}
@RequiresPermissions("cfg:ip:edit")
@RequestMapping("form")
public String form(Model model, DnsIpCfg dnsIpCfg) {
addRequestAndServiceDictToModel(model);
@RequestMapping(value = {"/form"})
@RequiresPermissions(value={"dns:fake:ip:config"})
public String form(Model model,HttpServletRequest request,HttpServletResponse response,String ids,@ModelAttribute("cfg")DnsIpCfg cfg){
if(!StringUtil.isEmpty(ids)){
cfg = dnsIpCfgService.getDnsIpCfg(Long.parseLong(ids));
initUpdateFormCondition(model, cfg);
}else{
initFormCondition(model,cfg);
}
//获取所有响应策略信息
List<DnsResStrategy> resStrategys=dnsResStrategyService.findDnsResStrategys(null, -1);
model.addAttribute("dnsResStrategys", resStrategys);
model.addAttribute("_cfg", cfg);
return "/cfg/dnsIpCfgForm";
}
@RequiresPermissions("cfg:ip:edit")
@RequestMapping("save")
public String save(Model model, DnsIpCfg dnsIpCfg, RedirectAttributes redirectAttributes) {
Date now = new Date();
if (dnsIpCfg.getCfgId() == null) {//新增
dnsIpCfg.setFakeId(0);
dnsIpCfg.setIsValid(1);
dnsIpCfg.setCreateTime(now);
dnsIpCfg.setCreator(UserUtils.getUser());
dnsIpCfg.setIsAudit(1);
} else {//修改
dnsIpCfg.setEditor(UserUtils.getUser());
dnsIpCfg.setEditTime(now);
}
try {
dnsIpCfgService.save(dnsIpCfg);
addMessage(redirectAttributes, "save_success");
} catch (Exception e) {
@RequestMapping(value = {"/saveOrUpdate"})
@RequiresPermissions(value={"dns:fake:ip:config"})
public String saveOrUpdate(Model model,HttpServletRequest request,HttpServletResponse response,
@ModelAttribute("cfg")DnsIpCfg cfg){
try{
dnsIpCfgService.saveOrUpdate(cfg);
addMessage(model,"save_success");
}catch(Exception e){
logger.error("信息保存失败",e);
e.printStackTrace();
addMessage(redirectAttributes, "save_failed");
addMessage(model,"save_failed");
}
return "redirect:" + adminPath + "/cfg/dnsIp/list";
return "redirect:" + adminPath +"/cfg/dnsIp/list?functionId="+cfg.getFunctionId();
}
@RequiresPermissions("cfg:ip:edit")
@RequestMapping("delete")
public String delete(Model model, HttpServletRequest request,
HttpServletResponse response, DnsIpCfg dnsIpCfg) {
String fakeIds = dnsIpCfg.getFakeIds();
if (!StringUtils.isEmpty(fakeIds)) {
try {
dnsIpCfgService.delete(fakeIds);
addMessage(model, "delete_success");
} catch (Exception e) {
logger.error("删除失败", e);
addMessage(model, "delete_failed");
@RequestMapping(value = {"/delete"})
@RequiresPermissions(value={"dns:fake:ip:config"})
public String delete(Integer isAudit,Integer isValid,String ids,Integer functionId){
dnsIpCfgService.delete(isAudit,isValid,ids,functionId);
return "redirect:" + adminPath +"/cfg/dnsIp/list?functionId="+functionId;
}
@RequestMapping(value = {"/audit"})
@RequiresPermissions(value={"dns:fake:ip:audit"})
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 {
dnsIpCfgService.audit(isAudit,isValid,functionId,id,auditTime);
} catch (MaatConvertException e) {
e.printStackTrace();
logger.info("dns fake ip配置下发失败"+e.getMessage());
addMessage(redirectAttributes, e.getMessage());
}
}
} else {
addMessage(model, "delete_failed");
}
Page<DnsIpCfg> page = dnsIpCfgService.findPage(new Page<DnsIpCfg>(request, response, 30), dnsIpCfg);
model.addAttribute("page", page);
addRequestAndServiceDictToModel(model);
return "/cfg/dnsIpCfgList";
return "redirect:" + adminPath +"/cfg/dnsIp/list?functionId="+functionId;
}
private void addRequestAndServiceDictToModel(Model model) {
List<RequestInfo> requestInfos = requestInfoService.getAllRequestInfo();
model.addAttribute("requestInfos", requestInfos);
List<ServiceDictInfo> fls = serviceDictInfoService.findAllFlDict();
model.addAttribute("fls", fls);
List<ServiceDictInfo> xzs = serviceDictInfoService.findAllXzDict();
model.addAttribute("xzs", xzs);
List<ServiceDictInfo> lables = serviceDictInfoService.findAllLableDict();
model.addAttribute("lables", lables);
}
}

View File

@@ -0,0 +1,158 @@
package com.nis.web.controller.configuration.ntc;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Properties;
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.context.i18n.LocaleContextHolder;
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 org.springframework.web.servlet.mvc.support.RedirectAttributes;
import com.nis.domain.Page;
import com.nis.domain.SysUser;
import com.nis.domain.basics.PolicyGroupInfo;
import com.nis.domain.basics.ServiceDictInfo;
import com.nis.domain.basics.SysDictInfo;
import com.nis.domain.configuration.AreaBean;
import com.nis.domain.configuration.AreaIpCfg;
import com.nis.domain.configuration.AvContIpCfg;
import com.nis.domain.configuration.AvVoipAccountCfg;
import com.nis.domain.configuration.CfgIndexInfo;
import com.nis.domain.configuration.DnsResStrategy;
import com.nis.exceptions.MaatConvertException;
import com.nis.domain.configuration.AvVoipIpCfg;
import com.nis.domain.configuration.BaseIpCfg;
import com.nis.domain.configuration.BaseStringCfg;
import com.nis.util.Configurations;
import com.nis.util.Constants;
import com.nis.util.DateUtils;
import com.nis.util.StringUtil;
import com.nis.util.excel.ExportExcel;
import com.nis.web.controller.BaseController;
import com.nis.web.security.UserUtils;
/**
* dns响应策略
* @author ddm
*
*/
@Controller
@RequestMapping("${adminPath}/maintenance/dnsResStrategy")
public class DnsResStrategyController extends BaseController {
@RequestMapping(value = {"/form"})
@RequiresPermissions(value={"dns:res:strategy:config"})
public String from(Model model,
HttpServletRequest request,
HttpServletResponse response,
String ids,
@ModelAttribute("cfg")DnsResStrategy cfg){
if(cfg == null){
cfg=new DnsResStrategy();
}
if(!StringUtil.isEmpty(ids)){
cfg = dnsResStrategyService.getDnsResStrategy(Long.valueOf(ids),-1);
initFormCondition(model, cfg);
model.addAttribute("isAdd", false);
}else{
//不存在响应策略为0的配置则新策略时cfgId默认为0
DnsResStrategy dns0=dnsResStrategyService.getDnsResStrategy(0l,null);
if(dns0 == null){
cfg.setCfgId(0l);
}
initFormCondition(model, cfg);
model.addAttribute("isAdd", true);
}
//查询policyGroup列表供响应策略选择
List<PolicyGroupInfo> policyGroups=policyGroupInfoService.findPolicyGroupInfos();
model.addAttribute("policyGroups", policyGroups);
model.addAttribute("_cfg", cfg);
return "/cfg/maintenance/dnsResStrategy/form";
}
@RequestMapping(value = {"/saveOrUpdate"})
@RequiresPermissions(value={"dns:res:strategy:config"})
public String saveOrUpdate(Model model,HttpServletRequest request,HttpServletResponse response,
@ModelAttribute("cfg")DnsResStrategy cfg){
try{
dnsResStrategyService.saveOrUpdate(cfg);
addMessage(model,"save_success");
}catch(Exception e){
e.printStackTrace();
addMessage(model,"save_failed");
}
return "redirect:" + adminPath +"/maintenance/dnsResStrategy/list?functionId="+cfg.getFunctionId();
}
@RequestMapping(value = {"/list"})
public String list(Model model,HttpServletRequest request,HttpServletResponse response,@ModelAttribute("cfg")DnsResStrategy entity){
//查询时left join policyGroup
Page<DnsResStrategy> page = dnsResStrategyService.findPage(new Page<DnsResStrategy>(request, response,"r"), entity);
model.addAttribute("page", page);
initPageCondition(model);
return "/cfg/maintenance/dnsResStrategy/list";
}
@RequestMapping(value = {"/delete"})
@RequiresPermissions(value={"dns:res:strategy:config"})
public String delete(Integer isAudit,Integer isValid,String ids,Integer functionId,Model model,HttpServletRequest request,HttpServletResponse response){
try{
if(!StringUtil.isEmpty(ids)){
dnsResStrategyService.delete(isAudit,isValid,ids,functionId);
}
addMessage(model,"delete_success");
}catch(Exception e){
addMessage(model,"delete_failed");
}
return "redirect:" + adminPath +"/maintenance/dnsResStrategy/list?functionId="+functionId;
}
@RequestMapping(value = {"/audit"})
//@RequiresPermissions(value={"dns:res:strategy:audit"})
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 {
dnsResStrategyService.audit(isAudit,isValid,functionId,id,auditTime);
} catch (MaatConvertException e) {
e.printStackTrace();
logger.info("VOIP配置下发失败"+e.getMessage());
addMessage(redirectAttributes, e.getMessage());
}
}
}
return "redirect:" + adminPath +"/maintenance/dnsResStrategy/list?functionId="+functionId;
}
@ResponseBody
@RequestMapping(value = "/validCfgId")
public boolean validCfgId(Long cfgId) {
DnsResStrategy dns=dnsResStrategyService.getDnsResStrategy(cfgId,null);
if(dns == null ){
return false;
}else{
return true;
}
}
}