into develop

Conflicts:
	src/main/java/com/nis/web/service/BaseService.java
	asn group中修改组织变更和asn no变更,不重新获取groupId逻辑
	ip addr 的asn 修改为手动输入,后台check
	app ip和asn ip配置取消,取消分组中最后一条配置时,失效整个compile,并且修改groupId的状态为为无效。
	无效的asn group删除时,删除其下的所有asn ip
This commit is contained in:
duandongmei
2019-01-18 11:14:05 +06:00
70 changed files with 871 additions and 3911 deletions

View File

@@ -23,6 +23,7 @@ import com.nis.domain.Page;
import com.nis.domain.basics.AsnGroupInfo;
import com.nis.domain.basics.AsnIpCfg;
import com.nis.domain.specific.ConfigGroupInfo;
import com.nis.exceptions.MaatConvertException;
import com.nis.util.StringUtil;
import com.nis.web.controller.BaseController;
/**
@@ -83,8 +84,13 @@ public class AsnGroupController extends BaseController {
asnGroupInfoService.saveOrUpdate(cfg);
addMessage(redirectAttributes,"success","save_success");
} catch (Exception e) {
logger.error("新增失败",e);
addMessage(redirectAttributes,"error","save_failed");
e.printStackTrace();
if(e instanceof MaatConvertException) {
addMessage(redirectAttributes,"error", "request_service_failed");
}else {
addMessage(redirectAttributes,"error","save_failed");
}
}
return "redirect:" + adminPath + "/basics/asnGroup/asnGroupList";
@@ -99,15 +105,19 @@ public class AsnGroupController extends BaseController {
*/
//@RequiresPermissions(value={"basics:classification:del","basics:attribute:del","basics:label:del"},logical=Logical.OR)
@RequestMapping(value={"delete"})
public String delete(RedirectAttributes redirectAttributes,String ids,String asnIds) {
public String delete(RedirectAttributes redirectAttributes,String ids,String asnIds,String groupIds) {
try {
asnGroupInfoService.delete(ids,asnIds);
asnGroupInfoService.delete(ids,asnIds,groupIds);
//TODO 查询本次删除的所有asnOrg组中是否存在asn 没有is_used=0的asn如果存在则需要将整个组删除
addMessage(redirectAttributes,"success","delete_success");
} catch (Exception e) {
logger.error("删除失败",e);
addMessage(redirectAttributes,"error","delete_failed");
if(e instanceof MaatConvertException) {
addMessage(redirectAttributes,"error", "request_service_failed");
}else {
addMessage(redirectAttributes,"error","delete_failed");
}
}
return "redirect:" + adminPath + "/basics/asnGroup/asnGroupList";
}
@@ -162,14 +172,16 @@ public class AsnGroupController extends BaseController {
*/
@ResponseBody
@RequestMapping(value = {"/checkAsnNo"})
public boolean checkIp(AsnGroupInfo cfg, HttpServletRequest request, HttpServletResponse response){
AsnGroupInfo policyGroup = asnGroupInfoService.getInfoByAsnNo(cfg);
if(policyGroup == null){
return true;
public AsnGroupInfo checkAsnNo(AsnGroupInfo cfg, HttpServletRequest request, HttpServletResponse response){
AsnGroupInfo policyGroup=null;
policyGroup = asnGroupInfoService.getInfoByAsnNo(cfg);
if(policyGroup != null){
ConfigGroupInfo group=configGroupInfoService.getAsnOrganization(policyGroup.getOrganization());
if(group != null){
policyGroup.setCommonGroupIds(group.getGroupId().toString());
}
}
return false;
return policyGroup;
}
/**
* 校验asn号是否已存在
@@ -182,7 +194,6 @@ public class AsnGroupController extends BaseController {
if(asnIpCfg == null){
return false;
}
return true;
}
/**

View File

@@ -218,7 +218,7 @@ public class DnsIpCfgController extends BaseController {
}
titleList.add(entity.getMenuNameCode());
classMap.put(entity.getMenuNameCode(), DnsIpCfg.class);
String cfgIndexInfoNoExport = ",whether_area_block,client_ip,port_pattern,client_port,server_port,ir_type,direction,protocol,do_log,client_port,ir_type,group_name,userregion1,userregion2,userregion3,userregion4,userregion5,";
String cfgIndexInfoNoExport = ",log_total,whether_area_block,client_ip,port_pattern,client_port,server_port,ir_type,direction,protocol,do_log,client_port,ir_type,group_name,userregion1,userregion2,userregion3,userregion4,userregion5,";
// 时间过滤
if (entity.getSearch_create_time_start() == null && entity.getSearch_create_time_end() == null) {

View File

@@ -500,12 +500,14 @@ public class WhiteListController extends CommonController {
for (Integer id : set) {
serviceIds.append(id+",");
}
String serviceIdsStr=serviceIds.toString().substring(1, serviceIds.length()-1);
String compileIdsStr=compileIds.toString().substring(1, compileIds.length()-1);
//获取日志总量
if(!StringUtils.isBlank(serviceIdsStr)&&!StringUtils.isBlank(compileIdsStr)){
List<Map<String,Object>> logs = getLogTotal( null,serviceIdsStr,compileIdsStr);
logTotals.addAll(logs);
if(serviceIds.length()>1&&compileIds.length()>1){
String serviceIdsStr=serviceIds.toString().substring(1, serviceIds.length()-1);
String compileIdsStr=compileIds.toString().substring(1, compileIds.length()-1);
//获取日志总量
if(!StringUtils.isBlank(serviceIdsStr)&&!StringUtils.isBlank(compileIdsStr)){
List<Map<String,Object>> logs = getLogTotal( null,serviceIdsStr,compileIdsStr);
logTotals.addAll(logs);
}
}
titleList.add(entity.getMenuNameCode());
titleList.add("NTC_HTTP_URL");

View File

@@ -3,9 +3,11 @@ package com.nis.web.controller.configuration.proxy;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -273,6 +275,35 @@ public class InterceptController extends CommonController {
Page<CfgIndexInfo> page = ipCfgService.getIpCfgList(pageInfo, entity);
ipLists = page.getList();
}
//日志总量
List<Map<String,Object>> logTotals=new ArrayList<Map<String,Object>>();
StringBuilder compileIds=new StringBuilder(",");//配置ids
Set<Integer> set=new HashSet<Integer>();//服务ids
for (CfgIndexInfo cfg : ipLists) {
if(cfg.getIsAudit()!=0){
set.add(cfg.getServiceId());
compileIds.append(cfg.getCompileId()+",");
}else{
Map<String,Object> logTotal=new HashMap<String,Object>();
logTotal.put("compileId", cfg.getCompileId()+"");
logTotal.put("sum",0L);
logTotals.add(logTotal);
}
}
StringBuilder serviceIds=new StringBuilder(",");
for (Integer id : set) {
serviceIds.append(id+",");
}
if(serviceIds.length()>1&&compileIds.length()>1){
String serviceIdsStr=serviceIds.toString().substring(1, serviceIds.length()-1);
String compileIdsStr=compileIds.toString().substring(1, compileIds.length()-1);
//获取日志总量
if(!StringUtils.isBlank(serviceIdsStr)&&!StringUtils.isBlank(compileIdsStr)){
List<Map<String,Object>> logs = getLogTotal( null,serviceIdsStr,compileIdsStr);
logTotals.addAll(logs);
}
}
// 获取证书信息
List<PxyObjKeyring> certificateList = new ArrayList<PxyObjKeyring>();
if (entity.getFunctionId().equals(200)) {
@@ -325,6 +356,12 @@ public class InterceptController extends CommonController {
List<BaseStringCfg> httpUrlList = new ArrayList<BaseStringCfg>();
List<BaseStringCfg> pktBinList = new ArrayList<BaseStringCfg>();
for (CfgIndexInfo cfg : ipLists) {
for (Map<String,Object> logTotal : logTotals) {
if(cfg.getCompileId().equals(Integer.parseInt((String) logTotal.get("compileId")))){
cfg.setTotalLogs((Long)logTotal.get("sum"));
break;
}
}
Map<String, List> maps = interceptCfgService.exportIpInfo(cfg);
httpUrlList.addAll(maps.get("NTC_HTTP_URL"));
ipList.addAll(maps.get("PXY_INTERCEPT_IP"));
@@ -346,7 +383,7 @@ public class InterceptController extends CommonController {
httpUrlList = BaseStringCfg.baseHexList(httpUrlList);
dataMap.put(entity.getMenuNameCode(), ipLists);
if (entity.getFunctionId() == 212) { // IP Payload
cfgIndexInfoNoExport = ",do_log,log_total,policy_name,group_name,userregion4,userregion5,&userregion1:replace_zone-userregion2:replaced_content-userregion3:replace_content-";
cfgIndexInfoNoExport = ",policy_name,group_name,userregion4,userregion5,&userregion1:replace_zone-userregion2:replaced_content-userregion3:replace_content-";
titleList.add("PXY_INTERCEPT_IP");
titleList.add("PXY_INTERCEPT_PKT_BIN");
classMap.put("PXY_INTERCEPT_IP", IpPortCfg.class);

View File

@@ -3,6 +3,7 @@ package com.nis.web.controller.dashboard;
import java.lang.reflect.Type;
import java.net.URISyntaxException;
import java.net.URLEncoder;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
@@ -248,7 +249,7 @@ public class DashboardController extends BaseController{
@ResponseBody
public List ajaxIpActiveList(String beginDate,String endDate,Integer entranceId){
Map<String, Object> fromJsonList = new HashMap<String, Object>();
List list = new ArrayList();
List<TrafficIpActiveStatistic> list = new ArrayList<TrafficIpActiveStatistic>();
try {
String url=Constants.DASHBOARD_URL+Constants.TRAFFIC_IPACTIVE_ONEHOUR;
url=urlAddDate(url, beginDate, endDate);
@@ -260,6 +261,16 @@ public class DashboardController extends BaseController{
fromJsonList = gson.fromJson(string, new TypeToken<Map<String, Object>>(){}.getType());
logger.debug("活跃IP1小时"+fromJsonList);
list = gson.fromJson(fromJsonList.get("data").toString(), new TypeToken<List<TrafficIpActiveStatistic>>() {}.getType()) ;
if(list.size()>0) {
DecimalFormat lf = new DecimalFormat("0");
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//两个时间段之间的秒数
double allSeconds = DateUtils.getSecondsOfTwoDate(sdf.parse(beginDate),sdf.parse(endDate));
for(TrafficIpActiveStatistic data:list) {
data.setAvgByte(lf.format(Integer.parseInt(data.get_byte())*8/allSeconds));
data.setAvgPacket(lf.format(Integer.parseInt(data.get_packet())/allSeconds));
}
}
Collections.sort(list, new Comparator<TrafficIpActiveStatistic>() {
@Override
@@ -282,7 +293,7 @@ public class DashboardController extends BaseController{
} catch (Exception e) {
e.printStackTrace();
logger.error("活跃IP数据获取错误"+e);
list.add(Maps.newHashMap("error","request_service_failed"));
//list.add(Maps.newHashMap("error","request_service_failed"));
}
return list;
}

View File

@@ -44,6 +44,7 @@ import com.nis.domain.dashboard.TrafficIpActiveStatistic;
import com.nis.util.CodeDicUtils;
import com.nis.util.Constants;
import com.nis.util.DateUtil;
import com.nis.util.DateUtils;
import com.nis.util.DictUtils;
import com.nis.util.StringUtil;
import com.nis.util.httpclient.HttpClientUtil;
@@ -301,6 +302,7 @@ public class TrafficStatisticsInfoController extends BaseController {
@RequestMapping(value="protocolList")
@ResponseBody
public List protocolList(Model model,Integer entranceId,Integer[] protoType,@RequestParam(required=false)String beginDate,@RequestParam(required=false)String endDate){
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Map<String, Object> fromJsonList = new HashMap<String, Object>();
List list = new ArrayList();
String url = Constants.DASHBOARD_URL+Constants.TRAFFIC_PROTOCOL_LIST;
@@ -327,6 +329,8 @@ public class TrafficStatisticsInfoController extends BaseController {
DecimalFormat lf = new DecimalFormat("0");
DecimalFormat df = new DecimalFormat("0.0000000000");
List<CodeResult> appCodeList = CodeDicUtils.getCodeList("appCode");
//两个时间段之间的秒数
double allSeconds = DateUtils.getSecondsOfTwoDate(sdf.parse(beginDate),sdf.parse(endDate));
if(!StringUtil.isEmpty(list)){
for (Object object : list) {
Map m=(Map) object;
@@ -336,6 +340,10 @@ public class TrafficStatisticsInfoController extends BaseController {
m.put("GByte", df.format(m.get("GByte")));
m.put("packets", lf.format(m.get("packets")));
m.put("linkNum", lf.format(m.get("linkNum")));
double avgPacket=Double.parseDouble(m.get("packets").toString())/allSeconds;
m.put("pps",lf.format(avgPacket));
double avgByte=Double.parseDouble(m.get("GByte").toString())*1024*1024*1024*8/allSeconds;
m.put("bps",lf.format(avgByte));
totalLink+=Long.parseLong( m.get("linkNum").toString());
totalPackets+=Long.parseLong(m.get("packets").toString());
// 协议没匹配的匹配app码表
@@ -407,6 +415,9 @@ public class TrafficStatisticsInfoController extends BaseController {
Double totalGByte=0d;
DecimalFormat lf = new DecimalFormat("0");
DecimalFormat df = new DecimalFormat("0.0000000000");
//两个时间段之间的秒数
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
double allSeconds = DateUtils.getSecondsOfTwoDate(sdf.parse(beginDate),sdf.parse(endDate));
if(!StringUtil.isEmpty(list)){
for (Object object : list) {
Map m=(Map) object;
@@ -417,6 +428,11 @@ public class TrafficStatisticsInfoController extends BaseController {
m.put("linkNum", lf.format(m.get("linkNum")));
totalLink+=Long.parseLong( m.get("linkNum").toString());
totalPackets+=Long.parseLong(m.get("packets").toString());
double avgPacket=Double.parseDouble(m.get("packets").toString())/allSeconds;
m.put("pps",lf.format(avgPacket));
double avgByte=Double.parseDouble(m.get("GByte").toString())*1024*1024*1024*8/allSeconds;
m.put("bps",lf.format(avgByte));
}
for (Object object : list) {
Map m=(Map) object;
@@ -485,7 +501,7 @@ public class TrafficStatisticsInfoController extends BaseController {
@ResponseBody
public List ajaxAppTopList(String beginDate,String endDate,Integer appType,Integer entranceId,Integer searchQuota,Model model){
Map<String, Object> fromJsonList = new HashMap<String, Object>();
List list = new ArrayList();
List<Map> list = new ArrayList<Map>();
try {
String url=Constants.DASHBOARD_URL+Constants.APPCONN_RECORD_TOP100;
URIBuilder uriBuilder = new URIBuilder(url);
@@ -508,7 +524,18 @@ public class TrafficStatisticsInfoController extends BaseController {
fromJsonList = gson.fromJson(string, new TypeToken<Map<String, Object>>(){}.getType());
logger.debug("app列表Top100"+fromJsonList);
list = (ArrayList) fromJsonList.get("data");
if(list.size()>0) {
//两个时间段之间的秒数
DecimalFormat dl = new DecimalFormat("0");
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
double allSeconds = DateUtils.getSecondsOfTwoDate(sdf.parse(beginDate),sdf.parse(endDate));
for(Map m:list) {
double avgPacket=Double.parseDouble(m.get("pktNum").toString())/allSeconds;
m.put("pps",dl.format(avgPacket));
double avgByte=Double.parseDouble(m.get("byteNum").toString())*8/allSeconds;
m.put("bps",dl.format(avgByte));
}
}
} catch (Exception e) {
e.printStackTrace();
logger.error("app列表Top100"+e);
@@ -610,6 +637,9 @@ public class TrafficStatisticsInfoController extends BaseController {
// Double totalLink=0d;
Double totalGbyte=0d;
Double totalPackets=0d;
//两个时间段之间的秒数
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
double allSeconds = DateUtils.getSecondsOfTwoDate(sdf.parse(beginDate),sdf.parse(endDate));
for (Object object : list) {
Map m=(Map)object;
Double count=(Double)m.get("byteCount");
@@ -618,6 +648,11 @@ public class TrafficStatisticsInfoController extends BaseController {
totalPackets+=(Double)m.get("pktCount");
String format = df.format(count/1024/1024/1024);
m.put("Gbyte", format);
double avgPacket=Double.parseDouble(m.get("pktCount").toString())/allSeconds;
m.put("pps",dl.format(avgPacket));
double avgByte=Double.parseDouble(m.get("byteCount").toString())*8/allSeconds;
m.put("bps",dl.format(avgByte));
}
List<WebsiteDomainTopic> codeList = appCfgService.getDomainDict(new WebsiteDomainTopic());
Map<Long, String> map = new HashMap<Long,String>();
@@ -687,12 +722,19 @@ public class TrafficStatisticsInfoController extends BaseController {
Long totalPackets=0l;
Double totalGByte=0d;
DecimalFormat lf = new DecimalFormat("0");
//两个时间段之间的秒数
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
double allSeconds = DateUtils.getSecondsOfTwoDate(sdf.parse(beginDate),sdf.parse(endDate));
if(!StringUtil.isEmpty(list)){
for (Object object : list) {
Map m=(Map) object;
totalLink+=Long.parseLong(lf.format(m.get("linkNum")));
totalPackets+=Long.parseLong(lf.format(m.get("packets")));
totalGByte+=Double.parseDouble(lf.format(m.get("count")));
double avgPacket=Double.parseDouble(m.get("packets").toString())/allSeconds;
m.put("pps",lf.format(avgPacket));
double avgByte=Double.parseDouble(m.get("count").toString())*8/allSeconds;
m.put("bps",lf.format(avgByte));
m.remove("domainData");
Double value1=0d;
if(StringUtil.isBlank(m.get("topicId").toString())){

View File

@@ -87,11 +87,11 @@ public class TrafficStatisticsReportController extends BaseController {
// statTime=DateUtils.getDate()+" 00:00:00"; // 默认今天
// endTime=DateUtils.getDateTime();
Calendar cal = Calendar.getInstance();
cal.setTime(new Date());
endTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(cal.getTime());// 获取到完整的时间
cal.set(Calendar.HOUR_OF_DAY, cal.get(Calendar.HOUR_OF_DAY) - 1);
statTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(cal.getTime());
Calendar time = Calendar.getInstance();
endTime = DateUtils.formatDateTimeByParm(time.getTime(),"yyyy-MM-dd HH")+":00:00";
time.add(Calendar.HOUR_OF_DAY, -1);
statTime = DateUtils.formatDateTimeByParm(time.getTime(),"yyyy-MM-dd HH")+":00:00";;
bean.setSearchFoundStartTime(statTime);
bean.setSearchFoundEndTime(endTime);
statTime = URLEncoder.encode(statTime, "UTF-8");

View File

@@ -65,7 +65,7 @@ public class HttpRecordLogController extends BaseController {
}
List<FunctionServiceDict> serviceList = DictUtils.getFunctionServiceDictList(log.getFunctionId());
serviceList.addAll(DictUtils.getFunctionServiceDictList(635));
// serviceList.addAll(DictUtils.getFunctionServiceDictList(635));
model.addAttribute("serviceList", serviceList);
String url = Constants.LOG_BASE_URL + Constants.NTC_HTTP_RECORD_LOG;
@@ -133,7 +133,7 @@ public class HttpRecordLogController extends BaseController {
}
List<FunctionServiceDict> serviceList = DictUtils.getFunctionServiceDictList(log.getFunctionId());
serviceList.addAll(DictUtils.getFunctionServiceDictList(635));
// serviceList.addAll(DictUtils.getFunctionServiceDictList(635));
model.addAttribute("serviceList", serviceList);
String url = Constants.LOG_BASE_URL + Constants.NTC_HTTP_RECORD_LOG;

View File

@@ -150,7 +150,7 @@ public class MailRecordLogController extends BaseController {
} else {
hColumns += ",";
}
String cfgIndexInfoNoExport = "," + hColumns;
String cfgIndexInfoNoExport = ",action,cfg_id," + hColumns;
noExportMap.put("mail_record", cfgIndexInfoNoExport);
dataMap.put("mail_record", list);
String timeRange = initLogMap(log, "mail_record");

View File

@@ -98,8 +98,9 @@ public class NtcConnRecordLogController extends BaseController {
if (StringUtils.isNotBlank(log.getdSubscribeId())) {
params.put("searchDSubscribeId", log.getdSubscribeId());
}
if (StringUtils.isNotBlank(log.getIspCode())) {
params.put("searchIspCode", log.getIspCode());
}
model.addAttribute("appList", appList);
model.addAttribute("protocolList", protocolList);
model.addAttribute("webList", webList);
@@ -240,9 +241,9 @@ public class NtcConnRecordLogController extends BaseController {
if (StringUtils.isNotBlank(log.getdSubscribeId())) {
params.put("searchDSubscribeId", log.getdSubscribeId());
}
if (StringUtils.isNotBlank(log.getIspCode())) {
params.put("searchIspCode", log.getIspCode());
}
model.addAttribute("appList", appList);
model.addAttribute("protocolList", protocolList);
model.addAttribute("webList", webList);

View File

@@ -137,7 +137,7 @@ public class SslRecordLogController extends BaseController {
} else {
hColumns += ",";
}
String cfgIndexInfoNoExport = "," + hColumns;
String cfgIndexInfoNoExport = ",action,cfg_id," + hColumns;
noExportMap.put("ssl_record", cfgIndexInfoNoExport);
dataMap.put("ssl_record", list);
String timeRange = initLogMap(log, "ssl_record");