拦截IP相关功能提交

This commit is contained in:
duandongmei
2018-08-21 13:38:26 +08:00
parent 5ee8b5a857
commit 122e763b1b
47 changed files with 4311 additions and 432 deletions

View File

@@ -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<AppSslCertCfg> searchPage=new Page<AppSslCertCfg>(request,response,"r");
Page<AppSslCertCfg> 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;
}
}

View File

@@ -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"})

View File

@@ -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<ProxyFileStrategyCfg> page = proxyFileStrategyService.findPage(new Page<ProxyFileStrategyCfg>(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<String,Object> 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;
}
}

View File

@@ -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<CfgIndexInfo> page = httpRedirectCfgService.getHttpRedirectList(searchPage, cfg);
model.addAttribute("page", page);
initPageCondition(model,cfg);
//获取所有的响应文件内容,阻断,或重定向时可以选择
List<ProxyFileStrategyCfg> 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<ProxyFileStrategyCfg> allProxyFileStrategys = proxyFileStrategyService.getProxyFileStrategyCfgList(new ProxyFileStrategyCfg());
model.addAttribute("_cfg", entity);
model.addAttribute("allProxyFileStrategys", allProxyFileStrategys);
return "/cfg/proxy/control/httpRedirectForm";
}

View File

@@ -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<CfgIndexInfo> searchPage=new Page<CfgIndexInfo>(request,response,"a");
Page<CfgIndexInfo> 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<DnsResStrategy> 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);

View File

@@ -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<NtcIpLog> page = new PageLog<NtcIpLog>(request, response);
Map<String, Object> params = new HashMap<String, Object>();
params.put("pageSize", page.getPageSize());
params.put("pageNo", page.getPageNo());
initLogSearchValue(log, params);
List<FunctionServiceDict> 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<NtcIpLog> fromJson = gson.fromJson(recv, new TypeToken<LogRecvData<NtcIpLog>>(){}.getType());
if (fromJson.getStatus().intValue() == 200) {
page.setList(fromJson.getData().getList());
List<NtcIpLog> 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";
}
}

View File

@@ -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<WebsiteCfgDao,CfgIndexInfo> {
@Autowired
protected WebsiteCfgDao websiteCfgDao;
@Autowired
protected InterceptCfgDao interceptCfgDao;
@Autowired
protected AreaIpCfgDao areaIpCfgDao;
public CfgIndexInfo getInterceptIpCfg(Long cfgId){
CfgIndexInfo entity = websiteCfgDao.getCfgIndexInfo(cfgId);
List<IpPortCfg> ipPortList = websiteCfgDao.getIpPortList(entity);
List<InterceptPktBin> pktBinList = interceptCfgDao.getInterceptPktBin(entity);
entity.setIpPortList(ipPortList);
entity.setInterceptPktBinList(pktBinList);
return entity;
}
public Page<CfgIndexInfo> getWebsiteList(Page<CfgIndexInfo> page, CfgIndexInfo entity){
// 生成数据权限过滤条件dsf为dataScopeFilter的简写在xml中使用 ${sqlMap.dsf}调用权限SQL
entity.getSqlMap().put("dsf", configScopeFilter(entity.getCurrentUser(),"a"));
entity.setPage(page);
List<CfgIndexInfo> 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<Integer> 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("<spring:message code=\"request_service_failed\"/>:"+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<MaatCfg> configCompileList = new ArrayList();
List<GroupCfg> groupRelationList = new ArrayList();
List<IpCfg> ipRegionList = new ArrayList();
List<StringCfg> strRegionList = new ArrayList();
List<NumBoundaryCfg> numRegionList = new ArrayList();
List<DigestCfg> digestRegionList = new ArrayList();
List<IpCfg> areaIpRegionList = new ArrayList();
//查询子配置并修改审核状态
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<String,List> 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<String,List> map = cfgConvert(strRegionList,entity.getDomainList(),2,entity,groupRelationList);
groupRelationList=map.get("groupList");
strRegionList=map.get("dstList");
}
}
//保存区域IP信息
List<AreaIpCfg> 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<String,List> 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());
}
}*/
}