diff --git a/src/main/java/com/nis/domain/configuration/FtpKeywordCfg.java b/src/main/java/com/nis/domain/configuration/FtpKeywordCfg.java index d1d7b5860..cfc16cae8 100644 --- a/src/main/java/com/nis/domain/configuration/FtpKeywordCfg.java +++ b/src/main/java/com/nis/domain/configuration/FtpKeywordCfg.java @@ -16,6 +16,7 @@ package com.nis.domain.configuration; * @version V1.0 */ public class FtpKeywordCfg extends BaseStringCfg{ + private static final String tableName="ftp_keyword_cfg"; /** * @Fields serialVersionUID:TODO(用一句话描述这个变量表示什么) * @@ -33,5 +34,8 @@ public class FtpKeywordCfg extends BaseStringCfg{ this.exprType=0; this.matchMethod=0; } + public static String getTablename() { + return tableName; + } } diff --git a/src/main/java/com/nis/web/controller/BaseController.java b/src/main/java/com/nis/web/controller/BaseController.java index 3d0e396ea..84000dbb9 100644 --- a/src/main/java/com/nis/web/controller/BaseController.java +++ b/src/main/java/com/nis/web/controller/BaseController.java @@ -51,7 +51,7 @@ import com.nis.web.service.configuration.AvCfgService; import com.nis.web.service.configuration.AvContentCfgService; import com.nis.web.service.configuration.ComplexStringCfgService; import com.nis.web.service.configuration.DnsIpCfgService; -import com.nis.web.service.configuration.FtpCfgService; +import com.nis.web.service.configuration.FileTransferCfgService; import com.nis.web.service.configuration.IpCfgService; import com.nis.web.service.configuration.MailCfgService; import com.nis.web.service.configuration.MediaCfgService; @@ -108,7 +108,7 @@ public class BaseController { protected MailCfgService mailCfgService; @Autowired - protected FtpCfgService ftpCfgService; + protected FileTransferCfgService fileTransferCfgService; @Autowired protected TunnelCfgService tunnCfgService; diff --git a/src/main/java/com/nis/web/controller/configuration/FtpCfgController.java b/src/main/java/com/nis/web/controller/configuration/FtpCfgController.java deleted file mode 100644 index 220bf9f66..000000000 --- a/src/main/java/com/nis/web/controller/configuration/FtpCfgController.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.nis.web.controller.configuration; - -import org.springframework.stereotype.Controller; - -/** - * FTP相关配置控制类 - * @author dell - * - */ -@Controller -public class FtpCfgController { - -} diff --git a/src/main/java/com/nis/web/controller/configuration/ntc/FileTransferCfgController.java b/src/main/java/com/nis/web/controller/configuration/ntc/FileTransferCfgController.java new file mode 100644 index 000000000..e89ef2334 --- /dev/null +++ b/src/main/java/com/nis/web/controller/configuration/ntc/FileTransferCfgController.java @@ -0,0 +1,131 @@ +package com.nis.web.controller.configuration.ntc; + +import java.io.File; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.UUID; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.commons.codec.digest.DigestUtils; +import org.apache.commons.lang3.StringUtils; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.util.FileCopyUtils; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; + +import com.nis.domain.Page; +import com.nis.domain.configuration.BaseStringCfg; +import com.nis.domain.configuration.CfgIndexInfo; +import com.nis.domain.configuration.ComplexkeywordCfg; +import com.nis.domain.configuration.FileDigestCfg; +import com.nis.domain.configuration.IpPortCfg; +import com.nis.domain.maat.ToMaatResult; +import com.nis.exceptions.MaatConvertException; +import com.nis.util.ConfigServiceUtil; +import com.nis.util.FileUtils; +import com.nis.util.JsonMapper; +import com.nis.web.controller.BaseController; +import com.nis.web.security.UserUtils; + +/** + * 文件传输相关配置控制类 + * @author dell + * + */ +@Controller +@RequestMapping("${adminPath}/ntc/fileTransfer/") +public class FileTransferCfgController extends BaseController{ + @RequestMapping(value = {"ftpList"}) + @RequiresPermissions(value={"fileTransfer:ftp:config"}) + public String ftpList(Model model,@ModelAttribute("cfg")CfgIndexInfo cfg,HttpServletRequest request,HttpServletResponse response) { + Page searchPage=new Page(request,response,"a"); + Page page = fileTransferCfgService.getFtpList(searchPage, cfg); + model.addAttribute("page", page); + initPageCondition(model,cfg); + return "/cfg/fileTransfer/ftpList"; + } + @RequestMapping(value = {"ftpForm"}) + @RequiresPermissions(value={"fileTransfer:ftp:config"}) + public String ftpForm(Model model,String ids,CfgIndexInfo entity) { + if(StringUtils.isNotBlank(ids)){ + entity = fileTransferCfgService.getFtpCfg(Long.parseLong(ids)); + initUpdateFormCondition(model,entity); + }else{ + initFormCondition(model,entity); + } + model.addAttribute("_cfg", entity); + return "/cfg/fileTransfer/ftpForm"; + } + @RequestMapping(value = {"saveFtpCfg"}) + @RequiresPermissions(value={"fileTransfer:ftp:config"}) + public String saveFtpCfg(Model model,HttpServletRequest request,HttpServletResponse response,String ids, + CfgIndexInfo entity) { + fileTransferCfgService.saveFtpCfg(entity); + return "redirect:" + adminPath +"/ntc/fileTransfer/ftpList?functionId="+entity.getFunctionId(); + } + @RequestMapping(value = {"ajaxFtpSubList"}) + public String ajaxFtpSubList(Model model,Long cfgId,Integer index) { + CfgIndexInfo cfg = fileTransferCfgService.getFtpCfg(cfgId); + List tabList = new ArrayList(); + if(cfg.getIpPortList()!=null){ + String cfgType = null; + for(IpPortCfg ip:cfg.getIpPortList()){ + if(!ip.getCfgType().equals(cfgType)){ + tabList.add(new String[]{"1",ip.getCfgType()}); + cfgType = ip.getCfgType(); + } + } + } + if(cfg.getStringList()!=null){ + String cfgType = null; + for(BaseStringCfg keyword:cfg.getStringList()){ + if(!keyword.getCfgType().equals(cfgType)){ + tabList.add(new String[]{"2",keyword.getCfgType()}); + cfgType = keyword.getCfgType(); + } + } + } + model.addAttribute("_cfg", cfg); + model.addAttribute("index", index); + model.addAttribute("tabList", tabList); + return "/cfg/fileTransfer/ftpSubList"; + } + @RequestMapping(value = {"updateFtpCfgValid"}) + @RequiresPermissions(value={"fileTransfer:ftp:config"}) + public String updateFtpCfgValid(Integer isValid,String ids,Integer functionId) { + fileTransferCfgService.updateFtpCfgValid(isValid,ids,functionId); + return "redirect:" + adminPath +"/ntc/fileTransfer/ftpList?functionId="+functionId; + } + @RequestMapping(value = {"auditFtpCfg"}) + @RequiresPermissions(value={"fileTransfer:ftp:audit"}) + public String auditFtpCfg(Integer isAudit,Integer isValid,String ids,Integer functionId, RedirectAttributes redirectAttributes) { + CfgIndexInfo entity = new CfgIndexInfo(); + String[] idArray = ids.split(","); + for(String id :idArray){ + entity = fileTransferCfgService.getFtpCfg(Long.parseLong(id)); + entity.setIsAudit(isAudit); + entity.setIsValid(isValid); + entity.setAuditorId(UserUtils.getUser().getId()); + entity.setAuditTime(new Date()); + entity.setFunctionId(functionId); + try { + fileTransferCfgService.auditFtpCfg(entity,isAudit); + } catch (MaatConvertException e) { + e.printStackTrace(); + logger.info("ftp配置下发失败:"+e.getMessage()); + addMessage(redirectAttributes, e.getMessage()); + } + } + return "redirect:" + adminPath +"/ntc/fileTransfer/ftpList?functionId="+functionId; + } +} diff --git a/src/main/java/com/nis/web/controller/configuration/MailCfgController.java b/src/main/java/com/nis/web/controller/configuration/ntc/MailCfgController.java similarity index 95% rename from src/main/java/com/nis/web/controller/configuration/MailCfgController.java rename to src/main/java/com/nis/web/controller/configuration/ntc/MailCfgController.java index 1840307ca..e08e73e65 100644 --- a/src/main/java/com/nis/web/controller/configuration/MailCfgController.java +++ b/src/main/java/com/nis/web/controller/configuration/ntc/MailCfgController.java @@ -1,4 +1,4 @@ -package com.nis.web.controller.configuration; +package com.nis.web.controller.configuration.ntc; import java.io.File; import java.io.IOException; @@ -58,9 +58,10 @@ public class MailCfgController extends BaseController{ public String mailForm(Model model,String ids,CfgIndexInfo entity) { if(StringUtils.isNotBlank(ids)){ entity = mailCfgService.getMailCfg(Long.parseLong(ids)); - model.addAttribute("areaCfgs", entity.getAreaCfg()); + initUpdateFormCondition(model,entity); + }else{ + initFormCondition(model,entity); } - initFormCondition(model,entity); model.addAttribute("_cfg", entity); return "/cfg/mail/mailForm"; } diff --git a/src/main/java/com/nis/web/controller/configuration/ntc/WebsiteController.java b/src/main/java/com/nis/web/controller/configuration/ntc/WebsiteController.java index b5cdd28c8..a3709798b 100644 --- a/src/main/java/com/nis/web/controller/configuration/ntc/WebsiteController.java +++ b/src/main/java/com/nis/web/controller/configuration/ntc/WebsiteController.java @@ -110,7 +110,7 @@ public class WebsiteController extends BaseController{ if(entity.getHttpResBodyList().size()==0){ entity.getHttpResBodyList().add(resBodyCfg); } - model.addAttribute("areaCfgs", entity.getAreaCfg()); + initUpdateFormCondition(model,entity); }else{ //设置http各类配置的配置域类型 IpPortCfg ipCfg = new IpPortCfg(); @@ -150,8 +150,9 @@ public class WebsiteController extends BaseController{ List resBodyList=new ArrayList(); resBodyList.add(resBodyCfg); entity.setHttpResBodyList(resBodyList); + initFormCondition(model,entity); } - initFormCondition(model,entity); + model.addAttribute("_cfg", entity); return "/cfg/website/httpForm"; } @@ -211,9 +212,10 @@ public class WebsiteController extends BaseController{ public String sslForm(Model model,String ids,CfgIndexInfo entity) { if(StringUtils.isNotBlank(ids)){ entity = websiteCfgService.getSslCfg(Long.parseLong(ids)); - model.addAttribute("areaCfgs", entity.getAreaCfg()); + initUpdateFormCondition(model,entity); + }else{ + initFormCondition(model,entity); } - initFormCondition(model,entity); model.addAttribute("_cfg", entity); return "/cfg/website/sslForm"; } @@ -286,9 +288,10 @@ public class WebsiteController extends BaseController{ public String dnsForm(Model model,String ids,CfgIndexInfo entity) { if(StringUtils.isNotBlank(ids)){ entity = websiteCfgService.getDnsCfg(Long.parseLong(ids)); - model.addAttribute("areaCfgs", entity.getAreaCfg()); + initUpdateFormCondition(model,entity); + }else{ + initFormCondition(model,entity); } - initFormCondition(model,entity); model.addAttribute("_cfg", entity); return "/cfg/website/dnsForm"; } diff --git a/src/main/java/com/nis/web/dao/configuration/FileTransferCfgDao.java b/src/main/java/com/nis/web/dao/configuration/FileTransferCfgDao.java new file mode 100644 index 000000000..c9de37786 --- /dev/null +++ b/src/main/java/com/nis/web/dao/configuration/FileTransferCfgDao.java @@ -0,0 +1,37 @@ +package com.nis.web.dao.configuration; + +import java.util.List; + +import com.nis.domain.configuration.BaseCfg; +import com.nis.domain.configuration.BaseStringCfg; +import com.nis.domain.configuration.CfgIndexInfo; +import com.nis.domain.configuration.ComplexkeywordCfg; +import com.nis.domain.configuration.FileDigestCfg; +import com.nis.domain.configuration.IpPortCfg; +import com.nis.web.dao.CrudDao; +import com.nis.web.dao.MyBatisDao; + + +/** + * 文件传输相关配置数据处理类 + * @author dell + * + */ +@MyBatisDao +public interface FileTransferCfgDao extends CrudDao { + public CfgIndexInfo getCfgIndexInfo(Long id); + public List getFtpList(CfgIndexInfo entity); + public List getIpPortList(CfgIndexInfo entity); + public List getFtpKeywordList(CfgIndexInfo entity); + public List getFtpFileDigestList(CfgIndexInfo entity); + public void saveCfgIndex(CfgIndexInfo entity); + public void saveIpPortCfg(IpPortCfg entity); + public void saveFtpKeywordCfg(BaseStringCfg entity); + public void saveFtpFileDigestCfg(FileDigestCfg entity); + public void deleteFtpIpCfg(CfgIndexInfo entity); + public void deleteFtpKeywordCfg(CfgIndexInfo entity); + public void deleteFtpFileDigestCfg(CfgIndexInfo entity); + public void updateCfgIndex(CfgIndexInfo entity); + public void updateCfgValid(BaseCfg entity); + public void auditCfg(BaseCfg entity); +} diff --git a/src/main/java/com/nis/web/dao/configuration/FileTransferCfgDao.xml b/src/main/java/com/nis/web/dao/configuration/FileTransferCfgDao.xml new file mode 100644 index 000000000..8af1c5439 --- /dev/null +++ b/src/main/java/com/nis/web/dao/configuration/FileTransferCfgDao.xml @@ -0,0 +1,655 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + a.CFG_ID,a.CFG_DESC,a.ACTION,a.IS_VALID,a.IS_AUDIT, + a.CREATOR_ID,a.CREATE_TIME,a.EDITOR_ID,a.EDIT_TIME,a.AUDITOR_ID,a.AUDIT_TIME, + a.SERVICE_ID,a.REQUEST_ID,a.COMPILE_ID,a.IS_AREA_EFFECTIVE,a.CLASSIFY, + a.ATTRIBUTE,a.LABLE,a.AREA_EFFECTIVE_IDS,a.function_id + + + a.cfg_id,a.cfg_desc,a.ip_type,a.src_ip_address,a.ip_pattern,a.port_pattern,a.src_port + ,a.protocol,a.protocol_id,a.direction,a.cfg_type,a.action,a.dest_port,a.dest_ip_address + ,a.is_valid,a.is_audit,a.creator_id,a.create_time,a.editor_id + ,a.edit_time,a.auditor_id,a.audit_time,a.service_id,a.request_id, + a.compile_id,a.is_area_effective,a.classify,a.attribute,a.lable + ,a.area_effective_ids,a.function_id,a.cfg_region_code + + + a.cfg_id,a.cfg_desc,a.cfg_keywords,a.cfg_type, + a.action,a.is_valid,a.is_audit,a.creator_id,a.create_time,a.editor_id,a.edit_time, a.auditor_id, + a.audit_time,a.service_id,a.request_id,a.compile_id,a.is_area_effective,a.classify,a.attribute,a.lable, + a.expr_type,a.match_method,a.is_hexbin,a.area_effective_ids,a.function_id,a.cfg_region_code + + + a.cfg_id,a.cfg_desc,a.cfg_keywords,a.cfg_type,a.district, + a.action,a.is_valid,a.is_audit,a.creator_id,a.create_time,a.editor_id,a.edit_time, a.auditor_id, + a.audit_time,a.service_id,a.request_id,a.compile_id,a.is_area_effective,a.classify,a.attribute,a.lable, + a.expr_type,a.match_method,a.is_hexbin,a.area_effective_ids,a.function_id,a.cfg_region_code + + + a.CFG_ID,a.CFG_DESC,a.raw_len,a.digest,a.cfds_level,a.ACTION,a.IS_VALID,a.IS_AUDIT, + a.CREATOR_ID,a.CREATE_TIME,a.EDITOR_ID,a.EDIT_TIME,a.AUDITOR_ID,a.AUDIT_TIME, + a.SERVICE_ID,a.REQUEST_ID,a.COMPILE_ID,a.IS_AREA_EFFECTIVE,a.CLASSIFY, + a.ATTRIBUTE,a.LABLE,a.AREA_EFFECTIVE_IDS,a.function_id,cfg_type,cfg_region_code + + + + + + + + + + + + + + SELECT LAST_INSERT_ID() + + insert into cfg_index_info( + CFG_DESC, + ACTION, + IS_VALID, + IS_AUDIT, + CREATOR_ID, + CREATE_TIME, + EDITOR_ID, + EDIT_TIME, + AUDITOR_ID, + AUDIT_TIME, + SERVICE_ID, + REQUEST_ID, + COMPILE_ID, + IS_AREA_EFFECTIVE, + CLASSIFY, + ATTRIBUTE, + LABLE, + AREA_EFFECTIVE_IDS, + function_id + )values ( + #{cfgDesc,jdbcType=VARCHAR}, + #{action,jdbcType=INTEGER}, + 0, + 0, + #{creatorId,jdbcType=INTEGER}, + #{createTime,jdbcType=TIMESTAMP}, + #{editorId,jdbcType=INTEGER}, + #{editTime,jdbcType=TIMESTAMP}, + #{auditorId,jdbcType=INTEGER}, + #{auditTime,jdbcType=TIMESTAMP}, + #{serviceId,jdbcType=INTEGER}, + #{requestId,jdbcType=INTEGER}, + #{compileId,jdbcType=INTEGER}, + #{isAreaEffective,jdbcType=INTEGER}, + #{classify,jdbcType=VARCHAR}, + #{attribute,jdbcType=VARCHAR}, + #{lable,jdbcType=VARCHAR}, + #{areaEffectiveIds,jdbcType=VARCHAR}, + #{functionId,jdbcType=INTEGER} + ) + + + + + SELECT LAST_INSERT_ID() + + insert into ip_port_cfg ( + CFG_DESC, + ACTION, + IS_VALID, + IS_AUDIT, + CREATOR_ID, + CREATE_TIME, + EDITOR_ID, + EDIT_TIME, + AUDITOR_ID, + AUDIT_TIME, + SERVICE_ID, + REQUEST_ID, + COMPILE_ID, + IS_AREA_EFFECTIVE, + CLASSIFY, + ATTRIBUTE, + LABLE, + AREA_EFFECTIVE_IDS, + function_id, + ip_type, + src_ip_address, + ip_pattern, + port_pattern, + src_port, + protocol, + protocol_id, + direction, + dest_port, + dest_ip_address, + cfg_type, + cfg_region_code + )values ( + #{cfgDesc,jdbcType=VARCHAR}, + #{action,jdbcType=INTEGER}, + 0, + 0, + #{creatorId,jdbcType=INTEGER}, + #{createTime,jdbcType=TIMESTAMP}, + #{editorId,jdbcType=INTEGER}, + #{editTime,jdbcType=TIMESTAMP}, + #{auditorId,jdbcType=INTEGER}, + #{auditTime,jdbcType=TIMESTAMP}, + #{serviceId,jdbcType=INTEGER}, + #{requestId,jdbcType=INTEGER}, + #{compileId,jdbcType=INTEGER}, + #{isAreaEffective,jdbcType=INTEGER}, + #{classify,jdbcType=VARCHAR}, + #{attribute,jdbcType=VARCHAR}, + #{lable,jdbcType=VARCHAR}, + #{areaEffectiveIds,jdbcType=VARCHAR}, + #{functionId,jdbcType=INTEGER}, + #{ipType,jdbcType=INTEGER}, + #{srcIpAddress,jdbcType=VARCHAR}, + #{ipPattern,jdbcType=INTEGER}, + #{portPattern,jdbcType=INTEGER}, + #{srcPort,jdbcType=VARCHAR}, + #{protocol,jdbcType=INTEGER}, + #{protocolId,jdbcType=INTEGER}, + #{direction,jdbcType=INTEGER}, + #{destPort,jdbcType=VARCHAR}, + #{destIpAddress,jdbcType=VARCHAR}, + #{cfgType,jdbcType=VARCHAR}, + #{cfgRegionCode,jdbcType=INTEGER} + ) + + + update cfg_index_info + + + + cfg_desc = #{cfgDesc,jdbcType=VARCHAR}, + + + action = #{action,jdbcType=INTEGER}, + + + is_valid = #{isValid,jdbcType=INTEGER}, + + + is_audit = #{isAudit,jdbcType=INTEGER}, + + + creator_id = #{creatorId,jdbcType=INTEGER}, + + + create_time = #{createTime,jdbcType=TIMESTAMP}, + + + editor_id = #{editorId,jdbcType=INTEGER}, + + edit_time = #{editTime,jdbcType=TIMESTAMP}, + + service_id = #{serviceId,jdbcType=INTEGER}, + + + request_id = #{requestId,jdbcType=INTEGER}, + + + is_area_effective = #{isAreaEffective,jdbcType=INTEGER}, + + + classify = #{classify,jdbcType=VARCHAR}, + + + attribute = #{attribute,jdbcType=VARCHAR}, + + + lable = #{lable,jdbcType=VARCHAR}, + + + area_effective_ids = #{areaEffectiveIds,jdbcType=VARCHAR}, + + + function_id = #{functionId,jdbcType=INTEGER}, + + + + where cfg_id = #{cfgId,jdbcType=BIGINT} + + + + update ${tableName} set is_valid = #{isValid,jdbcType=INTEGER}, + editor_id = #{editorId,jdbcType=INTEGER} , + edit_time = #{editTime,jdbcType=TIMESTAMP} + + + AND cfg_id = #{cfgId,jdbcType=BIGINT} + + + AND compile_id = #{compileId,jdbcType=INTEGER} + + and function_id=#{functionId,jdbcType=INTEGER} + + + + update ${tableName} set is_audit = #{isAudit,jdbcType=INTEGER}, + auditor_id = #{auditorId,jdbcType=INTEGER}, + audit_time = #{auditTime,jdbcType=TIMESTAMP} + + ,is_valid = #{isValid,jdbcType=INTEGER} + + + + AND cfg_id = #{cfgId,jdbcType=BIGINT} + + + AND compile_id = #{compileId,jdbcType=INTEGER} + + and function_id=#{functionId,jdbcType=INTEGER} + + + + + + + + SELECT LAST_INSERT_ID() + + insert into ftp_keyword_cfg ( + CFG_DESC, + ACTION, + IS_VALID, + IS_AUDIT, + CREATOR_ID, + CREATE_TIME, + EDITOR_ID, + EDIT_TIME, + AUDITOR_ID, + AUDIT_TIME, + SERVICE_ID, + REQUEST_ID, + COMPILE_ID, + IS_AREA_EFFECTIVE, + CLASSIFY, + ATTRIBUTE, + LABLE, + AREA_EFFECTIVE_IDS, + function_id, + cfg_keywords, + cfg_type, + cfg_region_code, + expr_type, + match_method, + is_hexbin + )values ( + #{cfgDesc,jdbcType=VARCHAR}, + #{action,jdbcType=INTEGER}, + 0, + 0, + #{creatorId,jdbcType=INTEGER}, + #{createTime,jdbcType=TIMESTAMP}, + #{editorId,jdbcType=INTEGER}, + #{editTime,jdbcType=TIMESTAMP}, + #{auditorId,jdbcType=INTEGER}, + #{auditTime,jdbcType=TIMESTAMP}, + #{serviceId,jdbcType=INTEGER}, + #{requestId,jdbcType=INTEGER}, + #{compileId,jdbcType=INTEGER}, + #{isAreaEffective,jdbcType=INTEGER}, + #{classify,jdbcType=VARCHAR}, + #{attribute,jdbcType=VARCHAR}, + #{lable,jdbcType=VARCHAR}, + #{areaEffectiveIds,jdbcType=VARCHAR}, + #{functionId,jdbcType=INTEGER}, + #{cfgKeywords,jdbcType=VARCHAR}, + #{cfgType,jdbcType=VARCHAR}, + #{cfgRegionCode,jdbcType=INTEGER}, + #{exprType,jdbcType=INTEGER}, + #{matchMethod,jdbcType=INTEGER}, + #{isHexbin,jdbcType=INTEGER} + ) + + + + + SELECT LAST_INSERT_ID() + + insert into file_digest_cfg( + CFG_DESC, + RAW_LEN, + DIGEST, + CFDS_LEVEL, + ACTION, + IS_VALID, + IS_AUDIT, + CREATOR_ID, + CREATE_TIME, + EDITOR_ID, + EDIT_TIME, + AUDITOR_ID, + AUDIT_TIME, + SERVICE_ID, + REQUEST_ID, + COMPILE_ID, + IS_AREA_EFFECTIVE, + CLASSIFY, + ATTRIBUTE, + LABLE, + AREA_EFFECTIVE_IDS, + function_id, + cfg_type, + cfg_region_code + )values ( + #{cfgDesc,jdbcType=VARCHAR}, + #{rawLen,jdbcType=BIGINT}, + #{digest,jdbcType=VARCHAR}, + #{cfdsLevel,jdbcType=INTEGER}, + #{action,jdbcType=INTEGER}, + 0, + 0, + #{creatorId,jdbcType=INTEGER}, + #{createTime,jdbcType=TIMESTAMP}, + #{editorId,jdbcType=INTEGER}, + #{editTime,jdbcType=TIMESTAMP}, + #{auditorId,jdbcType=INTEGER}, + #{auditTime,jdbcType=TIMESTAMP}, + #{serviceId,jdbcType=INTEGER}, + #{requestId,jdbcType=INTEGER}, + #{compileId,jdbcType=INTEGER}, + #{isAreaEffective,jdbcType=INTEGER}, + #{classify,jdbcType=VARCHAR}, + #{attribute,jdbcType=VARCHAR}, + #{lable,jdbcType=VARCHAR}, + #{areaEffectiveIds,jdbcType=VARCHAR}, + #{functionId,jdbcType=INTEGER}, + #{cfgType,jdbcType=VARCHAR}, + #{cfgRegionCode,jdbcType=INTEGER} + ) + + + + delete from ip_port_cfg where compile_id=#{compileId} and protocol_id=7 and function_id=#{functionId} + + + + delete from ftp_keyword_cfg where compile_id=#{compileId} and function_id=#{functionId} + + + + delete from file_digest_cfg where compile_id=#{compileId} and function_id=#{functionId} + + \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/configuration/FtpCfgDao.java b/src/main/java/com/nis/web/dao/configuration/FtpCfgDao.java deleted file mode 100644 index c6e1f1c64..000000000 --- a/src/main/java/com/nis/web/dao/configuration/FtpCfgDao.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.nis.web.dao.configuration; - - -/** - * FTP相关配置数据处理类 - * @author dell - * - */ -public class FtpCfgDao { - -} diff --git a/src/main/java/com/nis/web/service/configuration/FileTransferCfgService.java b/src/main/java/com/nis/web/service/configuration/FileTransferCfgService.java new file mode 100644 index 000000000..d446bf5d0 --- /dev/null +++ b/src/main/java/com/nis/web/service/configuration/FileTransferCfgService.java @@ -0,0 +1,301 @@ +package com.nis.web.service.configuration; + +import java.io.File; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.apache.commons.codec.digest.DigestUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; + +import com.nis.domain.Page; +import com.nis.domain.configuration.AreaIpCfg; +import com.nis.domain.configuration.BaseStringCfg; +import com.nis.domain.configuration.CfgIndexInfo; +import com.nis.domain.configuration.BaseStringCfg; +import com.nis.domain.configuration.FileDigestCfg; +import com.nis.domain.configuration.IpPortCfg; +import com.nis.domain.configuration.FtpKeywordCfg; +import com.nis.domain.maat.MaatCfg; +import com.nis.domain.maat.ToMaatBean; +import com.nis.domain.maat.ToMaatResult; +import com.nis.domain.maat.MaatCfg.DigestCfg; +import com.nis.domain.maat.MaatCfg.GroupCfg; +import com.nis.domain.maat.MaatCfg.IpCfg; +import com.nis.domain.maat.MaatCfg.NumBoundaryCfg; +import com.nis.domain.maat.MaatCfg.StringCfg; +import com.nis.exceptions.MaatConvertException; +import com.nis.util.ConfigServiceUtil; +import com.nis.util.Constants; +import com.nis.util.FileUtils; +import com.nis.util.JsonMapper; +import com.nis.web.dao.configuration.AreaIpCfgDao; +import com.nis.web.dao.configuration.FileTransferCfgDao; +import com.nis.web.security.UserUtils; +import com.nis.web.service.CrudService; + +/** + * 文件传输相关配置事务类 + * @author dell + * + */ +@Service +public class FileTransferCfgService extends CrudService { + @Autowired + protected FileTransferCfgDao fileTransferCfgDao; + @Autowired + protected AreaIpCfgDao areaIpCfgDao; + public Page getFtpList(Page page, CfgIndexInfo entity){ + // 生成数据权限过滤条件(dsf为dataScopeFilter的简写,在xml中使用 ${sqlMap.dsf}调用权限SQL) + entity.getSqlMap().put("dsf", configScopeFilter(entity.getCurrentUser(),"a")); + entity.setPage(page); + List list = fileTransferCfgDao.getFtpList(entity); + page.setList(list); + return page; + } + public CfgIndexInfo getFtpCfg(Long cfgId){ + CfgIndexInfo entity = fileTransferCfgDao.getCfgIndexInfo(cfgId); + List ipPortList = fileTransferCfgDao.getIpPortList(entity); + List keywordList = fileTransferCfgDao.getFtpKeywordList(entity); + entity.setIpPortList(ipPortList); + entity.setStringList(keywordList); + return entity; + } + /** + * 保存ftp配置 + * @param entity + */ + + public void saveFtpCfg(CfgIndexInfo entity){ + //设置区域运营商信息 + setAreaEffectiveIds(entity); + if(entity.getCfgId()==null){ + Integer compileId = 0; + try { + List idList = ConfigServiceUtil.getId(1, 1); + if(idList!=null && idList.size()>0){ + compileId = idList.get(0); + } + entity.setCompileId(compileId); + entity.setCreateTime(new Date()); + entity.setCreatorId(entity.getCurrentUser().getId()); + fileTransferCfgDao.saveCfgIndex(entity); + if(entity.getIpPortList()!=null){ + for(IpPortCfg cfg:entity.getIpPortList()){ + BeanUtils.copyProperties(entity, cfg,new String[]{"cfgRegionCode","cfgType"}); + fileTransferCfgDao.saveIpPortCfg(cfg); + } + } + if(entity.getStringList()!=null){ + for(BaseStringCfg cfg:entity.getStringList()){ + if(StringUtils.isNotBlank(cfg.getCfgKeywords())){ + BeanUtils.copyProperties(entity, cfg,new String[]{"cfgRegionCode","cfgType"}); + fileTransferCfgDao.saveFtpKeywordCfg(cfg); + } + } + } + //保存区域IP信息 + if(entity.getAreaCfg()!=null){ + for(AreaIpCfg cfg:entity.getAreaCfg()){ + cfg.initDefaultValue(); + BeanUtils.copyProperties(entity, cfg,new String[]{"cfgRegionCode","cfgType"}); + areaIpCfgDao.saveAreaIpCfg(cfg); + } + } + } catch (Exception e) { + e.printStackTrace(); + logger.info("获取编译ID出错"); + throw new MaatConvertException(":"+e.getMessage()); + } + + }else{ + fileTransferCfgDao.updateCfgIndex(entity); + //无效子配置后,再新增子配置 + fileTransferCfgDao.deleteFtpIpCfg(entity); + fileTransferCfgDao.deleteFtpKeywordCfg(entity); + fileTransferCfgDao.deleteFtpFileDigestCfg(entity); + AreaIpCfg area = new AreaIpCfg(); + area.setCompileId(entity.getCompileId()); + area.setFunctionId(entity.getFunctionId()); + areaIpCfgDao.deleteAreaIpCfg(area); + entity.setCreateTime(new Date()); + entity.setCreatorId(entity.getCurrentUser().getId()); + if(entity.getIpPortList()!=null){ + for(IpPortCfg cfg:entity.getIpPortList()){ + BeanUtils.copyProperties(entity, cfg,new String[]{"cfgRegionCode","cfgType"}); + fileTransferCfgDao.saveIpPortCfg(cfg); + } + } + if(entity.getStringList()!=null){ + for(BaseStringCfg cfg:entity.getStringList()){ + if(StringUtils.isNotBlank(cfg.getCfgKeywords())){ + BeanUtils.copyProperties(entity, cfg,new String[]{"cfgRegionCode","cfgType"}); + fileTransferCfgDao.saveFtpKeywordCfg(cfg); + } + } + } + //保存区域IP信息 + if(entity.getAreaCfg()!=null){ + for(AreaIpCfg cfg:entity.getAreaCfg()){ + cfg.initDefaultValue(); + BeanUtils.copyProperties(entity, cfg,new String[]{"cfgDesc","cfgRegionCode","cfgType"}); + areaIpCfgDao.saveAreaIpCfg(cfg); + } + } + } + } + public void updateFtpCfgValid(Integer isValid,String ids,Integer functionId){ + CfgIndexInfo entity = new CfgIndexInfo(); + String[] idArray = ids.split(","); + for(String id :idArray){ + entity.setCfgId(Long.parseLong(id)); + entity.setIsValid(isValid); + entity.setEditorId(UserUtils.getUser().getId()); + entity.setEditTime(new Date()); + entity.setTableName(CfgIndexInfo.getTablename()); + entity.setFunctionId(functionId); + fileTransferCfgDao.updateCfgValid(entity); + //查询子配置 + entity = this.getFtpCfg(Long.parseLong(id)); + if(entity.getIpPortList()!=null && entity.getIpPortList().size()>0){ + IpPortCfg cfg = new IpPortCfg(); + BeanUtils.copyProperties(entity, cfg, new String[]{"cfgId"}); + cfg.setTableName(IpPortCfg.getTablename()); + fileTransferCfgDao.updateCfgValid(cfg); + } + if(entity.getStringList()!=null && entity.getStringList().size()>0) + { + FtpKeywordCfg cfg = new FtpKeywordCfg(); + BeanUtils.copyProperties(entity, cfg, new String[]{"cfgId"}); + cfg.setTableName(FtpKeywordCfg.getTablename()); + fileTransferCfgDao.updateCfgValid(cfg); + } + //保存区域IP信息 + if(entity.getAreaCfg()!=null && entity.getAreaCfg().size()>0){ + AreaIpCfg cfg = new AreaIpCfg(); + BeanUtils.copyProperties(entity, cfg, new String[]{"cfgId"}); + cfg.setTableName(AreaIpCfg.getTablename()); + fileTransferCfgDao.updateCfgValid(cfg); + } + + } + + } + public void auditFtpCfg(CfgIndexInfo entity,Integer isAudit) throws MaatConvertException{ + //修改数据库审核状态信息 + entity.setTableName(CfgIndexInfo.getTablename()); + fileTransferCfgDao.auditCfg(entity); + + ToMaatBean maatBean = new ToMaatBean(); + MaatCfg maatCfg = new MaatCfg(); + List configCompileList = new ArrayList(); + List groupRelationList = new ArrayList(); + List ipRegionList = new ArrayList(); + List strRegionList = new ArrayList(); + List numRegionList = new ArrayList(); + List digestRegionList = new ArrayList(); + List areaIpRegionList = new ArrayList(); + + //查询子配置并修改审核状态 + entity = this.getFtpCfg(entity.getCfgId()); + if(entity.getIpPortList()!=null && entity.getIpPortList().size()>0){ + IpPortCfg cfg = new IpPortCfg(); + BeanUtils.copyProperties(entity, cfg, new String[]{"cfgId"}); + cfg.setTableName(IpPortCfg.getTablename()); + fileTransferCfgDao.auditCfg(cfg); + if(isAudit==1){ + Map map = cfgConvert(ipRegionList,entity.getIpPortList(),1,entity,groupRelationList); + groupRelationList=map.get("groupList"); + ipRegionList=map.get("dstList"); + if(map.get("numRegionList")!=null){ + numRegionList.addAll(map.get("numRegionList")); + } + } + } + if(entity.getStringList()!=null && entity.getStringList().size()>0){ + FtpKeywordCfg cfg = new FtpKeywordCfg(); + BeanUtils.copyProperties(entity, cfg, new String[]{"cfgId"}); + cfg.setTableName(FtpKeywordCfg.getTablename()); + fileTransferCfgDao.auditCfg(cfg); + if(isAudit==1){ + Map map = cfgConvert(strRegionList,entity.getStringList(),2,entity,groupRelationList); + groupRelationList=map.get("groupList"); + strRegionList=map.get("dstList"); + } + } + if(entity.getDigestList()!=null && entity.getDigestList().size()>0){ + FileDigestCfg cfg = new FileDigestCfg(); + BeanUtils.copyProperties(entity, cfg, new String[]{"cfgId"}); + cfg.setTableName(FileDigestCfg.getTablename()); + fileTransferCfgDao.auditCfg(cfg); + if(isAudit==1){ + Map map = cfgConvert(digestRegionList,entity.getDigestList(),5,entity,groupRelationList); + groupRelationList=map.get("groupList"); + digestRegionList=map.get("dstList"); + } + } + //保存区域IP信息 + if(entity.getAreaCfg()!=null && entity.getAreaCfg().size()>0){ + AreaIpCfg cfg = new AreaIpCfg(); + BeanUtils.copyProperties(entity, cfg, new String[]{"cfgId"}); + cfg.setTableName(AreaIpCfg.getTablename()); + fileTransferCfgDao.auditCfg(cfg); + if(isAudit==1){ + Map map = cfgConvert(areaIpRegionList,entity.getAreaCfg(),1,entity,groupRelationList); + groupRelationList=map.get("groupList"); + areaIpRegionList=map.get("dstList"); + } + } + + //构造提交综合服务参数格式,一条配置提交一次综合服务 + if(isAudit==1){ + maatCfg.initDefaultValue(); + BeanUtils.copyProperties(entity, maatCfg); + maatCfg.setAction(entity.getAction()); + maatCfg.setAuditTime(entity.getAuditTime()); + maatCfg.setIpRegionList(ipRegionList); + maatCfg.setStrRegionList(strRegionList); + maatCfg.setNumRegionList(numRegionList); + maatCfg.setDigestRegionList(digestRegionList); + maatCfg.setGroupRelationList(groupRelationList); + maatCfg.setGroupNum(groupRelationList.size()); + maatCfg.setAreaIpRegionList(areaIpRegionList); + maatCfg.setIsValid(entity.getIsValid()); + configCompileList.add(maatCfg); + maatBean.setConfigCompileList(configCompileList); + maatBean.setAuditTime(entity.getAuditTime()); + maatBean.setCreatorName(entity.getCurrentUser().getName()); + maatBean.setVersion(Constants.MAAT_VERSION); + maatBean.setOpAction(Constants.INSERT_ACTION); + //调用服务接口下发配置数据 + String json=gsonToJson(maatBean); + logger.info("ftp配置下发配置参数:"+json); + //调用服务接口下发配置 + ToMaatResult result = ConfigServiceUtil.postCallbackCfg(json); + logger.info("ftp配置下发响应信息:"+result.getMsg()); + + }else if(isAudit==3){ + maatCfg.setCompileId(entity.getCompileId()); + maatCfg.setServiceId(entity.getServiceId()); + maatCfg.setIsValid(0);//无效 + configCompileList.add(maatCfg); + maatBean.setConfigCompileList(configCompileList); + maatBean.setAuditTime(entity.getAuditTime()); + maatBean.setCreatorName(entity.getCurrentUser().getName()); + maatBean.setVersion(Constants.MAAT_VERSION); + maatBean.setOpAction(Constants.UPDATE_ACTION); + //调用服务接口取消配置 + String json=gsonToJson(maatBean); + logger.info("ftp配置下发配置参数:"+json); + //调用服务接口下发配置 + ToMaatResult result = ConfigServiceUtil.put(json,1); + logger.info("ftp配置取消配置响应信息:"+result.getMsg()); + } + } +} diff --git a/src/main/java/com/nis/web/service/configuration/FtpCfgService.java b/src/main/java/com/nis/web/service/configuration/FtpCfgService.java deleted file mode 100644 index f4ad1d99a..000000000 --- a/src/main/java/com/nis/web/service/configuration/FtpCfgService.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.nis.web.service.configuration; - -import org.springframework.stereotype.Service; - -/** - * FTP相关配置事务类 - * @author dell - * - */ -@Service -public class FtpCfgService { - -} diff --git a/src/main/java/com/nis/web/service/configuration/WebsiteCfgService.java b/src/main/java/com/nis/web/service/configuration/WebsiteCfgService.java index 5482ebb7f..dcf37aeb7 100644 --- a/src/main/java/com/nis/web/service/configuration/WebsiteCfgService.java +++ b/src/main/java/com/nis/web/service/configuration/WebsiteCfgService.java @@ -74,34 +74,28 @@ public class WebsiteCfgService extends CrudService { List httpResHdrList = websiteCfgDao.getHttpResHdrList(entity); List httpReqBodyList = websiteCfgDao.getHttpReqBodyList(entity); List httpResBodyList = websiteCfgDao.getHttpResBodyList(entity); - List areaCfg = areaIpCfgDao.getByCompileId(entity.getCompileId()); entity.setIpPortList(ipPortList); entity.setHttpReqBodyList(httpReqBodyList); entity.setHttpReqHdrList(httpReqHdrList); entity.setHttpResBodyList(httpResBodyList); entity.setHttpResHdrList(httpResHdrList); entity.setHttpUrlList(httpUrlList); - entity.setAreaCfg(areaCfg); return entity; } public CfgIndexInfo getSslCfg(Long cfgId){ CfgIndexInfo entity = websiteCfgDao.getCfgIndexInfo(cfgId); List ipPortList = websiteCfgDao.getIpPortList(entity); List sslList = websiteCfgDao.getSslKewordList(entity); - List areaCfg = areaIpCfgDao.getByCompileId(entity.getCompileId()); entity.setIpPortList(ipPortList); entity.setSslList(sslList); - entity.setAreaCfg(areaCfg); return entity; } public CfgIndexInfo getDnsCfg(Long cfgId){ CfgIndexInfo entity = websiteCfgDao.getCfgIndexInfo(cfgId); List ipPortList = websiteCfgDao.getIpPortList(entity); List domainList = websiteCfgDao.getDnsDomainList(entity); - List areaCfg = areaIpCfgDao.getByCompileId(entity.getCompileId()); entity.setIpPortList(ipPortList); entity.setDomainList(domainList); - entity.setAreaCfg(areaCfg); return entity; } public Page getWebsiteList(Page page, CfgIndexInfo entity){ diff --git a/src/main/resources/messages/message_zh_CN.properties b/src/main/resources/messages/message_zh_CN.properties index 8e64f3d8d..0236c2dbc 100644 --- a/src/main/resources/messages/message_zh_CN.properties +++ b/src/main/resources/messages/message_zh_CN.properties @@ -579,3 +579,13 @@ ssl_ca=SSL CA\u5173\u952E\u5B57\u914D\u7F6E http_control=http\u914D\u7F6E ingress=\u51FA\u53E3\u65B9\u5411 degress=\u5165\u53E3\u65B9\u5411 +fileTransfer_control=\u6587\u4EF6\u4F20\u8F93\u914D\u7F6E +mail_hdr=\u90AE\u4EF6\u5934\u57DF\u914D\u7F6E +mail_body=\u6587\u4EF6\u5185\u5BB9\u914D\u7F6E +mail_file_digest=\u90AE\u4EF6\u6587\u4EF6\u6458\u8981\u914D\u7F6E +ftp_url=ftp\u5730\u5740\u914D\u7F6E +ftp_content=ftp\u5185\u5BB9\u914D\u7F6E +mail_ip=\u90AE\u4EF6IP\u914D\u7F6E +ftp_ip=FTP IP\u914D\u7F6E +dns_ip=DNS IP\u914D\u7F6E +dns_domain=DNS\u57DF\u540D\u914D\u7F6E diff --git a/src/main/webapp/WEB-INF/sitemesh3.xml b/src/main/webapp/WEB-INF/sitemesh3.xml index fe5fa04c0..328298944 100644 --- a/src/main/webapp/WEB-INF/sitemesh3.xml +++ b/src/main/webapp/WEB-INF/sitemesh3.xml @@ -21,7 +21,11 @@ - + + + + + /articles/* diff --git a/src/main/webapp/WEB-INF/views/cfg/fileTransfer/ftpForm.jsp b/src/main/webapp/WEB-INF/views/cfg/fileTransfer/ftpForm.jsp new file mode 100644 index 000000000..08b160310 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/cfg/fileTransfer/ftpForm.jsp @@ -0,0 +1,277 @@ +<%@ page contentType="text/html;charset=UTF-8"%> +<%@ include file="/WEB-INF/include/taglib.jsp"%> + + +<spring:message code="${cfgName}"></spring:message> + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+
+ +
+ + + + + +
+ + +
+
+
+ +
+ +
+
+
+
+
+ +
+ + + +
+
+
+
+
+ + + + + + +

+ + +

+ + + + + + +
+ <%@include file="/WEB-INF/views/cfg/ipCfgForm.jsp"%> +
+ +
+
+
+ + + + +
+ +
+ + +

+ + +

+ + + + + + + + +
+ <%@include file="/WEB-INF/views/cfg/stringCfgForm.jsp"%> +
+ + +
+
+
+ + + + +
+ + + + +
+
+
+
+ <%@include file="/WEB-INF/include/form/areaInfo.jsp"%> +
+ <%@include file="/WEB-INF/include/form/basicInfo.jsp"%> +
+
+
+
+
+ + +
+
+
+
+
+
+ + +
+
+ +
+
+
+
+
+ + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/cfg/fileTransfer/ftpList.jsp b/src/main/webapp/WEB-INF/views/cfg/fileTransfer/ftpList.jsp new file mode 100644 index 000000000..329f2ddfd --- /dev/null +++ b/src/main/webapp/WEB-INF/views/cfg/fileTransfer/ftpList.jsp @@ -0,0 +1,434 @@ +<%@ page contentType="text/html;charset=UTF-8"%> +<%@ include file="/WEB-INF/include/taglib.jsp"%> + + +<spring:message code="${cfgName}"></spring:message> + + + + + + +
+ + +

+ + +

+ +
+
+
+
+ + + + + + + + + + +
+
+ + + + + + + + +
+ +
+ +
+
+ + + + <%-- + + + --%> + + +
+ + + +
+
+
+ + + +
+
+ + + + + +
+ + +
+
+ href="javascript:;"> + + +
+
+ + + +
+
+ +
+ +
+ + + + + + + + +
+ +
+ +
+ +
+ + + + + + + +
+ +
+ +
+ +
+ + + + + + + + +
+ +
+ +
+ +
+ + + + + + + +
+ +
+ +
+ +
+
+
+ + +
+
+ +
+
+ + " onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/> + +
+
+ +
+
+ + " onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/> + +
+
+ +
+
+ + " onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/> + +
+
+ +
+
+ + " onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/> + +
+
+ +
+
+ + " onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/> + +
+
+
+ + +
+ + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + ${indexCfg.cfgDesc } + + + + + + + + + ${indexCfg.requestName } + + + + + + + + + + + + + + + ${fns:abbr(classify,20)} + + + + + + + + + + + + + + + + + ${fns:abbr(attribute,20)} + + + + + + + + + + + + + + + + + + ${fns:abbr(lableInfo,20)} + + + + + + + + + + + + + ${indexCfg.creatorName }${indexCfg.editorName }${indexCfg.auditorName }
+
${page}
+
+ +
+
+
+ + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/cfg/fileTransfer/ftpSubList.jsp b/src/main/webapp/WEB-INF/views/cfg/fileTransfer/ftpSubList.jsp new file mode 100644 index 000000000..9ffe95596 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/cfg/fileTransfer/ftpSubList.jsp @@ -0,0 +1,214 @@ +<%@ page contentType="text/html;charset=UTF-8"%> +<%@ include file="/WEB-INF/include/taglib.jsp"%> + + + + + + + +
+ + +
+
+ +
+ + + + +
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+
+
+ + +
+
+
+
+ +
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+
+
+
+ + + +
+
+
+
+ +
+
+
+
+ + +
+
+ +
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+ +
+
+
+
+
+
+
+ <%-- + + +
+
+
+
+ +
+
+
+
+ + +
+
+
+ +
+
+
+
--%> +
+ \ No newline at end of file diff --git a/src/main/webapp/static/global/css/components.css b/src/main/webapp/static/global/css/components.css index 2c60cefe0..91118b18c 100644 --- a/src/main/webapp/static/global/css/components.css +++ b/src/main/webapp/static/global/css/components.css @@ -22546,7 +22546,7 @@ transition: background-color .1s ease-in-out; border-bottom: 0px } .content { - width: 1050px; + width: 80%; background-color: #f6f3f3; border: 1px solid #c2cad8; padding: 5px;