多媒体、IP复用、增加导出excel和csv
This commit is contained in:
@@ -12,11 +12,11 @@ public class AvFileSampleCfg extends BaseCfg<AvFileSampleCfg> {
|
|||||||
private String indexTable="av_file_sample_cfg";
|
private String indexTable="av_file_sample_cfg";
|
||||||
@Expose
|
@Expose
|
||||||
@SerializedName("srcFile")
|
@SerializedName("srcFile")
|
||||||
@ExcelField(title="src_file",sort=2)
|
@ExcelField(title="src_file",sort=3)
|
||||||
private String srcUrl;
|
private String srcUrl;
|
||||||
@Expose
|
@Expose
|
||||||
@SerializedName("dstFile")
|
@SerializedName("dstFile")
|
||||||
@ExcelField(title="sample_file",sort=3)
|
@ExcelField(title="sample_file",sort=4)
|
||||||
private String sampleUrl;
|
private String sampleUrl;
|
||||||
@Expose
|
@Expose
|
||||||
@SerializedName("srcFileMd5")
|
@SerializedName("srcFileMd5")
|
||||||
|
|||||||
@@ -29,13 +29,13 @@ public class FileDigestCfg extends BaseCfg<FileDigestCfg> {
|
|||||||
private static final long serialVersionUID = 2796500715438264119L;
|
private static final long serialVersionUID = 2796500715438264119L;
|
||||||
private static final String tableName="file_digest_cfg";
|
private static final String tableName="file_digest_cfg";
|
||||||
private String indexTable="file_digest_cfg";
|
private String indexTable="file_digest_cfg";
|
||||||
@ExcelField(title="raw_len",sort=3)
|
@ExcelField(title="raw_len",sort=4)
|
||||||
private Long rawLen;
|
private Long rawLen;
|
||||||
@ExcelField(title="digest",sort=2)
|
@ExcelField(title="digest",sort=3)
|
||||||
private String digest;
|
private String digest;
|
||||||
@ExcelField(title="cfds_level",sort=4)
|
@ExcelField(title="harm_level",sort=5)
|
||||||
private Integer cfdsLevel;
|
private Integer cfdsLevel;
|
||||||
@ExcelField(title="file_url",sort=5)
|
@ExcelField(title="file_url",sort=6)
|
||||||
private String fileUrl;
|
private String fileUrl;
|
||||||
|
|
||||||
private NtcSubscribeIdCfg ntcSubscribeIdCfg;
|
private NtcSubscribeIdCfg ntcSubscribeIdCfg;
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package com.nis.domain.configuration;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import com.google.gson.annotations.SerializedName;
|
import com.google.gson.annotations.SerializedName;
|
||||||
|
import com.nis.util.excel.ExcelField;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* IP复用地址池实体
|
* IP复用地址池实体
|
||||||
@@ -13,15 +14,16 @@ public class IpAddrPoolCfg extends BaseCfg<IpAddrPoolCfg>{
|
|||||||
|
|
||||||
private static final long serialVersionUID = 1392197458744667669L;
|
private static final long serialVersionUID = 1392197458744667669L;
|
||||||
private String indexTable="ip_reuse_addr_pool";
|
private String indexTable="ip_reuse_addr_pool";
|
||||||
|
@ExcelField(title="address_pool",sort=2)
|
||||||
private String addrPoolName; // 地址池名称
|
private String addrPoolName; // 地址池名称
|
||||||
|
@ExcelField(title="ip_total",sort=3)
|
||||||
private Integer ipTotal; // IP总数
|
private Integer ipTotal; // IP总数
|
||||||
private Integer availableIpTotal; // 可用IP总数
|
private Integer availableIpTotal; // 可用IP总数
|
||||||
private String description; // 描述信息
|
private String description; // 描述信息
|
||||||
|
|
||||||
private List<BaseIpCfg> ipCfgs; // 地址池IP信息
|
private List<BaseIpCfg> ipCfgs; // 地址池IP信息
|
||||||
|
|
||||||
@SerializedName("cfgId")
|
@ExcelField(title="address_pool_id",sort=0)
|
||||||
private Integer compileId;
|
private Integer compileId;
|
||||||
|
|
||||||
public String getIndexTable() {
|
public String getIndexTable() {
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package com.nis.domain.configuration;
|
|||||||
import com.google.gson.annotations.Expose;
|
import com.google.gson.annotations.Expose;
|
||||||
import com.google.gson.annotations.SerializedName;
|
import com.google.gson.annotations.SerializedName;
|
||||||
import com.nis.util.Constants;
|
import com.nis.util.Constants;
|
||||||
|
import com.nis.util.excel.ExcelField;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* IP复用DNAT策略实体
|
* IP复用DNAT策略实体
|
||||||
@@ -16,6 +17,7 @@ public class IpReuseDnatPolicyCfg extends IpPortCfg{
|
|||||||
|
|
||||||
@Expose
|
@Expose
|
||||||
@SerializedName("configId")
|
@SerializedName("configId")
|
||||||
|
@ExcelField(title="cfg_id",sort=0)
|
||||||
private Integer compileId;
|
private Integer compileId;
|
||||||
|
|
||||||
@Expose
|
@Expose
|
||||||
@@ -24,22 +26,26 @@ public class IpReuseDnatPolicyCfg extends IpPortCfg{
|
|||||||
|
|
||||||
@Expose
|
@Expose
|
||||||
@SerializedName("originalDestIp")
|
@SerializedName("originalDestIp")
|
||||||
|
@ExcelField(title="original_dest_ip",sort=4)
|
||||||
private String srcIpAddress;
|
private String srcIpAddress;
|
||||||
|
|
||||||
@Expose
|
@Expose
|
||||||
@SerializedName("originalDestPort")
|
@SerializedName("originalDestPort")
|
||||||
|
@ExcelField(title="original_dest_port",sort=5)
|
||||||
private String srcPort;
|
private String srcPort;
|
||||||
|
|
||||||
@Expose
|
@Expose
|
||||||
@SerializedName("originalProtocol")
|
@SerializedName("originalProtocol")
|
||||||
|
@ExcelField(title="protocol",dictType="PROTOCOL",sort=8)
|
||||||
private Integer protocol;
|
private Integer protocol;
|
||||||
|
|
||||||
@Expose
|
@Expose
|
||||||
@SerializedName("translatedDestIp")
|
@SerializedName("translatedDestIp")
|
||||||
|
@ExcelField(title="translated_dest_ip",sort=6)
|
||||||
private String destIpAddress;
|
private String destIpAddress;
|
||||||
|
|
||||||
@Expose
|
@Expose
|
||||||
@SerializedName("translatedDestPort")
|
@SerializedName("translatedDestPort")
|
||||||
|
@ExcelField(title="translated_dest_port",sort=7)
|
||||||
private String destPort;
|
private String destPort;
|
||||||
|
|
||||||
@Expose
|
@Expose
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package com.nis.domain.configuration;
|
|||||||
import com.google.gson.annotations.Expose;
|
import com.google.gson.annotations.Expose;
|
||||||
import com.google.gson.annotations.SerializedName;
|
import com.google.gson.annotations.SerializedName;
|
||||||
import com.nis.util.Constants;
|
import com.nis.util.Constants;
|
||||||
|
import com.nis.util.excel.ExcelField;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* IP复用策略
|
* IP复用策略
|
||||||
@@ -20,6 +21,7 @@ public class IpReusePolicyCfg extends BaseCfg<IpReusePolicyCfg>{
|
|||||||
|
|
||||||
private Integer userId; // 用户标识
|
private Integer userId; // 用户标识
|
||||||
@Expose
|
@Expose
|
||||||
|
@ExcelField(title="user_type",dictType="USER_TYPE",sort=4)
|
||||||
protected String userType; // 用户类型
|
protected String userType; // 用户类型
|
||||||
@Expose
|
@Expose
|
||||||
protected Integer addrPoolId; // 地址池ID
|
protected Integer addrPoolId; // 地址池ID
|
||||||
@@ -27,11 +29,14 @@ public class IpReusePolicyCfg extends BaseCfg<IpReusePolicyCfg>{
|
|||||||
protected String translateParam; // 地址翻译参数
|
protected String translateParam; // 地址翻译参数
|
||||||
@Expose
|
@Expose
|
||||||
@SerializedName("userId")
|
@SerializedName("userId")
|
||||||
|
@ExcelField(title="user",sort=5)
|
||||||
private String userName;
|
private String userName;
|
||||||
|
@ExcelField(title="address_pool",sort=3)
|
||||||
private String addrPoolName; // 仅用于列表条件检索
|
private String addrPoolName; // 仅用于列表条件检索
|
||||||
|
|
||||||
private Integer ipType;
|
private Integer ipType;
|
||||||
private Integer ipPattern;
|
private Integer ipPattern;
|
||||||
|
@ExcelField(title="ip",sort=6)
|
||||||
private String srcIpAddress;
|
private String srcIpAddress;
|
||||||
private String destIpAddress;
|
private String destIpAddress;
|
||||||
@Expose
|
@Expose
|
||||||
|
|||||||
@@ -1,7 +1,5 @@
|
|||||||
package com.nis.domain.configuration;
|
package com.nis.domain.configuration;
|
||||||
|
|
||||||
import java.util.Date;
|
|
||||||
|
|
||||||
import com.google.gson.annotations.Expose;
|
import com.google.gson.annotations.Expose;
|
||||||
import com.google.gson.annotations.SerializedName;
|
import com.google.gson.annotations.SerializedName;
|
||||||
import com.nis.util.excel.ExcelField;
|
import com.nis.util.excel.ExcelField;
|
||||||
@@ -23,10 +21,13 @@ public class PxyObjSpoofingIpPool extends BaseIpCfg{
|
|||||||
private String port;
|
private String port;
|
||||||
@Expose
|
@Expose
|
||||||
@SerializedName("addrType")
|
@SerializedName("addrType")
|
||||||
|
@ExcelField(title="ip_type",dictType="IP_TYPE",sort=4)
|
||||||
private Integer ipType;
|
private Integer ipType;
|
||||||
@Expose
|
@Expose
|
||||||
@SerializedName("ip")
|
@SerializedName("ip")
|
||||||
|
@ExcelField(title="IP",sort=5)
|
||||||
private String ipAddress;
|
private String ipAddress;
|
||||||
|
@ExcelField(title="group",sort=3)
|
||||||
private String groupName;//欺骗IP池(IP组)名称
|
private String groupName;//欺骗IP池(IP组)名称
|
||||||
@Expose
|
@Expose
|
||||||
@SerializedName("policyGroup")
|
@SerializedName("policyGroup")
|
||||||
@@ -36,6 +37,7 @@ public class PxyObjSpoofingIpPool extends BaseIpCfg{
|
|||||||
private Integer location;//位置,无意义,固定为0
|
private Integer location;//位置,无意义,固定为0
|
||||||
@Expose
|
@Expose
|
||||||
@SerializedName("cfgId")
|
@SerializedName("cfgId")
|
||||||
|
@ExcelField(title="cfg_id",sort=0)
|
||||||
private Integer compileId;
|
private Integer compileId;
|
||||||
@Expose
|
@Expose
|
||||||
@SerializedName("userRegion")
|
@SerializedName("userRegion")
|
||||||
|
|||||||
@@ -3,25 +3,33 @@ package com.nis.domain.configuration;
|
|||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
import com.nis.domain.BaseEntity;
|
import com.nis.domain.BaseEntity;
|
||||||
|
import com.nis.util.excel.ExcelField;
|
||||||
|
|
||||||
public class UserManage extends BaseEntity<UserManage>{
|
public class UserManage extends BaseEntity<UserManage>{
|
||||||
|
|
||||||
private static final long serialVersionUID = -2749633756272829982L;
|
private static final long serialVersionUID = -2749633756272829982L;
|
||||||
|
|
||||||
private static final String tableName="user_manage";
|
private static final String tableName="user_manage";
|
||||||
|
@ExcelField(title="user_name",sort=1)
|
||||||
private String userName;
|
private String userName;
|
||||||
private String userPwd;
|
private String userPwd;
|
||||||
|
@ExcelField(title="vpn_ip",sort=2)
|
||||||
private String serverIp;
|
private String serverIp;
|
||||||
private String authMethod;
|
private String authMethod;
|
||||||
private Integer numLogins;
|
private Integer numLogins;
|
||||||
private String lastLogin;
|
private String lastLogin;
|
||||||
private String transferBytes;
|
private String transferBytes;
|
||||||
private String transferPackets;
|
private String transferPackets;
|
||||||
|
|
||||||
private Long creatorId;
|
private Long creatorId;
|
||||||
|
@ExcelField(title="config_time",sort=5)
|
||||||
private Date createTime;
|
private Date createTime;
|
||||||
|
|
||||||
private Long editorId;
|
private Long editorId;
|
||||||
|
@ExcelField(title="edit_time",sort=7)
|
||||||
private Date editTime;
|
private Date editTime;
|
||||||
private Integer isValid;
|
private Integer isValid;
|
||||||
|
@ExcelField(title="desc",sort=3)
|
||||||
private String remarks;
|
private String remarks;
|
||||||
private String userType;
|
private String userType;
|
||||||
|
|
||||||
@@ -39,8 +47,9 @@ public class UserManage extends BaseEntity<UserManage>{
|
|||||||
private String incomingBroadcastPackets;
|
private String incomingBroadcastPackets;
|
||||||
private String incomingBroadcastTotalSize;
|
private String incomingBroadcastTotalSize;
|
||||||
private Integer numberOfLogins;*/
|
private Integer numberOfLogins;*/
|
||||||
|
@ExcelField(title="creator",sort=4)
|
||||||
private String creatorName;
|
private String creatorName;
|
||||||
|
@ExcelField(title="editor",sort=6)
|
||||||
private String editorName;
|
private String editorName;
|
||||||
private Date search_create_time_start;
|
private Date search_create_time_start;
|
||||||
private Date search_create_time_end;
|
private Date search_create_time_end;
|
||||||
|
|||||||
@@ -130,6 +130,9 @@ public class ExcelCsv {
|
|||||||
Map<String, List<String>> commentMap=new HashMap<String, List<String>>();
|
Map<String, List<String>> commentMap=new HashMap<String, List<String>>();
|
||||||
for (String title : titleList) {
|
for (String title : titleList) {
|
||||||
String noExportField=noExportMap.get(title);
|
String noExportField=noExportMap.get(title);
|
||||||
|
if(noExportField.contains("do_log")){
|
||||||
|
noExportField=",do_blacklist,"+noExportField;
|
||||||
|
}
|
||||||
List<Object[]> annotationList = Lists.newArrayList();
|
List<Object[]> annotationList = Lists.newArrayList();
|
||||||
List<Field> list=new ArrayList<Field>();
|
List<Field> list=new ArrayList<Field>();
|
||||||
// Get annotation field
|
// Get annotation field
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ import org.apache.poi.ss.usermodel.Row;
|
|||||||
import org.apache.poi.ss.usermodel.Sheet;
|
import org.apache.poi.ss.usermodel.Sheet;
|
||||||
import org.apache.poi.ss.usermodel.Workbook;
|
import org.apache.poi.ss.usermodel.Workbook;
|
||||||
import org.apache.poi.ss.util.CellRangeAddress;
|
import org.apache.poi.ss.util.CellRangeAddress;
|
||||||
|
import org.apache.poi.ss.util.RegionUtil;
|
||||||
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
|
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
|
||||||
import org.apache.poi.xssf.usermodel.XSSFClientAnchor;
|
import org.apache.poi.xssf.usermodel.XSSFClientAnchor;
|
||||||
import org.apache.poi.xssf.usermodel.XSSFRichTextString;
|
import org.apache.poi.xssf.usermodel.XSSFRichTextString;
|
||||||
@@ -2132,6 +2133,9 @@ public class ExportExcel {
|
|||||||
Map<String, List<String>> commentMap=new HashMap<String, List<String>>();
|
Map<String, List<String>> commentMap=new HashMap<String, List<String>>();
|
||||||
for (String title : titleList) {
|
for (String title : titleList) {
|
||||||
String noExportField=noExportMap.get(title);
|
String noExportField=noExportMap.get(title);
|
||||||
|
if(noExportField.contains("do_log")){
|
||||||
|
noExportField=",do_blacklist,"+noExportField;
|
||||||
|
}
|
||||||
List<Object[]> annotationList = Lists.newArrayList();
|
List<Object[]> annotationList = Lists.newArrayList();
|
||||||
List<Field> list=new ArrayList<Field>();
|
List<Field> list=new ArrayList<Field>();
|
||||||
// Get annotation field
|
// Get annotation field
|
||||||
@@ -2293,11 +2297,10 @@ public class ExportExcel {
|
|||||||
Row timeRow = sheet.createRow(0);
|
Row timeRow = sheet.createRow(0);
|
||||||
timeRow.setHeightInPoints(16);
|
timeRow.setHeightInPoints(16);
|
||||||
Cell cellt = timeRow.createCell(0);
|
Cell cellt = timeRow.createCell(0);
|
||||||
cellt.setCellStyle(style);
|
|
||||||
cellt.setCellValue(titleTime);
|
cellt.setCellValue(titleTime);
|
||||||
sheet.addMergedRegion(callRangeAddress);
|
sheet.addMergedRegion(callRangeAddress);
|
||||||
sheet.autoSizeColumn(0);
|
sheet.autoSizeColumn(0);
|
||||||
//--------------------
|
setBorderStyle(CellStyle.BORDER_THIN,callRangeAddress,sheet,wb);
|
||||||
}
|
}
|
||||||
Integer rownum=rownums.get(title);
|
Integer rownum=rownums.get(title);
|
||||||
Row headerRow = sheet.createRow(rownum++);
|
Row headerRow = sheet.createRow(rownum++);
|
||||||
@@ -2326,6 +2329,21 @@ public class ExportExcel {
|
|||||||
log.debug("Initialize success.");
|
log.debug("Initialize success.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void setBorderStyle(int border, CellRangeAddress region, Sheet sheet, SXSSFWorkbook wb){
|
||||||
|
RegionUtil.setBorderBottom(border, region, sheet, wb);//下边框
|
||||||
|
RegionUtil.setBorderLeft(border, region, sheet, wb); //左边框
|
||||||
|
RegionUtil.setBorderRight(border, region, sheet, wb); //右边框
|
||||||
|
RegionUtil.setBorderTop(border, region, sheet, wb); //上边框
|
||||||
|
RegionUtil.setBottomBorderColor(IndexedColors.GREY_50_PERCENT.getIndex(), region, sheet, wb);
|
||||||
|
RegionUtil.setLeftBorderColor(IndexedColors.GREY_50_PERCENT.getIndex(), region, sheet, wb);
|
||||||
|
RegionUtil.setRightBorderColor(IndexedColors.GREY_50_PERCENT.getIndex(), region, sheet, wb);
|
||||||
|
RegionUtil.setTopBorderColor(IndexedColors.GREY_50_PERCENT.getIndex(), region, sheet, wb);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 输出数据流
|
* 输出数据流
|
||||||
* @param os 输出数据流
|
* @param os 输出数据流
|
||||||
|
|||||||
@@ -2071,30 +2071,25 @@ public class BaseController {
|
|||||||
titleTime+=" "+msgProp.getProperty("config_time")+":"+DateUtils.formatDateTime(cfg.getSearch_create_time_start());
|
titleTime+=" "+msgProp.getProperty("config_time")+":"+DateUtils.formatDateTime(cfg.getSearch_create_time_start());
|
||||||
if(cfg.getSearch_create_time_end()!=null){
|
if(cfg.getSearch_create_time_end()!=null){
|
||||||
titleTime+="—"+DateUtils.formatDateTime(cfg.getSearch_create_time_end());
|
titleTime+="—"+DateUtils.formatDateTime(cfg.getSearch_create_time_end());
|
||||||
}
|
}else{
|
||||||
}else{
|
titleTime+="—"+DateUtils.getDateTime();
|
||||||
if(cfg.getSearch_create_time_end()!=null){
|
|
||||||
titleTime+=" "+msgProp.getProperty("config_time")+":—"+DateUtils.formatDateTime(cfg.getSearch_create_time_end());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(cfg.getSearch_edit_time_start()!=null){
|
if(cfg.getSearch_edit_time_start()!=null){
|
||||||
titleTime+=" "+msgProp.getProperty("edit_time")+":"+DateUtils.formatDateTime(cfg.getSearch_edit_time_start());
|
titleTime+=" "+msgProp.getProperty("edit_time")+":"+DateUtils.formatDateTime(cfg.getSearch_edit_time_start());
|
||||||
if(cfg.getSearch_edit_time_end()!=null){
|
if(cfg.getSearch_edit_time_end()!=null){
|
||||||
titleTime+="—"+DateUtils.formatDateTime(cfg.getSearch_edit_time_end());
|
titleTime+="—"+DateUtils.formatDateTime(cfg.getSearch_edit_time_end());
|
||||||
}
|
}else{
|
||||||
}else{
|
titleTime+="—"+DateUtils.getDateTime();
|
||||||
if(cfg.getSearch_edit_time_end()!=null){
|
|
||||||
titleTime+=" "+msgProp.getProperty("edit_time")+":—"+DateUtils.formatDateTime(cfg.getSearch_edit_time_end());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(cfg.getSearch_audit_time_start()!=null){
|
if(cfg.getSearch_audit_time_start()!=null){
|
||||||
titleTime+=" "+msgProp.getProperty("audit_time")+":"+DateUtils.formatDateTime(cfg.getSearch_audit_time_start());
|
titleTime+=" "+msgProp.getProperty("audit_time")+":"+DateUtils.formatDateTime(cfg.getSearch_audit_time_start());
|
||||||
if(cfg.getSearch_audit_time_end()!=null){
|
if(cfg.getSearch_audit_time_end()!=null){
|
||||||
titleTime+="—"+DateUtils.formatDateTime(cfg.getSearch_audit_time_end());
|
titleTime+="—"+DateUtils.formatDateTime(cfg.getSearch_audit_time_end());
|
||||||
}
|
}else{
|
||||||
}else{
|
titleTime+="—"+DateUtils.getDateTime();
|
||||||
if(cfg.getSearch_audit_time_end()!=null){
|
|
||||||
titleTime+=" "+msgProp.getProperty("audit_time")+": —"+DateUtils.formatDateTime(cfg.getSearch_audit_time_end());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return titleTime;
|
return titleTime;
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
package com.nis.web.controller.configuration.maintenance;
|
package com.nis.web.controller.configuration.maintenance;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -21,7 +20,6 @@ import org.springframework.web.servlet.mvc.support.RedirectAttributes;
|
|||||||
|
|
||||||
import com.nis.domain.Page;
|
import com.nis.domain.Page;
|
||||||
import com.nis.domain.basics.IpReuseIpCfg;
|
import com.nis.domain.basics.IpReuseIpCfg;
|
||||||
import com.nis.domain.configuration.BaseIpCfg;
|
|
||||||
import com.nis.domain.configuration.IpAddrPoolCfg;
|
import com.nis.domain.configuration.IpAddrPoolCfg;
|
||||||
import com.nis.exceptions.MaatConvertException;
|
import com.nis.exceptions.MaatConvertException;
|
||||||
import com.nis.util.ConfigServiceUtil;
|
import com.nis.util.ConfigServiceUtil;
|
||||||
@@ -225,4 +223,66 @@ public class IpAddrPoolController extends BaseController{
|
|||||||
return ipList;
|
return ipList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@RequestMapping(value = "exportIpPool")
|
||||||
|
public void exportIpPool(Model model, HttpServletRequest request, HttpServletResponse response,
|
||||||
|
@ModelAttribute("cfg") IpAddrPoolCfg entity, String ids, RedirectAttributes redirectAttributes) {
|
||||||
|
try {
|
||||||
|
// export data info
|
||||||
|
List<String> titleList = new ArrayList<String>();
|
||||||
|
Map<String, Class<?>> classMap = new HashMap<String, Class<?>>();
|
||||||
|
Map<String, List> dataMap = new HashMap<String, List>();
|
||||||
|
Map<String, String> noExportMap = new HashMap<String, String>();
|
||||||
|
|
||||||
|
List<IpAddrPoolCfg> ipLists = new ArrayList<IpAddrPoolCfg>();
|
||||||
|
// 导出选中记录
|
||||||
|
if (!StringUtil.isEmpty(ids)) {
|
||||||
|
ipLists = ipAddrPoolCfgService.findByPage(ids);
|
||||||
|
} else {
|
||||||
|
Page<IpAddrPoolCfg> pageInfo = new Page<IpAddrPoolCfg>(request, response, "r");
|
||||||
|
pageInfo.setPageNo(1);
|
||||||
|
pageInfo.setPageSize(Constants.MAX_EXPORT_SIZE);
|
||||||
|
Page<IpAddrPoolCfg> page = ipAddrPoolCfgService.findPage(pageInfo, entity);
|
||||||
|
ipLists = page.getList();
|
||||||
|
}
|
||||||
|
for (IpAddrPoolCfg ipAddrPoolCfg : ipLists) {
|
||||||
|
Integer compId=ipAddrPoolCfg.getCfgId().intValue();
|
||||||
|
ipAddrPoolCfg.setCompileId(compId);
|
||||||
|
}
|
||||||
|
|
||||||
|
titleList.add(entity.getMenuNameCode());
|
||||||
|
classMap.put(entity.getMenuNameCode(), IpAddrPoolCfg.class);
|
||||||
|
String cfgIndexInfoNoExport = ",cfg_id,config_describe,block_type,policy_name,do_log,,whether_area_block,do_blacklist,group_name,userregion1,userregion2,userregion3,userregion4,userregion5,";
|
||||||
|
// 时间过滤
|
||||||
|
if (entity.getSearch_create_time_start() == null && entity.getSearch_create_time_end() == null) {
|
||||||
|
cfgIndexInfoNoExport = ",config_time" + cfgIndexInfoNoExport;
|
||||||
|
}
|
||||||
|
if (entity.getSearch_edit_time_start() == null && entity.getSearch_edit_time_end() == null) {
|
||||||
|
cfgIndexInfoNoExport = ",edit_time" + cfgIndexInfoNoExport;
|
||||||
|
}
|
||||||
|
if (entity.getSearch_audit_time_start() == null && entity.getSearch_audit_time_end() == null) {
|
||||||
|
cfgIndexInfoNoExport = ",audit_time" + cfgIndexInfoNoExport;
|
||||||
|
}
|
||||||
|
if (!StringUtil.isEmpty(entity.gethColumns())) {
|
||||||
|
cfgIndexInfoNoExport = "," + entity.gethColumns() + "," + cfgIndexInfoNoExport;
|
||||||
|
}
|
||||||
|
|
||||||
|
noExportMap.put(entity.getMenuNameCode(), cfgIndexInfoNoExport);
|
||||||
|
dataMap.put(entity.getMenuNameCode(), ipLists);
|
||||||
|
|
||||||
|
String timeRange = initTimeMap(entity);
|
||||||
|
noExportMap.put("timeRange", timeRange);
|
||||||
|
if ("csv".equals(entity.getExType())) {
|
||||||
|
this._exportCsv(model, request, response, redirectAttributes, entity.getMenuNameCode(), titleList,
|
||||||
|
classMap, dataMap, noExportMap);
|
||||||
|
} else {
|
||||||
|
this._export(model, request, response, redirectAttributes, entity.getMenuNameCode(), titleList,
|
||||||
|
classMap, dataMap, noExportMap);
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
logger.error("ip white export failed", e);
|
||||||
|
addMessage(redirectAttributes, "error", "export_failed");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,9 +23,14 @@ import com.google.common.collect.Maps;
|
|||||||
import com.nis.domain.Page;
|
import com.nis.domain.Page;
|
||||||
import com.nis.domain.basics.IpReuseIpCfg;
|
import com.nis.domain.basics.IpReuseIpCfg;
|
||||||
import com.nis.domain.basics.ServiceDictInfo;
|
import com.nis.domain.basics.ServiceDictInfo;
|
||||||
|
import com.nis.domain.configuration.BaseCfg;
|
||||||
|
import com.nis.domain.configuration.BaseStringCfg;
|
||||||
|
import com.nis.domain.configuration.CfgIndexInfo;
|
||||||
|
import com.nis.domain.configuration.IpPortCfg;
|
||||||
import com.nis.domain.configuration.UserManage;
|
import com.nis.domain.configuration.UserManage;
|
||||||
import com.nis.exceptions.MaatConvertException;
|
import com.nis.exceptions.MaatConvertException;
|
||||||
import com.nis.util.Constants;
|
import com.nis.util.Constants;
|
||||||
|
import com.nis.util.DateUtils;
|
||||||
import com.nis.util.StringUtil;
|
import com.nis.util.StringUtil;
|
||||||
import com.nis.util.StringUtils;
|
import com.nis.util.StringUtils;
|
||||||
import com.nis.web.controller.BaseController;
|
import com.nis.web.controller.BaseController;
|
||||||
@@ -352,4 +357,87 @@ public class UserManageController extends BaseController{
|
|||||||
model.addAttribute("user", user);
|
model.addAttribute("user", user);
|
||||||
return "/cfg/maintenance/userManage/userView";
|
return "/cfg/maintenance/userManage/userView";
|
||||||
}*/
|
}*/
|
||||||
|
// 配置导出
|
||||||
|
@RequestMapping(value = "exportUser")
|
||||||
|
public void exportbgp(Model model, HttpServletRequest request, HttpServletResponse response,String hColumns,String exType,
|
||||||
|
@ModelAttribute("cfg") UserManage entity, String ids, RedirectAttributes redirectAttributes) {
|
||||||
|
try {
|
||||||
|
// export data info
|
||||||
|
List<String> titleList = new ArrayList<String>();
|
||||||
|
Map<String, Class<?>> classMap = new HashMap<String, Class<?>>();
|
||||||
|
Map<String, List> dataMap = new HashMap<String, List>();
|
||||||
|
Map<String, String> noExportMap = new HashMap<String, String>();
|
||||||
|
List<UserManage> ipLists = new ArrayList<UserManage>();
|
||||||
|
// 导出选中记录
|
||||||
|
if (!StringUtil.isEmpty(ids)) {
|
||||||
|
ipLists = userManageService.findByPage(ids);
|
||||||
|
} else {
|
||||||
|
Page<UserManage> pageInfo = new Page<UserManage>(request, response, "a");
|
||||||
|
pageInfo.setPageNo(1);
|
||||||
|
pageInfo.setPageSize(Constants.MAX_EXPORT_SIZE);
|
||||||
|
Page<UserManage> page = userManageService.findPage(pageInfo, entity);
|
||||||
|
ipLists = page.getList();
|
||||||
|
}
|
||||||
|
titleList.add("user_manage");
|
||||||
|
classMap.put("user_manage", UserManage.class);
|
||||||
|
String cfgIndexInfoNoExport = ",";
|
||||||
|
// 时间过滤
|
||||||
|
if (entity.getSearch_create_time_start() == null && entity.getSearch_create_time_end() == null) {
|
||||||
|
cfgIndexInfoNoExport = ",config_time" + cfgIndexInfoNoExport;
|
||||||
|
}
|
||||||
|
if (entity.getSearch_edit_time_start() == null && entity.getSearch_edit_time_end() == null) {
|
||||||
|
cfgIndexInfoNoExport = ",edit_time" + cfgIndexInfoNoExport;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!StringUtil.isEmpty(hColumns)) {
|
||||||
|
cfgIndexInfoNoExport = "," + hColumns + "," + cfgIndexInfoNoExport;
|
||||||
|
}
|
||||||
|
for (UserManage userManage : ipLists) {
|
||||||
|
if(!StringUtils.isEmpty( userManage.getServerIp())){
|
||||||
|
userManage.setServerIp(userManage.getServerIp().substring(0,userManage.getServerIp().length()-1).replaceAll(",", ","));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
noExportMap.put("user_manage", cfgIndexInfoNoExport);
|
||||||
|
dataMap.put("user_manage", ipLists);
|
||||||
|
String timeRange = initUserMap(entity);
|
||||||
|
noExportMap.put("timeRange", timeRange);
|
||||||
|
if ("csv".equals(exType)) {
|
||||||
|
this._exportCsv(model, request, response, redirectAttributes, "user_manage", titleList,
|
||||||
|
classMap, dataMap, noExportMap);
|
||||||
|
} else {
|
||||||
|
this._export(model, request, response, redirectAttributes, "user_manage", titleList,
|
||||||
|
classMap, dataMap, noExportMap);
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
logger.error("user export failed", e);
|
||||||
|
addMessage(redirectAttributes, "error", "export_failed");
|
||||||
|
}
|
||||||
|
// return "redirect:" + adminPath
|
||||||
|
// +"/ntc/iplist/list?functionId="+entity.getFunctionId();
|
||||||
|
}
|
||||||
|
public String initUserMap(UserManage cfg){
|
||||||
|
Properties msgProp = getMsgProp();
|
||||||
|
String titleTime=msgProp.getProperty("user_manage","user_manage");
|
||||||
|
if(cfg.getSearch_create_time_start()!=null){
|
||||||
|
titleTime+=" "+msgProp.getProperty("config_time")+":"+DateUtils.formatDateTime(cfg.getSearch_create_time_start());
|
||||||
|
if(cfg.getSearch_create_time_end()!=null){
|
||||||
|
titleTime+="—"+DateUtils.formatDateTime(cfg.getSearch_create_time_end());
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
if(cfg.getSearch_create_time_end()!=null){
|
||||||
|
titleTime+=" "+msgProp.getProperty("config_time")+":—"+DateUtils.formatDateTime(cfg.getSearch_create_time_end());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(cfg.getSearch_edit_time_start()!=null){
|
||||||
|
titleTime+=" "+msgProp.getProperty("edit_time")+":"+DateUtils.formatDateTime(cfg.getSearch_edit_time_start());
|
||||||
|
if(cfg.getSearch_edit_time_end()!=null){
|
||||||
|
titleTime+="—"+DateUtils.formatDateTime(cfg.getSearch_edit_time_end());
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
if(cfg.getSearch_edit_time_end()!=null){
|
||||||
|
titleTime+=" "+msgProp.getProperty("edit_time")+":—"+DateUtils.formatDateTime(cfg.getSearch_edit_time_end());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return titleTime;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ import com.nis.domain.Page;
|
|||||||
import com.nis.domain.SysDataDictionaryItem;
|
import com.nis.domain.SysDataDictionaryItem;
|
||||||
import com.nis.domain.basics.PolicyGroupInfo;
|
import com.nis.domain.basics.PolicyGroupInfo;
|
||||||
import com.nis.domain.configuration.BaseIpCfg;
|
import com.nis.domain.configuration.BaseIpCfg;
|
||||||
|
import com.nis.domain.configuration.CfgIndexInfo;
|
||||||
import com.nis.domain.configuration.IpAddrPoolCfg;
|
import com.nis.domain.configuration.IpAddrPoolCfg;
|
||||||
import com.nis.domain.configuration.IpPortCfg;
|
import com.nis.domain.configuration.IpPortCfg;
|
||||||
import com.nis.domain.configuration.IpReuseDnatPolicyCfg;
|
import com.nis.domain.configuration.IpReuseDnatPolicyCfg;
|
||||||
@@ -430,7 +431,7 @@ public class IpMultiplexController extends CommonController {
|
|||||||
// snat配置导出
|
// snat配置导出
|
||||||
@RequestMapping(value = "exportSnat")
|
@RequestMapping(value = "exportSnat")
|
||||||
public void exportSnat(Model model, HttpServletRequest request, HttpServletResponse response,
|
public void exportSnat(Model model, HttpServletRequest request, HttpServletResponse response,
|
||||||
@ModelAttribute("cfg") BaseIpCfg entity, String ids, RedirectAttributes redirectAttributes) {
|
@ModelAttribute("cfg") IpReusePolicyCfg entity, String ids, RedirectAttributes redirectAttributes) {
|
||||||
try {
|
try {
|
||||||
// export data info
|
// export data info
|
||||||
List<String> titleList = new ArrayList<String>();
|
List<String> titleList = new ArrayList<String>();
|
||||||
@@ -438,27 +439,38 @@ public class IpMultiplexController extends CommonController {
|
|||||||
Map<String, List> dataMap = new HashMap<String, List>();
|
Map<String, List> dataMap = new HashMap<String, List>();
|
||||||
Map<String, String> noExportMap = new HashMap<String, String>();
|
Map<String, String> noExportMap = new HashMap<String, String>();
|
||||||
Properties msgProp = getMsgProp();
|
Properties msgProp = getMsgProp();
|
||||||
|
// 导出选中记录
|
||||||
|
List<IpReusePolicyCfg> ipLists = new ArrayList<IpReusePolicyCfg>();
|
||||||
|
|
||||||
/*
|
if (!StringUtil.isEmpty(ids)) {
|
||||||
* //导出选中记录 if(!StringUtil.isEmpty(ids)){ for(String
|
ipLists = ipMultiplexService.findByPage(ids);
|
||||||
* id:ids.split(",")){ Long.parseLong(id); } //List<CfgIndexInfo>
|
} else {
|
||||||
* list=ipCfgService.getListByCfgIdWithName(IpPortCfg.getTablename()
|
Page<IpReusePolicyCfg> pageInfo = new Page<IpReusePolicyCfg>(request, response, "r");
|
||||||
* , entity.getFunctionId(), ids); }else{
|
pageInfo.setPageNo(1);
|
||||||
*/
|
pageInfo.setPageSize(Constants.MAX_EXPORT_SIZE);
|
||||||
// 条件导出数据大于最大导出数,只导出最大导出条数
|
Page<IpReusePolicyCfg> page = ipMultiplexService.findPage(pageInfo,entity);
|
||||||
entity.setTableName(IpPortCfg.getTablename());
|
ipLists = page.getList();
|
||||||
Page<BaseIpCfg> pageInfo = new Page<BaseIpCfg>(request, response, "r");
|
}
|
||||||
pageInfo.setPageNo(1);
|
List<IpAddrPoolCfg> addrPools = ipAddrPoolCfgService.getEffectiveAddrPool();
|
||||||
pageInfo.setPageSize(Constants.MAX_EXPORT_SIZE);
|
for (IpReusePolicyCfg ipReusePolicyCfg : ipLists) {
|
||||||
Page<BaseIpCfg> page = ipCfgService.findPage(pageInfo, entity);//
|
if(ipReusePolicyCfg.getAddrPoolId()!=null){
|
||||||
for (BaseIpCfg baseIp : page.getList()) {
|
for (IpAddrPoolCfg addr : addrPools) {
|
||||||
if (StringUtil.isEmpty(baseIp.getGroupName())) {
|
if(ipReusePolicyCfg.getAddrPoolId()==addr.getCfgId().intValue()){
|
||||||
baseIp.setGroupName(msgProp.getProperty("default_group"));
|
ipReusePolicyCfg.setAddrPoolName(addr.getAddrPoolName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(ipReusePolicyCfg.getUserType().equals("VPN")){
|
||||||
|
ipReusePolicyCfg.setUserType(msgProp.getProperty("policy_vpn_user","VPN"));
|
||||||
|
}else if(ipReusePolicyCfg.getUserType().equals("SIPv4")){
|
||||||
|
ipReusePolicyCfg.setUserType(msgProp.getProperty("policy_sipv4_user","SIPv4"));
|
||||||
|
}else if(ipReusePolicyCfg.getUserType().equals("SIPv6")){
|
||||||
|
ipReusePolicyCfg.setUserType(msgProp.getProperty("policy_sipv6_user","SIPv6"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
titleList.add(entity.getMenuNameCode());
|
titleList.add(entity.getMenuNameCode());
|
||||||
classMap.put(entity.getMenuNameCode(), BaseIpCfg.class);
|
classMap.put(entity.getMenuNameCode(), IpReusePolicyCfg.class);
|
||||||
String snatNoExport = ",client_ip,group_name,server_ip,ip_type,ip_pattern,port_pattern,client_port,server_port,ir_type,direction,protocol,do_log,whether_area_block,userregion1,userregion2,userregion3,userregion4,userregion5,";
|
String snatNoExport = ",block_type,client_ip,group_name,server_ip,ip_type,ip_pattern,port_pattern,client_port,server_port,ir_type,direction,protocol,do_log,whether_area_block,userregion1,userregion2,userregion3,userregion4,userregion5,";
|
||||||
|
|
||||||
// 时间过滤
|
// 时间过滤
|
||||||
if (entity.getSearch_create_time_start() == null && entity.getSearch_create_time_end() == null) {
|
if (entity.getSearch_create_time_start() == null && entity.getSearch_create_time_end() == null) {
|
||||||
@@ -475,7 +487,7 @@ public class IpMultiplexController extends CommonController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
noExportMap.put(entity.getMenuNameCode(), snatNoExport);
|
noExportMap.put(entity.getMenuNameCode(), snatNoExport);
|
||||||
dataMap.put(entity.getMenuNameCode(), page.getList());
|
dataMap.put(entity.getMenuNameCode(), ipLists);
|
||||||
|
|
||||||
String timeRange = initTimeMap(entity);
|
String timeRange = initTimeMap(entity);
|
||||||
noExportMap.put("timeRange", timeRange);
|
noExportMap.put("timeRange", timeRange);
|
||||||
@@ -497,7 +509,7 @@ public class IpMultiplexController extends CommonController {
|
|||||||
// dnat配置导出
|
// dnat配置导出
|
||||||
@RequestMapping(value = "exportDnat")
|
@RequestMapping(value = "exportDnat")
|
||||||
public void exportDnat(Model model, HttpServletRequest request, HttpServletResponse response,
|
public void exportDnat(Model model, HttpServletRequest request, HttpServletResponse response,
|
||||||
@ModelAttribute("cfg") BaseIpCfg entity, String ids, RedirectAttributes redirectAttributes) {
|
@ModelAttribute("cfg") IpReuseDnatPolicyCfg entity, String ids, RedirectAttributes redirectAttributes) {
|
||||||
try {
|
try {
|
||||||
// export data info
|
// export data info
|
||||||
List<String> titleList = new ArrayList<String>();
|
List<String> titleList = new ArrayList<String>();
|
||||||
@@ -505,27 +517,21 @@ public class IpMultiplexController extends CommonController {
|
|||||||
Map<String, List> dataMap = new HashMap<String, List>();
|
Map<String, List> dataMap = new HashMap<String, List>();
|
||||||
Map<String, String> noExportMap = new HashMap<String, String>();
|
Map<String, String> noExportMap = new HashMap<String, String>();
|
||||||
Properties msgProp = getMsgProp();
|
Properties msgProp = getMsgProp();
|
||||||
|
// 导出选中记录
|
||||||
/*
|
List<BaseIpCfg> ipLists = new ArrayList<BaseIpCfg>();
|
||||||
* //导出选中记录 if(!StringUtil.isEmpty(ids)){ for(String
|
if (!StringUtil.isEmpty(ids)) {
|
||||||
* id:ids.split(",")){ Long.parseLong(id); } //List<CfgIndexInfo>
|
ipLists = ipMultiplexService.findPageByDnat(ids);
|
||||||
* list=ipCfgService.getListByCfgIdWithName(IpPortCfg.getTablename()
|
} else {
|
||||||
* , entity.getFunctionId(), ids); }else{
|
Page<BaseIpCfg> pageInfo = new Page<BaseIpCfg>(request, response, "r");
|
||||||
*/
|
pageInfo.setPageNo(1);
|
||||||
// 条件导出数据大于最大导出数,只导出最大导出条数
|
pageInfo.setPageSize(Constants.MAX_EXPORT_SIZE);
|
||||||
entity.setTableName(IpPortCfg.getTablename());
|
Page<BaseIpCfg> page = ipMultiplexService.findPageDnat(pageInfo, entity);
|
||||||
Page<BaseIpCfg> pageInfo = new Page<BaseIpCfg>(request, response, "r");
|
ipLists = page.getList();
|
||||||
pageInfo.setPageNo(1);
|
|
||||||
pageInfo.setPageSize(Constants.MAX_EXPORT_SIZE);
|
|
||||||
Page<BaseIpCfg> page = ipCfgService.findPage(pageInfo, entity);//
|
|
||||||
for (BaseIpCfg baseIp : page.getList()) {
|
|
||||||
if (StringUtil.isEmpty(baseIp.getGroupName())) {
|
|
||||||
baseIp.setGroupName(msgProp.getProperty("default_group"));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
titleList.add(entity.getMenuNameCode());
|
titleList.add(entity.getMenuNameCode());
|
||||||
classMap.put(entity.getMenuNameCode(), BaseIpCfg.class);
|
classMap.put(entity.getMenuNameCode(), IpReuseDnatPolicyCfg.class);
|
||||||
String snatNoExport = ",direction,client_ip,ip_type,ip_pattern,port_pattern,client_port,ir_type,do_log,whether_area_block,userregion1,userregion2,userregion3,userregion4,userregion5,";
|
String snatNoExport = ",group_name,block_type,direction,client_ip,ip_type,ip_pattern,port_pattern,client_port,ir_type,do_log,whether_area_block,userregion1,userregion2,userregion3,userregion4,userregion5,";
|
||||||
|
|
||||||
// 时间过滤
|
// 时间过滤
|
||||||
if (entity.getSearch_create_time_start() == null && entity.getSearch_create_time_end() == null) {
|
if (entity.getSearch_create_time_start() == null && entity.getSearch_create_time_end() == null) {
|
||||||
@@ -542,7 +548,7 @@ public class IpMultiplexController extends CommonController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
noExportMap.put(entity.getMenuNameCode(), snatNoExport);
|
noExportMap.put(entity.getMenuNameCode(), snatNoExport);
|
||||||
dataMap.put(entity.getMenuNameCode(), page.getList());
|
dataMap.put(entity.getMenuNameCode(),ipLists);
|
||||||
|
|
||||||
String timeRange = initTimeMap(entity);
|
String timeRange = initTimeMap(entity);
|
||||||
noExportMap.put("timeRange", timeRange);
|
noExportMap.put("timeRange", timeRange);
|
||||||
|
|||||||
@@ -43,6 +43,7 @@ import com.nis.domain.configuration.AvSignSampleCfg;
|
|||||||
import com.nis.domain.configuration.AvSignSampleCfgModel;
|
import com.nis.domain.configuration.AvSignSampleCfgModel;
|
||||||
import com.nis.domain.configuration.BaseIpCfg;
|
import com.nis.domain.configuration.BaseIpCfg;
|
||||||
import com.nis.domain.configuration.BaseStringCfg;
|
import com.nis.domain.configuration.BaseStringCfg;
|
||||||
|
import com.nis.domain.configuration.CfgIndexInfo;
|
||||||
import com.nis.domain.configuration.FileDigestCfg;
|
import com.nis.domain.configuration.FileDigestCfg;
|
||||||
import com.nis.domain.configuration.IpPortCfg;
|
import com.nis.domain.configuration.IpPortCfg;
|
||||||
import com.nis.domain.maat.ToMaatResult;
|
import com.nis.domain.maat.ToMaatResult;
|
||||||
@@ -585,18 +586,20 @@ public class AvController extends BaseController {
|
|||||||
Map<String, List> dataMap = new HashMap<String, List>();
|
Map<String, List> dataMap = new HashMap<String, List>();
|
||||||
Map<String, String> noExportMap = new HashMap<String, String>();
|
Map<String, String> noExportMap = new HashMap<String, String>();
|
||||||
|
|
||||||
/*
|
List<AvFileSampleCfg> ipLists = new ArrayList<AvFileSampleCfg>();
|
||||||
* //导出选中记录 if(!StringUtil.isEmpty(ids)){ for(String
|
// 导出选中记录
|
||||||
* id:ids.split(",")){ Long.parseLong(id); } //List<CfgIndexInfo>
|
if (!StringUtil.isEmpty(ids)) {
|
||||||
* list=ipCfgService.getListByCfgIdWithName(IpPortCfg.getTablename()
|
ipLists = avCfgService.getAvFileBySampleList(ids);
|
||||||
* , entity.getFunctionId(), ids); }else{
|
} else {
|
||||||
*/
|
entity.setTableName(IpPortCfg.getTablename());
|
||||||
|
Page<AvFileSampleCfg> pageInfo = new Page<AvFileSampleCfg>(request, response, "a");
|
||||||
|
pageInfo.setPageNo(1);
|
||||||
|
pageInfo.setPageSize(Constants.MAX_EXPORT_SIZE);
|
||||||
|
Page<AvFileSampleCfg> page = avCfgService.getAvFileSampleList(pageInfo, entity);
|
||||||
|
ipLists = page.getList();
|
||||||
|
}
|
||||||
// 条件导出数据大于最大导出数,只导出最大导出条数
|
// 条件导出数据大于最大导出数,只导出最大导出条数
|
||||||
entity.setTableName(IpPortCfg.getTablename());
|
|
||||||
Page<AvFileSampleCfg> pageInfo = new Page<AvFileSampleCfg>(request, response, "a");
|
|
||||||
pageInfo.setPageNo(1);
|
|
||||||
pageInfo.setPageSize(Constants.MAX_EXPORT_SIZE);
|
|
||||||
Page<AvFileSampleCfg> page = avCfgService.getAvFileSampleList(pageInfo, entity);
|
|
||||||
titleList.add(entity.getMenuNameCode());
|
titleList.add(entity.getMenuNameCode());
|
||||||
classMap.put(entity.getMenuNameCode(), AvFileSampleCfg.class);
|
classMap.put(entity.getMenuNameCode(), AvFileSampleCfg.class);
|
||||||
String cfgIndexInfoNoExport = ",group_name,userregion1,userregion2,userregion3,userregion4,userregion5,";
|
String cfgIndexInfoNoExport = ",group_name,userregion1,userregion2,userregion3,userregion4,userregion5,";
|
||||||
@@ -616,7 +619,7 @@ public class AvController extends BaseController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
noExportMap.put(entity.getMenuNameCode(), cfgIndexInfoNoExport);
|
noExportMap.put(entity.getMenuNameCode(), cfgIndexInfoNoExport);
|
||||||
dataMap.put(entity.getMenuNameCode(), page.getList());
|
dataMap.put(entity.getMenuNameCode(), ipLists);
|
||||||
|
|
||||||
String timeRange = initTimeMap(entity);
|
String timeRange = initTimeMap(entity);
|
||||||
noExportMap.put("timeRange", timeRange);
|
noExportMap.put("timeRange", timeRange);
|
||||||
|
|||||||
@@ -826,19 +826,18 @@ public class FileTransferCfgController extends BaseController {
|
|||||||
Map<String, Class<?>> classMap = new HashMap<String, Class<?>>();
|
Map<String, Class<?>> classMap = new HashMap<String, Class<?>>();
|
||||||
Map<String, List> dataMap = new HashMap<String, List>();
|
Map<String, List> dataMap = new HashMap<String, List>();
|
||||||
Map<String, String> noExportMap = new HashMap<String, String>();
|
Map<String, String> noExportMap = new HashMap<String, String>();
|
||||||
|
List<FileDigestCfg> ipLists = new ArrayList<FileDigestCfg>();
|
||||||
|
// 导出选中记录
|
||||||
|
if (!StringUtil.isEmpty(ids)) {
|
||||||
|
ipLists = fileTransferCfgService.getFileByDigestList(ids);
|
||||||
|
} else {
|
||||||
|
Page<FileDigestCfg> pageInfo = new Page<FileDigestCfg>(request, response, "a");
|
||||||
|
pageInfo.setPageNo(1);
|
||||||
|
pageInfo.setPageSize(Constants.MAX_EXPORT_SIZE);
|
||||||
|
Page<FileDigestCfg> page = fileTransferCfgService.getFileDigestList(pageInfo, entity);
|
||||||
|
ipLists = page.getList();
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* //导出选中记录 if(!StringUtil.isEmpty(ids)){ for(String
|
|
||||||
* id:ids.split(",")){ Long.parseLong(id); } //List<CfgIndexInfo>
|
|
||||||
* list=ipCfgService.getListByCfgIdWithName(IpPortCfg.getTablename()
|
|
||||||
* , entity.getFunctionId(), ids); }else{
|
|
||||||
*/
|
|
||||||
// 条件导出数据大于最大导出数,只导出最大导出条数
|
|
||||||
entity.setTableName(IpPortCfg.getTablename());
|
|
||||||
Page<FileDigestCfg> pageInfo = new Page<FileDigestCfg>(request, response, "a");
|
|
||||||
pageInfo.setPageNo(1);
|
|
||||||
pageInfo.setPageSize(Constants.MAX_EXPORT_SIZE);
|
|
||||||
Page<FileDigestCfg> page = fileTransferCfgService.getFileDigestList(pageInfo, entity);
|
|
||||||
titleList.add(entity.getMenuNameCode());
|
titleList.add(entity.getMenuNameCode());
|
||||||
classMap.put(entity.getMenuNameCode(), FileDigestCfg.class);
|
classMap.put(entity.getMenuNameCode(), FileDigestCfg.class);
|
||||||
String cfgIndexInfoNoExport = ",policy_name,group_name,userregion1,userregion2,userregion3,userregion4,userregion5,";
|
String cfgIndexInfoNoExport = ",policy_name,group_name,userregion1,userregion2,userregion3,userregion4,userregion5,";
|
||||||
@@ -858,7 +857,7 @@ public class FileTransferCfgController extends BaseController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
noExportMap.put(entity.getMenuNameCode(), cfgIndexInfoNoExport);
|
noExportMap.put(entity.getMenuNameCode(), cfgIndexInfoNoExport);
|
||||||
dataMap.put(entity.getMenuNameCode(), page.getList());
|
dataMap.put(entity.getMenuNameCode(), ipLists);
|
||||||
/* } */
|
/* } */
|
||||||
|
|
||||||
String timeRange = initTimeMap(entity);
|
String timeRange = initTimeMap(entity);
|
||||||
|
|||||||
@@ -39,6 +39,7 @@ import org.springframework.web.servlet.mvc.support.RedirectAttributes;
|
|||||||
import com.google.common.collect.Maps;
|
import com.google.common.collect.Maps;
|
||||||
import com.nis.domain.Page;
|
import com.nis.domain.Page;
|
||||||
import com.nis.domain.basics.PolicyGroupInfo;
|
import com.nis.domain.basics.PolicyGroupInfo;
|
||||||
|
import com.nis.domain.configuration.CfgIndexInfo;
|
||||||
import com.nis.domain.configuration.DnsResStrategy;
|
import com.nis.domain.configuration.DnsResStrategy;
|
||||||
import com.nis.domain.configuration.IpPortCfg;
|
import com.nis.domain.configuration.IpPortCfg;
|
||||||
import com.nis.domain.configuration.PxyObjSpoofingIpPool;
|
import com.nis.domain.configuration.PxyObjSpoofingIpPool;
|
||||||
@@ -198,4 +199,66 @@ public class PxyObjSpoofingIpPoolController extends BaseController {
|
|||||||
return "redirect:" + adminPath +"/proxy/spoofing/pool/list?functionId="+functionId;
|
return "redirect:" + adminPath +"/proxy/spoofing/pool/list?functionId="+functionId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ip配置导出
|
||||||
|
@RequestMapping(value = "exportIpPool")
|
||||||
|
public void exportIpAddr(Model model, HttpServletRequest request, HttpServletResponse response,
|
||||||
|
@ModelAttribute("cfg") PxyObjSpoofingIpPool entity, String ids, RedirectAttributes redirectAttributes) {
|
||||||
|
try {
|
||||||
|
// export data info
|
||||||
|
List<String> titleList = new ArrayList<String>();
|
||||||
|
Map<String, Class<?>> classMap = new HashMap<String, Class<?>>();
|
||||||
|
Map<String, List> dataMap = new HashMap<String, List>();
|
||||||
|
Map<String, String> noExportMap = new HashMap<String, String>();
|
||||||
|
|
||||||
|
List<PxyObjSpoofingIpPool> ipLists = new ArrayList<PxyObjSpoofingIpPool>();
|
||||||
|
// 导出选中记录
|
||||||
|
if (!StringUtil.isEmpty(ids)) {
|
||||||
|
ipLists = pxyObjSpoofingIpPoolService.findByPage(ids);
|
||||||
|
} else {
|
||||||
|
Page<PxyObjSpoofingIpPool> pageInfo = new Page<PxyObjSpoofingIpPool>(request, response, "r");
|
||||||
|
pageInfo.setPageNo(1);
|
||||||
|
pageInfo.setPageSize(Constants.MAX_EXPORT_SIZE);
|
||||||
|
Page<PxyObjSpoofingIpPool> page = pxyObjSpoofingIpPoolService.findPage(pageInfo, entity);
|
||||||
|
ipLists = page.getList();
|
||||||
|
}
|
||||||
|
titleList.add(entity.getMenuNameCode());
|
||||||
|
classMap.put(entity.getMenuNameCode(), PxyObjSpoofingIpPool.class);
|
||||||
|
String cfgIndexInfoNoExport = ",policy_name,do_log,ir_type,whether_area_block,do_blacklist,block_type,ip_pattern,client_ip,server_ip,port_pattern,client_port,server_port,direction,protocol,group_name,userregion1,userregion2,userregion3,userregion4,userregion5,";
|
||||||
|
|
||||||
|
// 时间过滤
|
||||||
|
if (entity.getSearch_create_time_start() == null && entity.getSearch_create_time_end() == null) {
|
||||||
|
cfgIndexInfoNoExport = ",config_time" + cfgIndexInfoNoExport;
|
||||||
|
}
|
||||||
|
if (entity.getSearch_edit_time_start() == null && entity.getSearch_edit_time_end() == null) {
|
||||||
|
cfgIndexInfoNoExport = ",edit_time" + cfgIndexInfoNoExport;
|
||||||
|
}
|
||||||
|
if (entity.getSearch_audit_time_start() == null && entity.getSearch_audit_time_end() == null) {
|
||||||
|
cfgIndexInfoNoExport = ",audit_time" + cfgIndexInfoNoExport;
|
||||||
|
}
|
||||||
|
if (!StringUtil.isEmpty(entity.gethColumns())) {
|
||||||
|
cfgIndexInfoNoExport = "," + entity.gethColumns() + "," + cfgIndexInfoNoExport;
|
||||||
|
}
|
||||||
|
|
||||||
|
noExportMap.put(entity.getMenuNameCode(), cfgIndexInfoNoExport);
|
||||||
|
dataMap.put(entity.getMenuNameCode(), ipLists);
|
||||||
|
/* } */
|
||||||
|
String timeRange = initTimeMap(entity);
|
||||||
|
noExportMap.put("timeRange", timeRange);
|
||||||
|
if ("csv".equals(entity.getExType())) {
|
||||||
|
this._exportCsv(model, request, response, redirectAttributes, entity.getMenuNameCode(), titleList,
|
||||||
|
classMap, dataMap, noExportMap);
|
||||||
|
} else {
|
||||||
|
this._export(model, request, response, redirectAttributes, entity.getMenuNameCode(), titleList,
|
||||||
|
classMap, dataMap, noExportMap);
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
logger.error("ip white export failed", e);
|
||||||
|
addMessage(redirectAttributes, "error", "export_failed");
|
||||||
|
}
|
||||||
|
// return "redirect:" + adminPath
|
||||||
|
// +"/ntc/iplist/list?functionId="+entity.getFunctionId();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,4 +23,6 @@ public interface AvCfgDao {
|
|||||||
public void updateAvSignSampleValid(AvSignSampleCfg entity);
|
public void updateAvSignSampleValid(AvSignSampleCfg entity);
|
||||||
public void auditAvFileSample(AvFileSampleCfg entity);
|
public void auditAvFileSample(AvFileSampleCfg entity);
|
||||||
public void auditAvSignSample(AvSignSampleCfg entity);
|
public void auditAvSignSample(AvSignSampleCfg entity);
|
||||||
|
|
||||||
|
public List<AvFileSampleCfg> getAvFileBySampleList(@Param("ids")String ids);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -560,4 +560,20 @@
|
|||||||
where cfg_id = #{cfgId,jdbcType=BIGINT}
|
where cfg_id = #{cfgId,jdbcType=BIGINT}
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
|
<select id="getAvFileBySampleList" resultMap="AvFileSampleMap" >
|
||||||
|
SELECT
|
||||||
|
<include refid="AvFileSample_Column" />
|
||||||
|
<trim prefix="," prefixOverrides=",">
|
||||||
|
, s.name as creator_name,e.name as editor_name,u.name as auditor_name
|
||||||
|
,ri.request_title as requestName
|
||||||
|
</trim>
|
||||||
|
FROM av_file_sample_cfg a
|
||||||
|
left join sys_user s on a.creator_id=s.id
|
||||||
|
left join sys_user e on a.editor_id=e.id
|
||||||
|
left join sys_user u on a.auditor_id=u.id
|
||||||
|
left join request_info ri on a.request_id=ri.id
|
||||||
|
where a.CFG_ID in (${ids})
|
||||||
|
</select>
|
||||||
|
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
@@ -57,5 +57,6 @@ public interface FileTransferCfgDao extends CrudDao<CfgIndexInfo> {
|
|||||||
public void deleteP2pHashCfg(CfgIndexInfo entity);
|
public void deleteP2pHashCfg(CfgIndexInfo entity);
|
||||||
public void deleteP2pKeywordCfg(CfgIndexInfo entity);
|
public void deleteP2pKeywordCfg(CfgIndexInfo entity);
|
||||||
public void deleteP2pSubscribeIdCfg(CfgIndexInfo entity);
|
public void deleteP2pSubscribeIdCfg(CfgIndexInfo entity);
|
||||||
|
public List<FileDigestCfg> getFileByDigestList(@Param("ids")String ids);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1267,4 +1267,20 @@
|
|||||||
</set>
|
</set>
|
||||||
where cfg_id = #{cfgId,jdbcType=BIGINT}
|
where cfg_id = #{cfgId,jdbcType=BIGINT}
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
|
<select id="getFileByDigestList" resultMap="digestCfgMap" parameterType="com.nis.domain.configuration.FileDigestCfg" >
|
||||||
|
SELECT
|
||||||
|
<include refid="DigestCfg_Column" />
|
||||||
|
<trim prefix="," prefixOverrides=",">
|
||||||
|
, s.name as creator_name,e.name as editor_name,u.name as auditor_name
|
||||||
|
,ri.request_title as requestName
|
||||||
|
</trim>
|
||||||
|
FROM file_digest_cfg a
|
||||||
|
left join sys_user s on a.creator_id=s.id
|
||||||
|
left join sys_user e on a.editor_id=e.id
|
||||||
|
left join sys_user u on a.auditor_id=u.id
|
||||||
|
left join request_info ri on a.request_id=ri.id
|
||||||
|
where a.CFG_ID in (${ids})
|
||||||
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
@@ -37,6 +37,8 @@ public interface IpAddrPoolCfgDao extends CrudDao<IpAddrPoolCfgDao>{
|
|||||||
|
|
||||||
IpReuseIpCfg checkAddrPoolIp(@Param("srcIpAddress")String ip);
|
IpReuseIpCfg checkAddrPoolIp(@Param("srcIpAddress")String ip);
|
||||||
|
|
||||||
|
List<IpAddrPoolCfg> findByPage(@Param("ids")String ids);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -489,4 +489,28 @@
|
|||||||
r.is_audit != 3 AND
|
r.is_audit != 3 AND
|
||||||
r.user_region1 IS NOT NULL
|
r.user_region1 IS NOT NULL
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|
||||||
|
<select id="findByPage" resultMap="addrPoolMap">
|
||||||
|
SELECT
|
||||||
|
<include refid="addrPoolColumns"/>
|
||||||
|
<trim prefix="," prefixOverrides=",">
|
||||||
|
,s.name as creator_name,
|
||||||
|
e.name as editor_name,
|
||||||
|
u.name as auditor_name,
|
||||||
|
ri.request_title as requestName
|
||||||
|
</trim>
|
||||||
|
FROM
|
||||||
|
ip_reuse_addr_pool r
|
||||||
|
left join
|
||||||
|
sys_user s on r.creator_id = s.id
|
||||||
|
left join
|
||||||
|
sys_user e on r.editor_id = e.id
|
||||||
|
left join
|
||||||
|
sys_user u on r.auditor_id = u.id
|
||||||
|
left join
|
||||||
|
request_info ri on r.request_id = ri.id
|
||||||
|
where r.CFG_ID in (${ids})
|
||||||
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
@@ -44,4 +44,8 @@ public interface IpMultiplexDao extends CrudDao<IpMultiplexDao>{
|
|||||||
IpReusePolicyCfg getSnatCfg(@Param("cfgId")Long cfgId,@Param("compileId")Integer compileId);
|
IpReusePolicyCfg getSnatCfg(@Param("cfgId")Long cfgId,@Param("compileId")Integer compileId);
|
||||||
|
|
||||||
IpReuseDnatPolicyCfg getDnatCfg(@Param("cfgId")Long cfgId,@Param("compileId")Integer compileId);
|
IpReuseDnatPolicyCfg getDnatCfg(@Param("cfgId")Long cfgId,@Param("compileId")Integer compileId);
|
||||||
|
|
||||||
|
List<IpReusePolicyCfg> findByPage(@Param("ids")String ids);
|
||||||
|
|
||||||
|
List<BaseIpCfg> findPageByDnat(@Param("ids")String ids);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -739,4 +739,50 @@
|
|||||||
</if>
|
</if>
|
||||||
</where>
|
</where>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="findByPage" resultMap="policyMap">
|
||||||
|
SELECT
|
||||||
|
<include refid="policyColumns"/>
|
||||||
|
<trim prefix="," prefixOverrides=",">
|
||||||
|
,s.name as creator_name,
|
||||||
|
e.name as editor_name,
|
||||||
|
u.name as auditor_name,
|
||||||
|
ri.request_title as requestName
|
||||||
|
</trim>
|
||||||
|
FROM
|
||||||
|
ip_reuse_policy_cfg r
|
||||||
|
left join
|
||||||
|
sys_user s on r.creator_id = s.id
|
||||||
|
left join
|
||||||
|
sys_user e on r.editor_id = e.id
|
||||||
|
left join
|
||||||
|
sys_user u on r.auditor_id = u.id
|
||||||
|
left join
|
||||||
|
request_info ri on r.request_id = ri.id
|
||||||
|
where a.CFG_ID in (${ids})
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="findPageByDnat" resultMap="dnatPolicyMap">
|
||||||
|
SELECT
|
||||||
|
<include refid="dnatPolicyColumns"/>
|
||||||
|
<trim prefix="," prefixOverrides=",">
|
||||||
|
,s.name as creator_name,
|
||||||
|
e.name as editor_name,
|
||||||
|
u.name as auditor_name,
|
||||||
|
ri.request_title as requestName
|
||||||
|
</trim>
|
||||||
|
FROM
|
||||||
|
ip_reuse_dnat_policy a
|
||||||
|
left join
|
||||||
|
sys_user s on a.creator_id = s.id
|
||||||
|
left join
|
||||||
|
sys_user e on a.editor_id = e.id
|
||||||
|
left join
|
||||||
|
sys_user u on a.auditor_id = u.id
|
||||||
|
left join
|
||||||
|
request_info ri on a.request_id = ri.id
|
||||||
|
where a.CFG_ID in (${ids})
|
||||||
|
</select>
|
||||||
|
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
@@ -18,4 +18,6 @@ public interface PxyObjSpoofingIpPoolDao extends CrudDao<PxyObjSpoofingIpPool>{
|
|||||||
PxyObjSpoofingIpPool getPxyObjSpoofingIpPool(Long cfgId);
|
PxyObjSpoofingIpPool getPxyObjSpoofingIpPool(Long cfgId);
|
||||||
int insert(PxyObjSpoofingIpPool spoofingPool);
|
int insert(PxyObjSpoofingIpPool spoofingPool);
|
||||||
int update(PxyObjSpoofingIpPool spoofingPool);
|
int update(PxyObjSpoofingIpPool spoofingPool);
|
||||||
|
|
||||||
|
List<PxyObjSpoofingIpPool> findByPage(@Param("ids")String ids);
|
||||||
}
|
}
|
||||||
@@ -289,4 +289,23 @@
|
|||||||
</if>
|
</if>
|
||||||
</where>
|
</where>
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
|
<!-- 查出所有 有效数据-->
|
||||||
|
<select id="findByPage" resultMap="PxyObjSpoofingPoolMap">
|
||||||
|
SELECT
|
||||||
|
<include refid="PxyObjSpoofingIpPoolColumns"/>
|
||||||
|
<trim prefix="," prefixOverrides=",">
|
||||||
|
,s.name as creator_name,e.name as editor_name,u.name as auditor_name
|
||||||
|
,ri.request_title as requestName,p.group_name as group_name
|
||||||
|
</trim>
|
||||||
|
FROM pxy_obj_spoofing_ip_pool r
|
||||||
|
left join policy_group_info p on p.group_id=r.group_id
|
||||||
|
left join sys_user s on r.creator_id=s.id
|
||||||
|
left join sys_user e on r.editor_id=e.id
|
||||||
|
left join sys_user u on r.auditor_id=u.id
|
||||||
|
left join request_info ri on r.request_id=ri.id
|
||||||
|
where r.CFG_ID in (${ids})
|
||||||
|
</select>
|
||||||
|
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
@@ -15,6 +15,6 @@ public interface UserManageDao extends CrudDao<UserManage>{
|
|||||||
UserManage getUserByLoginName(@Param("userName") String userName);
|
UserManage getUserByLoginName(@Param("userName") String userName);
|
||||||
List<UserManage> findList(UserManage entity);
|
List<UserManage> findList(UserManage entity);
|
||||||
UserManage getUserById(@Param("id") String id);
|
UserManage getUserById(@Param("id") String id);
|
||||||
|
List<UserManage> findByList(@Param("ids")String ids);
|
||||||
List<UserManage> findUsers();
|
List<UserManage> findUsers();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -157,4 +157,16 @@
|
|||||||
<include refid="Columns"/>
|
<include refid="Columns"/>
|
||||||
from user_manage a where a.is_valid !=-1
|
from user_manage a where a.is_valid !=-1
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="findByList" parameterType="com.nis.domain.configuration.UserManage" resultMap="userManageMap">
|
||||||
|
SELECT
|
||||||
|
<include refid="Columns"/>
|
||||||
|
<trim prefix="," prefixOverrides=",">
|
||||||
|
,s.name as creator_name ,e.name as editor_name
|
||||||
|
</trim>
|
||||||
|
FROM user_manage a
|
||||||
|
left join sys_user s on a.creator_id=s.id
|
||||||
|
left join sys_user e on a.editor_id=e.id
|
||||||
|
where a.CFG_ID in (${ids})
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
@@ -66,6 +66,12 @@ public class AvCfgService extends BaseService{
|
|||||||
page.setList(list);
|
page.setList(list);
|
||||||
return page;
|
return page;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<AvFileSampleCfg> getAvFileBySampleList(String ids){
|
||||||
|
List<AvFileSampleCfg> list = avCfgDao.getAvFileBySampleList(ids);
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
public Page<AvSignSampleCfg> getAvSignSampleList(Page<AvSignSampleCfg> page, AvSignSampleCfg entity){
|
public Page<AvSignSampleCfg> getAvSignSampleList(Page<AvSignSampleCfg> page, AvSignSampleCfg entity){
|
||||||
// 生成数据权限过滤条件(dsf为dataScopeFilter的简写,在xml中使用 ${sqlMap.dsf}调用权限SQL)
|
// 生成数据权限过滤条件(dsf为dataScopeFilter的简写,在xml中使用 ${sqlMap.dsf}调用权限SQL)
|
||||||
entity.getSqlMap().put("dsf", configScopeFilter(entity.getCurrentUser(),"a"));
|
entity.getSqlMap().put("dsf", configScopeFilter(entity.getCurrentUser(),"a"));
|
||||||
|
|||||||
@@ -401,6 +401,15 @@ public class FileTransferCfgService extends CrudService<FileTransferCfgDao,CfgIn
|
|||||||
return page;
|
return page;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<FileDigestCfg> getFileByDigestList(String ids){
|
||||||
|
List<FileDigestCfg> list = fileTransferCfgDao.getFileByDigestList(ids);
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public FileDigestCfg getFileDigestCfg(Long cfgId,Integer compileId){
|
public FileDigestCfg getFileDigestCfg(Long cfgId,Integer compileId){
|
||||||
FileDigestCfg entity = fileTransferCfgDao.getFileDigest(cfgId,compileId);
|
FileDigestCfg entity = fileTransferCfgDao.getFileDigest(cfgId,compileId);
|
||||||
List<NtcSubscribeIdCfg> subscribeidList = fileTransferCfgDao.getFileDigestSubscribeidList(entity);
|
List<NtcSubscribeIdCfg> subscribeidList = fileTransferCfgDao.getFileDigestSubscribeidList(entity);
|
||||||
|
|||||||
@@ -54,6 +54,11 @@ public class IpAddrPoolCfgService extends BaseService{
|
|||||||
return page;
|
return page;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<IpAddrPoolCfg> findByPage(String ids) {
|
||||||
|
List<IpAddrPoolCfg> list=ipAddrPoolCfgDao.findByPage(ids);
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取数据跳转表单
|
* 获取数据跳转表单
|
||||||
* @param id
|
* @param id
|
||||||
|
|||||||
@@ -44,6 +44,11 @@ public class IpMultiplexService extends BaseService{
|
|||||||
return page;
|
return page;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<IpReusePolicyCfg> findByPage(String ids) {
|
||||||
|
List<IpReusePolicyCfg> list=ipMultiplexDao.findByPage(ids);
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
public IpReusePolicyCfg getPolicyCfg(Long cfgId, Integer isValid) {
|
public IpReusePolicyCfg getPolicyCfg(Long cfgId, Integer isValid) {
|
||||||
List<IpReusePolicyCfg> list=ipMultiplexDao.findList(cfgId,isValid);
|
List<IpReusePolicyCfg> list=ipMultiplexDao.findList(cfgId,isValid);
|
||||||
IpReusePolicyCfg policyCfg=null;
|
IpReusePolicyCfg policyCfg=null;
|
||||||
@@ -285,6 +290,12 @@ public class IpMultiplexService extends BaseService{
|
|||||||
return page;
|
return page;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<BaseIpCfg> findPageByDnat(String ids) {
|
||||||
|
List<BaseIpCfg> list=ipMultiplexDao.findPageByDnat(ids);
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public IpReuseDnatPolicyCfg getDnatPolicyCfg(Long cfgId, Integer isValid) {
|
public IpReuseDnatPolicyCfg getDnatPolicyCfg(Long cfgId, Integer isValid) {
|
||||||
List<IpReuseDnatPolicyCfg> list=ipMultiplexDao.findDnatList(cfgId,isValid);
|
List<IpReuseDnatPolicyCfg> list=ipMultiplexDao.findDnatList(cfgId,isValid);
|
||||||
IpReuseDnatPolicyCfg policyCfg=null;
|
IpReuseDnatPolicyCfg policyCfg=null;
|
||||||
|
|||||||
@@ -73,6 +73,11 @@ public class PxyObjSpoofingIpPoolService extends BaseService{
|
|||||||
return page;
|
return page;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<PxyObjSpoofingIpPool> findByPage(String ids) {
|
||||||
|
List<PxyObjSpoofingIpPool> list=pxyObjSpoofingIpPoolDao.findByPage(ids);
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public List<PxyObjSpoofingIpPool> findPxyObjSpoofingIpPools(PxyObjSpoofingIpPool entity) {
|
public List<PxyObjSpoofingIpPool> findPxyObjSpoofingIpPools(PxyObjSpoofingIpPool entity) {
|
||||||
List<PxyObjSpoofingIpPool> list=pxyObjSpoofingIpPoolDao.findList(entity);
|
List<PxyObjSpoofingIpPool> list=pxyObjSpoofingIpPoolDao.findList(entity);
|
||||||
@@ -212,7 +217,7 @@ public class PxyObjSpoofingIpPoolService extends BaseService{
|
|||||||
if(!ispList.contains(ispCode)){
|
if(!ispList.contains(ispCode)){
|
||||||
ispList.add(ispCode);
|
ispList.add(ispCode);
|
||||||
}
|
}
|
||||||
map.replace(areaCode, ispList);
|
//map.replace(areaCode, ispList);
|
||||||
}
|
}
|
||||||
}else {
|
}else {
|
||||||
// 区域
|
// 区域
|
||||||
|
|||||||
@@ -47,6 +47,13 @@ public class UserManageService extends BaseService{
|
|||||||
page.setList(list);
|
page.setList(list);
|
||||||
return page;
|
return page;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<UserManage> findByPage(String ids ) {
|
||||||
|
List<UserManage> list=userManageDao.findByList(ids);
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public UserManage getUserByLoginName(String userName) {
|
public UserManage getUserByLoginName(String userName) {
|
||||||
return userManageDao.getUserByLoginName(userName);
|
return userManageDao.getUserByLoginName(userName);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,27 +26,27 @@
|
|||||||
<a href="javascript:void(0);" onclick="cancelPassOpt('${url}')"><i class="fa fa-undo"></i> <spring:message code="cancel_approved"/></a>
|
<a href="javascript:void(0);" onclick="cancelPassOpt('${url}')"><i class="fa fa-undo"></i> <spring:message code="cancel_approved"/></a>
|
||||||
</c:when>
|
</c:when>
|
||||||
<c:when test="${label eq 'cfg_excel'}">
|
<c:when test="${label eq 'cfg_excel'}">
|
||||||
<a href="javascript:void(0);" onclick="exportData('${url}',${fns:getStringProperty('maxExportSize',1000000)},'${searchUrl}')" data-toggle="tooltip" data-placement="top">
|
<a href="javascript:void(0);" onclick="exportData('${url}',${fns:getStringProperty('maxExportSize',1000000)},'${searchUrl}','cfg')" data-toggle="tooltip" data-placement="top">
|
||||||
<i class="fa fa-download"> <spring:message code="Excel"/></i>
|
<i class="fa fa-download"> <spring:message code="Excel"/></i>
|
||||||
</a>
|
</a>
|
||||||
</c:when>
|
</c:when>
|
||||||
<c:when test="${label eq 'export'}">
|
<c:when test="${label eq 'export'}">
|
||||||
<a href="javascript:void(0);" class="btn btn-default" onclick="exportData('${url}',${fns:getStringProperty('maxExportSize',1000000)},'${searchUrl}')" data-toggle="tooltip" data-placement="top">
|
<a href="javascript:void(0);" class="btn btn-default" onclick="exportData('${url}',${fns:getStringProperty('maxExportSize',1000000)},'${searchUrl}','cfg')" data-toggle="tooltip" data-placement="top">
|
||||||
<i class="fa fa-download"> <spring:message code="Excel"/></i>
|
<i class="fa fa-download"> <spring:message code="Excel"/></i>
|
||||||
</a>
|
</a>
|
||||||
</c:when>
|
</c:when>
|
||||||
<c:when test="${label eq 'cfg_csv'}">
|
<c:when test="${label eq 'cfg_csv'}">
|
||||||
<a href="javascript:void(0);" onclick="exportData('${url}',${fns:getStringProperty('maxExportSize',1000000)},'${searchUrl}')" data-toggle="tooltip" data-placement="top">
|
<a href="javascript:void(0);" onclick="exportData('${url}',${fns:getStringProperty('maxExportSize',1000000)},'${searchUrl}','cfg')" data-toggle="tooltip" data-placement="top">
|
||||||
<i class="fa fa-download"> <spring:message code="CSV"/></i>
|
<i class="fa fa-download"> <spring:message code="CSV"/></i>
|
||||||
</a>
|
</a>
|
||||||
</c:when>
|
</c:when>
|
||||||
<c:when test="${label eq 'excel'}">
|
<c:when test="${label eq 'excel'}">
|
||||||
<a href="javascript:void(0);" onclick="exportData('${url}',${fns:getStringProperty('maxLogExportSize',2000)},'${searchUrl}')" data-toggle="tooltip" data-placement="top">
|
<a href="javascript:void(0);" onclick="exportData('${url}',${fns:getStringProperty('maxLogExportSize',2000)},'${searchUrl}','log')" data-toggle="tooltip" data-placement="top">
|
||||||
<i class="fa fa-download"> <spring:message code="Excel"/></i>
|
<i class="fa fa-download"> <spring:message code="Excel"/></i>
|
||||||
</a>
|
</a>
|
||||||
</c:when>
|
</c:when>
|
||||||
<c:when test="${label eq 'csv'}">
|
<c:when test="${label eq 'csv'}">
|
||||||
<a href="javascript:void(0);" onclick="exportData('${url}',${fns:getStringProperty('maxLogExportSize',2000)},'${searchUrl}')" data-toggle="tooltip" data-placement="top">
|
<a href="javascript:void(0);" onclick="exportData('${url}',${fns:getStringProperty('maxLogExportSize',2000)},'${searchUrl}','log')" data-toggle="tooltip" data-placement="top">
|
||||||
<i class="fa fa-download"> <spring:message code="CSV"/></i>
|
<i class="fa fa-download"> <spring:message code="CSV"/></i>
|
||||||
</a>
|
</a>
|
||||||
</c:when>
|
</c:when>
|
||||||
@@ -400,7 +400,7 @@ function cancelPassOpt(url){
|
|||||||
return flag;
|
return flag;
|
||||||
}
|
}
|
||||||
//导出
|
//导出
|
||||||
function exportData(url,maxRow,searchUrl){
|
function exportData(url,maxRow,searchUrl,exType){
|
||||||
var column=[];
|
var column=[];
|
||||||
var hColumn=[]; //隐藏列名
|
var hColumn=[]; //隐藏列名
|
||||||
$("#${id} ${value} thead tr th").each(function(){
|
$("#${id} ${value} thead tr th").each(function(){
|
||||||
@@ -428,7 +428,7 @@ function cancelPassOpt(url){
|
|||||||
//导出检索条件下所有数据
|
//导出检索条件下所有数据
|
||||||
}else{
|
}else{
|
||||||
var totalCount = $("#showTotalCount").html() == undefined ? '' : $("#showTotalCount").html().trim();
|
var totalCount = $("#showTotalCount").html() == undefined ? '' : $("#showTotalCount").html().trim();
|
||||||
if (!confirmEnding(url,"excel")&&!confirmEnding(url,"csv")) {
|
if (exType!='log') {
|
||||||
if(totalCount > maxRow){
|
if(totalCount > maxRow){
|
||||||
top.$.jBox.confirm("<spring:message code='export_confirm_message'/>"+maxRow+"!","<spring:message code='info'/>",function(v,h,f){
|
top.$.jBox.confirm("<spring:message code='export_confirm_message'/>"+maxRow+"!","<spring:message code='info'/>",function(v,h,f){
|
||||||
if(v=="ok"){
|
if(v=="ok"){
|
||||||
@@ -453,12 +453,5 @@ function cancelPassOpt(url){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function confirmEnding(str, target) {
|
|
||||||
var result=true;
|
|
||||||
var num=str.indexOf(target);
|
|
||||||
if (-1==num) {
|
|
||||||
result=false;
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
</script>
|
</script>
|
||||||
@@ -137,8 +137,19 @@
|
|||||||
<shiro:hasPermission name="avFileSample:config">
|
<shiro:hasPermission name="avFileSample:config">
|
||||||
<sys:delRow url="${ctx}/ntc/av/sample/fileSampleForm" id="contentTable" label="update"></sys:delRow>
|
<sys:delRow url="${ctx}/ntc/av/sample/fileSampleForm" id="contentTable" label="update"></sys:delRow>
|
||||||
<sys:delRow url="${ctx}/ntc/av/sample/updateAvFileSampleValid?isValid=-1&functionId=${cfg.functionId }" id="contentTable" label="delete"></sys:delRow>
|
<sys:delRow url="${ctx}/ntc/av/sample/updateAvFileSampleValid?isValid=-1&functionId=${cfg.functionId }" id="contentTable" label="delete"></sys:delRow>
|
||||||
<%-- <sys:delRow url="${ctx}/ntc/av/exportYsp?functionId=${cfg.functionId }" searchUrl="${ctx}/ntc/av/sample/fileSampleList?functionId=${cfg.functionId}" id="contentTable" maxRow="10000" label="export"></sys:delRow>
|
</shiro:hasPermission>
|
||||||
--%> </shiro:hasPermission>
|
|
||||||
|
<div class="btn-group">
|
||||||
|
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
|
||||||
|
<i class="fa fa-wrench"></i> <spring:message code="export"></spring:message>
|
||||||
|
<i class="fa fa-angle-down"></i>
|
||||||
|
</button>
|
||||||
|
<ul class="dropdown-menu pull-right" style="min-width: 110px;" >
|
||||||
|
<li><sys:delRow url="${ctx}/ntc/av/exportYsp?functionId=${cfg.functionId }&exType=excel" searchUrl="${ctx}/ntc/av/sample/fileSampleList?functionId=${cfg.functionId}" id="contentTable" maxRow="5" label="cfg_excel"></sys:delRow></li>
|
||||||
|
<li><sys:delRow url="${ctx}/ntc/av/exportYsp?functionId=${cfg.functionId }&exType=csv" searchUrl="${ctx}/ntc/av/sample/fileSampleList?functionId=${cfg.functionId}" id="contentTable" maxRow="5" label="cfg_csv"></sys:delRow></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
<shiro:hasPermission name="avFileSample:confirm">
|
<shiro:hasPermission name="avFileSample:confirm">
|
||||||
<div class="btn-group">
|
<div class="btn-group">
|
||||||
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
|
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
|
||||||
@@ -291,27 +302,27 @@
|
|||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th><input type="checkbox" class="i-checks" id="checkAll"></th>
|
<th><input type="checkbox" class="i-checks" id="checkAll"></th>
|
||||||
<th class="sort-column a.compile_id" style="display: none"><spring:message code="cfg_id"/></th>
|
<th column="cfg_id" class="sort-column a.compile_id" style="display: none"><spring:message code="cfg_id"/></th>
|
||||||
<th class="sort-column a.cfg_desc"><spring:message code="config_describe"/></th>
|
<th column="config_describe" class="sort-column a.cfg_desc"><spring:message code="config_describe"/></th>
|
||||||
<th class="sort-column a.action"><spring:message code="block_type"/></th>
|
<th column="block_type" class="sort-column a.action"><spring:message code="block_type"/></th>
|
||||||
<%-- <th><spring:message code="seq"/></th> --%>
|
<%-- <th column=""><spring:message code="seq"/></th> --%>
|
||||||
<th><spring:message code="src_file"/></th>
|
<th column="src_file"><spring:message code="src_file"/></th>
|
||||||
<th><spring:message code="sample_file"/></th>
|
<th column="sample_file"><spring:message code="sample_file"/></th>
|
||||||
<th><spring:message code="harm_level"/></th>
|
<th column="harm_level"><spring:message code="harm_level"/></th>
|
||||||
<th><spring:message code="is_audit"/></th>
|
<th column="is_audit"><spring:message code="is_audit"/></th>
|
||||||
<th><spring:message code="log_total"/></th>
|
<th column="log_total"><spring:message code="log_total"/></th>
|
||||||
<th><spring:message code="letter"/></th>
|
<th column="letter"><spring:message code="letter"/></th>
|
||||||
<th><spring:message code="classification"/></th>
|
<th column="classification"><spring:message code="classification"/></th>
|
||||||
<th><spring:message code="attribute"/></th>
|
<th column="attribute"><spring:message code="attribute"/></th>
|
||||||
<th><spring:message code="label"/></th>
|
<th column="label"><spring:message code="label"/></th>
|
||||||
<th class="sort-column a.is_valid"><spring:message code="valid_identifier"/></th>
|
<th column="valid_identifier" class="sort-column a.is_valid"><spring:message code="valid_identifier"/></th>
|
||||||
<th><spring:message code="creator"/></th>
|
<th column="creator"><spring:message code="creator"/></th>
|
||||||
<th class="sort-column a.create_time"><spring:message code="config_time"/></th>
|
<th column="config_time" class="sort-column a.create_time"><spring:message code="config_time"/></th>
|
||||||
<th><spring:message code="editor"/></th>
|
<th column="editor"><spring:message code="editor"/></th>
|
||||||
<th class="sort-column a.edit_time"><spring:message code="edit_time"/></th>
|
<th column="edit_time" class="sort-column a.edit_time"><spring:message code="edit_time"/></th>
|
||||||
<th><spring:message code="auditor"/></th>
|
<th column="auditor"><spring:message code="auditor"/></th>
|
||||||
<th class="sort-column a.audit_time"><spring:message code="audit_time"/></th>
|
<th column="audit_time" class="sort-column a.audit_time"><spring:message code="audit_time"/></th>
|
||||||
<%-- <th><spring:message code="operation"></spring:message></th> --%>
|
<%-- <th column="operation"><spring:message code="operation"></spring:message></th> --%>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
|
|||||||
@@ -216,6 +216,18 @@
|
|||||||
<sys:delRow url="${ctx}/ntc/fileTransfer/updateFileDigestValid?isValid=-1&functionId=${cfg.functionId }" id="contentTable" label="delete"></sys:delRow>
|
<sys:delRow url="${ctx}/ntc/fileTransfer/updateFileDigestValid?isValid=-1&functionId=${cfg.functionId }" id="contentTable" label="delete"></sys:delRow>
|
||||||
<%-- <sys:delRow url="${ctx}/ntc/fileTransfer/exportFile?functionId=${cfg.functionId }" searchUrl="${ctx}/ntc/fileTransfer/fileDigestList?functionId=${cfg.functionId}" id="contentTable" maxRow="10000" label="export"></sys:delRow>
|
<%-- <sys:delRow url="${ctx}/ntc/fileTransfer/exportFile?functionId=${cfg.functionId }" searchUrl="${ctx}/ntc/fileTransfer/fileDigestList?functionId=${cfg.functionId}" id="contentTable" maxRow="10000" label="export"></sys:delRow>
|
||||||
--%> </shiro:hasPermission>
|
--%> </shiro:hasPermission>
|
||||||
|
|
||||||
|
<div class="btn-group">
|
||||||
|
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
|
||||||
|
<i class="fa fa-wrench"></i> <spring:message code="export"></spring:message>
|
||||||
|
<i class="fa fa-angle-down"></i>
|
||||||
|
</button>
|
||||||
|
<ul class="dropdown-menu pull-right" style="min-width: 110px;" >
|
||||||
|
<li><sys:delRow url="${ctx}/ntc/fileTransfer/exportFile?functionId=${cfg.functionId }&exType=excel" searchUrl="${ctx}/ntc/fileTransfer/fileDigestList?functionId=${cfg.functionId}" id="contentTable" maxRow="5" label="cfg_excel"></sys:delRow></li>
|
||||||
|
<li><sys:delRow url="${ctx}/ntc/fileTransfer/exportFile?functionId=${cfg.functionId }&exType=csv" searchUrl="${ctx}/ntc/fileTransfer/fileDigestList?functionId=${cfg.functionId}" id="contentTable" maxRow="5" label="cfg_csv"></sys:delRow></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
<shiro:hasPermission name="fileTransfer:fileDigest:confirm">
|
<shiro:hasPermission name="fileTransfer:fileDigest:confirm">
|
||||||
<div class="btn-group">
|
<div class="btn-group">
|
||||||
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
|
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
|
||||||
|
|||||||
@@ -233,6 +233,18 @@
|
|||||||
<sys:delRow url="${ctx}/maintenance/ipMultiplexPoolCfg/snatDelete?isValid=-1&functionId=${cfg.functionId }" id="contentTable" label="delete"></sys:delRow>
|
<sys:delRow url="${ctx}/maintenance/ipMultiplexPoolCfg/snatDelete?isValid=-1&functionId=${cfg.functionId }" id="contentTable" label="delete"></sys:delRow>
|
||||||
<%-- <sys:delRow url="${ctx}/maintenance/ipMultiplexPoolCfg/exportSnat?functionId=${cfg.functionId }&audit=${audit}" searchUrl="${ctx}/maintenance/ipMultiplexPoolCfg/snatlist?functionId=${cfg.functionId}" id="contentTable" maxRow="10000" label="export"></sys:delRow> --%>
|
<%-- <sys:delRow url="${ctx}/maintenance/ipMultiplexPoolCfg/exportSnat?functionId=${cfg.functionId }&audit=${audit}" searchUrl="${ctx}/maintenance/ipMultiplexPoolCfg/snatlist?functionId=${cfg.functionId}" id="contentTable" maxRow="10000" label="export"></sys:delRow> --%>
|
||||||
</shiro:hasPermission>
|
</shiro:hasPermission>
|
||||||
|
|
||||||
|
<div class="btn-group">
|
||||||
|
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
|
||||||
|
<i class="fa fa-wrench"></i> <spring:message code="export"></spring:message>
|
||||||
|
<i class="fa fa-angle-down"></i>
|
||||||
|
</button>
|
||||||
|
<ul class="dropdown-menu pull-right" style="min-width: 110px;" >
|
||||||
|
<li><sys:delRow url="${ctx}/maintenance/ipMultiplexPoolCfg/exportIpPool?functionId=${cfg.functionId}&exType=excel" searchUrl="${ctx}/maintenance/ipMultiplexPoolCfg/snatlist?functionId=${cfg.functionId}" id="contentTable" maxRow="5" label="cfg_excel"></sys:delRow></li>
|
||||||
|
<li><sys:delRow url="${ctx}/maintenance/ipMultiplexPoolCfg/exportIpPool?functionId=${cfg.functionId}&exType=csv" searchUrl="${ctx}/maintenance/ipMultiplexPoolCfg/snatlist?functionId=${cfg.functionId}" id="contentTable" maxRow="5" label="cfg_csv"></sys:delRow></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
<shiro:hasPermission name="ip:mulitiplex:pool:confirm">
|
<shiro:hasPermission name="ip:mulitiplex:pool:confirm">
|
||||||
<div class="btn-group">
|
<div class="btn-group">
|
||||||
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
|
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
|
||||||
@@ -385,26 +397,26 @@
|
|||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th><input type="checkbox" class="i-checks" id="checkAll"></th>
|
<th><input type="checkbox" class="i-checks" id="checkAll"></th>
|
||||||
<th class="sort-column r.compile_id"><spring:message code="address_pool_id"/></th>
|
<th column="address_pool_id" class="sort-column r.compile_id"><spring:message code="address_pool_id"/></th>
|
||||||
<th class="sort-column r.addr_pool_name"><spring:message code="address_pool"/></th>
|
<th column="address_pool" class="sort-column r.addr_pool_name"><spring:message code="address_pool"/></th>
|
||||||
<th class="sort-column r.ip_total"><spring:message code="ip_total"/></th>
|
<th column="ip_total" class="sort-column r.ip_total"><spring:message code="ip_total"/></th>
|
||||||
<th><spring:message code="available_ip_total"/></th>
|
<th column="available_ip_total" ><spring:message code="available_ip_total"/></th>
|
||||||
|
|
||||||
<%-- <th><spring:message code="block_type"/></th> --%>
|
<%-- <th column="user_name" ><spring:message code="block_type"/></th> --%>
|
||||||
<th class="sort-column r.is_valid"><spring:message code="valid_identifier"/></th>
|
<th column="valid_identifier" class="sort-column r.is_valid"><spring:message code="valid_identifier"/></th>
|
||||||
<th><spring:message code="is_audit"/></th>
|
<th column="is_audit" ><spring:message code="is_audit"/></th>
|
||||||
<%-- <th><spring:message code="whether_area_block"/></th> --%>
|
<%-- <th column="whether_area_block" ><spring:message code="whether_area_block"/></th> --%>
|
||||||
<th><spring:message code="operation"/></th>
|
<th column="operation" ><spring:message code="operation"/></th>
|
||||||
<th><spring:message code="letter"/></th>
|
<th column="letter" ><spring:message code="letter"/></th>
|
||||||
<th><spring:message code="classification"/></th>
|
<th column="classification" ><spring:message code="classification"/></th>
|
||||||
<th><spring:message code="attribute"/></th>
|
<th column="attribute" ><spring:message code="attribute"/></th>
|
||||||
<th><spring:message code="label"/></th>
|
<th column="label" ><spring:message code="label"/></th>
|
||||||
<th><spring:message code="creator"/></th>
|
<th column="creator" ><spring:message code="creator"/></th>
|
||||||
<th class="sort-column r.create_time"><spring:message code="config_time"/></th>
|
<th column="config_time" class="sort-column r.create_time"><spring:message code="config_time"/></th>
|
||||||
<th><spring:message code="editor"/></th>
|
<th column="editor" ><spring:message code="editor"/></th>
|
||||||
<th class="sort-column r.edit_time"><spring:message code="edit_time"/></th>
|
<th column="edit_time" class="sort-column r.edit_time"><spring:message code="edit_time"/></th>
|
||||||
<th><spring:message code="auditor"/></th>
|
<th column="auditor" ><spring:message code="auditor"/></th>
|
||||||
<th class="sort-column r.audit_time"><spring:message code="audit_time"/></th>
|
<th column="audit_time" class="sort-column r.audit_time"><spring:message code="audit_time"/></th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
|
|||||||
@@ -171,6 +171,18 @@
|
|||||||
<sys:delRow url="${ctx}/maintenance/userManage/form" id="contentTable" label="update"></sys:delRow>
|
<sys:delRow url="${ctx}/maintenance/userManage/form" id="contentTable" label="update"></sys:delRow>
|
||||||
<sys:delRow url="${ctx}/maintenance/userManage/delete?isValid=-1" id="contentTable" label="delete"></sys:delRow>
|
<sys:delRow url="${ctx}/maintenance/userManage/delete?isValid=-1" id="contentTable" label="delete"></sys:delRow>
|
||||||
</shiro:hasPermission>
|
</shiro:hasPermission>
|
||||||
|
|
||||||
|
<div class="btn-group">
|
||||||
|
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
|
||||||
|
<i class="fa fa-wrench"></i> <spring:message code="export"></spring:message>
|
||||||
|
<i class="fa fa-angle-down"></i>
|
||||||
|
</button>
|
||||||
|
<ul class="dropdown-menu pull-right" style="min-width: 110px;" >
|
||||||
|
<li><sys:delRow url="${ctx}/maintenance/userManage/exportUser?exType=excel" searchUrl="${ctx}/maintenance/userManage/list" id="contentTable" maxRow="5" label="cfg_excel"></sys:delRow></li>
|
||||||
|
<li><sys:delRow url="${ctx}/maintenance/userManage/exportUser?exType=csv" searchUrl="${ctx}/maintenance/userManage/list" id="contentTable" maxRow="5" label="cfg_csv"></sys:delRow></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
<a class="btn btn-icon-only btn-default setfields tooltips"
|
<a class="btn btn-icon-only btn-default setfields tooltips"
|
||||||
data-container="body" data-placement="top" data-original-title=<spring:message code="custom_columns"/> href="javascript:;">
|
data-container="body" data-placement="top" data-original-title=<spring:message code="custom_columns"/> href="javascript:;">
|
||||||
<i class="icon-wrench"></i>
|
<i class="icon-wrench"></i>
|
||||||
@@ -227,13 +239,13 @@
|
|||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th><input type="checkbox" class="i-checks" id="checkAll"></th>
|
<th><input type="checkbox" class="i-checks" id="checkAll"></th>
|
||||||
<th><spring:message code="user_name"/></th>
|
<th column="user_name"><spring:message code="user_name"/></th>
|
||||||
<th><spring:message code="vpn_ip"/></th>
|
<th column="vpn_ip"><spring:message code="vpn_ip"/></th>
|
||||||
<th><spring:message code="desc"/></th>
|
<th column="desc"><spring:message code="desc"/></th>
|
||||||
<th><spring:message code="creator"/></th>
|
<th column="creator"><spring:message code="creator"/></th>
|
||||||
<th class="sort-column a.create_time"><spring:message code="config_time"/></th>
|
<th column="config_time" class="sort-column a.create_time"><spring:message code="config_time"/></th>
|
||||||
<th><spring:message code="editor"/></th>
|
<th column="editor"><spring:message code="editor"/></th>
|
||||||
<th class="sort-column a.edit_time"><spring:message code="edit_time"/></th>
|
<th column="edit_time" class="sort-column a.edit_time"><spring:message code="edit_time"/></th>
|
||||||
<th width="15%"><spring:message code="operation"/></th>
|
<th width="15%"><spring:message code="operation"/></th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
|
|||||||
@@ -139,6 +139,18 @@
|
|||||||
<sys:delRow url="${ctx}/manipulation/ipmulitiplex/dnatDelete?isValid=-1&functionId=${cfg.functionId }" id="contentTable" label="delete"></sys:delRow>
|
<sys:delRow url="${ctx}/manipulation/ipmulitiplex/dnatDelete?isValid=-1&functionId=${cfg.functionId }" id="contentTable" label="delete"></sys:delRow>
|
||||||
<%-- <sys:delRow url="${ctx}/manipulation/ipmulitiplex/exportDnat?functionId=${cfg.functionId }" searchUrl="${ctx}/manipulation/ipmulitiplex/dnatPolicyList?functionId=${cfg.functionId}" id="contentTable" maxRow="10000" label="export"></sys:delRow> --%>
|
<%-- <sys:delRow url="${ctx}/manipulation/ipmulitiplex/exportDnat?functionId=${cfg.functionId }" searchUrl="${ctx}/manipulation/ipmulitiplex/dnatPolicyList?functionId=${cfg.functionId}" id="contentTable" maxRow="10000" label="export"></sys:delRow> --%>
|
||||||
</shiro:hasPermission>
|
</shiro:hasPermission>
|
||||||
|
|
||||||
|
<div class="btn-group">
|
||||||
|
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
|
||||||
|
<i class="fa fa-wrench"></i> <spring:message code="export"></spring:message>
|
||||||
|
<i class="fa fa-angle-down"></i>
|
||||||
|
</button>
|
||||||
|
<ul class="dropdown-menu pull-right" style="min-width: 110px;" >
|
||||||
|
<li><sys:delRow url="${ctx}/manipulation/ipmulitiplex/exportDnat?functionId=${cfg.functionId}&exType=excel" searchUrl="${ctx}/manipulation/ipmulitiplex/dnatPolicyList?functionId=${cfg.functionId}" id="contentTable" maxRow="5" label="cfg_excel"></sys:delRow></li>
|
||||||
|
<li><sys:delRow url="${ctx}/manipulation/ipmulitiplex/exportDnat?functionId=${cfg.functionId}&exType=csv" searchUrl="${ctx}/manipulation/ipmulitiplex/dnatPolicyList?functionId=${cfg.functionId}" id="contentTable" maxRow="5" label="cfg_csv"></sys:delRow></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
<shiro:hasPermission name="dnat_policy:confirm">
|
<shiro:hasPermission name="dnat_policy:confirm">
|
||||||
<div class="btn-group">
|
<div class="btn-group">
|
||||||
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
|
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
|
||||||
@@ -291,31 +303,31 @@
|
|||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th><input type="checkbox" class="i-checks" id="checkAll"></th>
|
<th><input type="checkbox" class="i-checks" id="checkAll"></th>
|
||||||
<th class="sort-column a.compile_id" style="display: none"><spring:message code="cfg_id"/></th>
|
<th column="cfg_id" class="sort-column a.compile_id" style="display: none"><spring:message code="cfg_id"/></th>
|
||||||
<th class="sort-column a.cfg_desc cfgDesc"><spring:message code="config_describe"/></th>
|
<th column="config_describe" class="sort-column a.cfg_desc cfgDesc"><spring:message code="config_describe"/></th>
|
||||||
<%-- <th class="sort-column a.action"><spring:message code="block_type"/></th> --%>
|
<%-- <th column="block_type" class="sort-column a.action"><spring:message code="block_type"/></th> --%>
|
||||||
<th><spring:message code="original_dest_ip"/></th>
|
<th column="original_dest_ip" ><spring:message code="original_dest_ip"/></th>
|
||||||
<th><spring:message code="original_dest_port"/></th>
|
<th column="original_dest_port" ><spring:message code="original_dest_port"/></th>
|
||||||
<th><spring:message code="translated_dest_ip"/></th>
|
<th column="translated_dest_ip" ><spring:message code="translated_dest_ip"/></th>
|
||||||
<th><spring:message code="translated_dest_port"/></th>
|
<th column="translated_dest_port" ><spring:message code="translated_dest_port"/></th>
|
||||||
<th><spring:message code="protocol"/></th>
|
<th column="protocol" ><spring:message code="protocol"/></th>
|
||||||
<th><spring:message code="log_total"/></th>
|
<th column="log_total" ><spring:message code="log_total"/></th>
|
||||||
|
|
||||||
<th class="sort-column a.is_valid"><spring:message code="valid_identifier"/></th>
|
<th column="valid_identifier" class="sort-column a.is_valid"><spring:message code="valid_identifier"/></th>
|
||||||
<th><spring:message code="is_audit"/></th>
|
<th column="is_audit" ><spring:message code="is_audit"/></th>
|
||||||
<%-- <th><spring:message code="do_log"/></th> --%>
|
<%-- <th column="do_log" ><spring:message code="do_log"/></th> --%>
|
||||||
<%-- <th><spring:message code="whether_area_block"/></th> --%>
|
<%-- <th column="whether_area_block" ><spring:message code="whether_area_block"/></th> --%>
|
||||||
<th><spring:message code="letter"/></th>
|
<th column="letter" ><spring:message code="letter"/></th>
|
||||||
<th><spring:message code="classification"/></th>
|
<th column="classification" ><spring:message code="classification"/></th>
|
||||||
<th><spring:message code="attribute"/></th>
|
<th column="attribute" ><spring:message code="attribute"/></th>
|
||||||
<th><spring:message code="label"/></th>
|
<th column="label" ><spring:message code="label"/></th>
|
||||||
<%-- <th><spring:message code="log_total"/></th> --%>
|
<%-- <th column="log_total" ><spring:message code="log_total"/></th> --%>
|
||||||
<th><spring:message code="creator"/></th>
|
<th column="creator" ><spring:message code="creator"/></th>
|
||||||
<th class="sort-column a.create_time"><spring:message code="config_time"/></th>
|
<th column="config_time" class="sort-column a.create_time"><spring:message code="config_time"/></th>
|
||||||
<th><spring:message code="editor"/></th>
|
<th column="editor" ><spring:message code="editor"/></th>
|
||||||
<th class="sort-column a.edit_time"><spring:message code="edit_time"/></th>
|
<th column="edit_time" class="sort-column a.edit_time"><spring:message code="edit_time"/></th>
|
||||||
<th><spring:message code="auditor"/></th>
|
<th column="auditor" ><spring:message code="auditor"/></th>
|
||||||
<th class="sort-column a.audit_time"><spring:message code="audit_time"/></th>
|
<th column="audit_time" class="sort-column a.audit_time"><spring:message code="audit_time"/></th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
|
|||||||
@@ -159,6 +159,18 @@
|
|||||||
<sys:delRow url="${ctx}/manipulation/ipmulitiplex/snatDelete?isValid=-1&functionId=${cfg.functionId }" id="contentTable" label="delete"></sys:delRow>
|
<sys:delRow url="${ctx}/manipulation/ipmulitiplex/snatDelete?isValid=-1&functionId=${cfg.functionId }" id="contentTable" label="delete"></sys:delRow>
|
||||||
<%-- <sys:delRow url="${ctx}/manipulation/ipmulitiplex/exportSnat?functionId=${cfg.functionId }" searchUrl="${ctx}/manipulation/ipmulitiplex/snatPolicyList?functionId=${cfg.functionId}" id="contentTable" maxRow="10000" label="export"></sys:delRow> --%>
|
<%-- <sys:delRow url="${ctx}/manipulation/ipmulitiplex/exportSnat?functionId=${cfg.functionId }" searchUrl="${ctx}/manipulation/ipmulitiplex/snatPolicyList?functionId=${cfg.functionId}" id="contentTable" maxRow="10000" label="export"></sys:delRow> --%>
|
||||||
</shiro:hasPermission>
|
</shiro:hasPermission>
|
||||||
|
|
||||||
|
<div class="btn-group">
|
||||||
|
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
|
||||||
|
<i class="fa fa-wrench"></i> <spring:message code="export"></spring:message>
|
||||||
|
<i class="fa fa-angle-down"></i>
|
||||||
|
</button>
|
||||||
|
<ul class="dropdown-menu pull-right" style="min-width: 110px;" >
|
||||||
|
<li><sys:delRow url="${ctx}/manipulation/ipmulitiplex/exportSnat?functionId=${cfg.functionId}&exType=excel" searchUrl="${ctx}/manipulation/ipmulitiplex/snatPolicyList?functionId=${cfg.functionId}" id="contentTable" maxRow="5" label="cfg_excel"></sys:delRow></li>
|
||||||
|
<li><sys:delRow url="${ctx}/manipulation/ipmulitiplex/exportSnat?functionId=${cfg.functionId}&exType=csv" searchUrl="${ctx}/manipulation/ipmulitiplex/snatPolicyList?functionId=${cfg.functionId}" id="contentTable" maxRow="5" label="cfg_csv"></sys:delRow></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
<shiro:hasPermission name="snat_policy:confirm">
|
<shiro:hasPermission name="snat_policy:confirm">
|
||||||
<div class="btn-group">
|
<div class="btn-group">
|
||||||
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
|
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
|
||||||
@@ -311,29 +323,28 @@
|
|||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th><input type="checkbox" class="i-checks" id="checkAll"></th>
|
<th><input type="checkbox" class="i-checks" id="checkAll"></th>
|
||||||
<th class="sort-column r.cfg_id" style="display: none"><spring:message code="cfg_id"/></th>
|
<th column="cfg_id" class="sort-column r.cfg_id" style="display: none"><spring:message code="cfg_id"/></th>
|
||||||
<th class="sort-column r.cfg_desc cfgDesc"><spring:message code="config_describe"/></th>
|
<th column="config_describe" class="sort-column r.cfg_desc cfgDesc"><spring:message code="config_describe"/></th>
|
||||||
<th><spring:message code="address_pool"/></th>
|
<th column="address_pool"><spring:message code="address_pool"/></th>
|
||||||
<th><spring:message code="user_type"/></th>
|
<th column="user_type"><spring:message code="user_type"/></th>
|
||||||
<th><spring:message code="user"/></th>
|
<th column="user"><spring:message code="user"/></th>
|
||||||
<th><spring:message code="ip"/></th>
|
<th column="ip"><spring:message code="ip"/></th>
|
||||||
<th><spring:message code="log_total"/></th>
|
<th column="log_total"><spring:message code="log_total"/></th>
|
||||||
|
<%-- <th column="block_type" class="sort-column a.action"><spring:message code="block_type"/></th> --%>
|
||||||
<%-- <th class="sort-column a.action"><spring:message code="block_type"/></th> --%>
|
<th column="valid_identifier" class="sort-column r.is_valid"><spring:message code="valid_identifier"/></th>
|
||||||
<th class="sort-column r.is_valid"><spring:message code="valid_identifier"/></th>
|
<th column="is_audit"><spring:message code="is_audit"/></th>
|
||||||
<th><spring:message code="is_audit"/></th>
|
<%-- <th column="do_log"><spring:message code="do_log"/></th> --%>
|
||||||
<%-- <th><spring:message code="do_log"/></th> --%>
|
<%-- <th column="whether_area_block"><spring:message code="whether_area_block"/></th> --%>
|
||||||
<%-- <th><spring:message code="whether_area_block"/></th> --%>
|
<th column="letter"><spring:message code="letter"/></th>
|
||||||
<th><spring:message code="letter"/></th>
|
<th column="classification"><spring:message code="classification"/></th>
|
||||||
<th><spring:message code="classification"/></th>
|
<th column="attribute"><spring:message code="attribute"/></th>
|
||||||
<th><spring:message code="attribute"/></th>
|
<th column="label"><spring:message code="label"/></th>
|
||||||
<th><spring:message code="label"/></th>
|
<th column="creator"><spring:message code="creator"/></th>
|
||||||
<th><spring:message code="creator"/></th>
|
<th column="config_time" class="sort-column r.create_time"><spring:message code="config_time"/></th>
|
||||||
<th class="sort-column r.create_time"><spring:message code="config_time"/></th>
|
<th column="editor"><spring:message code="editor"/></th>
|
||||||
<th><spring:message code="editor"/></th>
|
<th column="edit_time" class="sort-column r.edit_time"><spring:message code="edit_time"/></th>
|
||||||
<th class="sort-column r.edit_time"><spring:message code="edit_time"/></th>
|
<th column="auditor"><spring:message code="auditor"/></th>
|
||||||
<th><spring:message code="auditor"/></th>
|
<th column="audit_time" class="sort-column r.audit_time"><spring:message code="audit_time"/></th>
|
||||||
<th class="sort-column r.audit_time"><spring:message code="audit_time"/></th>
|
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
|
|||||||
@@ -146,6 +146,18 @@
|
|||||||
<sys:delRow url="${ctx}/proxy/spoofing/pool/form" id="contentTable" label="update"></sys:delRow>
|
<sys:delRow url="${ctx}/proxy/spoofing/pool/form" id="contentTable" label="update"></sys:delRow>
|
||||||
<sys:delRow url="${ctx}/proxy/spoofing/pool/delete?isValid=-1&functionId=${cfg.functionId }" id="contentTable" label="delete"></sys:delRow>
|
<sys:delRow url="${ctx}/proxy/spoofing/pool/delete?isValid=-1&functionId=${cfg.functionId }" id="contentTable" label="delete"></sys:delRow>
|
||||||
</shiro:hasPermission>
|
</shiro:hasPermission>
|
||||||
|
|
||||||
|
<div class="btn-group">
|
||||||
|
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
|
||||||
|
<i class="fa fa-wrench"></i> <spring:message code="export"></spring:message>
|
||||||
|
<i class="fa fa-angle-down"></i>
|
||||||
|
</button>
|
||||||
|
<ul class="dropdown-menu pull-right" style="min-width: 110px;" >
|
||||||
|
<li><sys:delRow url="${ctx}/proxy/spoofing/pool/exportIpPool?functionId=${cfg.functionId}&exType=excel" searchUrl="${ctx}/proxy/spoofing/pool/list?functionId=${cfg.functionId}" id="contentTable" maxRow="5" label="cfg_excel"></sys:delRow></li>
|
||||||
|
<li><sys:delRow url="${ctx}/proxy/spoofing/pool/exportIpPool?functionId=${cfg.functionId}&exType=csv" searchUrl="${ctx}/proxy/spoofing/pool/list?functionId=${cfg.functionId}" id="contentTable" maxRow="5" label="cfg_csv"></sys:delRow></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
<shiro:hasPermission name="proxy:spoofing:pool:confirm">
|
<shiro:hasPermission name="proxy:spoofing:pool:confirm">
|
||||||
<div class="btn-group">
|
<div class="btn-group">
|
||||||
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
|
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
|
||||||
|
|||||||
Reference in New Issue
Block a user