(1)dns策略Id类型修复,解决不能copy value

(2)导入模板验证是否合法,根据title判断,如果不同语言的导入模板,也会被判定不合法。
(3)注掉部分废弃导入方法
This commit is contained in:
wangxin
2018-10-24 13:32:30 +08:00
parent 068e1e696e
commit 92b389914d
12 changed files with 101 additions and 41 deletions

View File

@@ -91,12 +91,12 @@ public class ComplexkeywordCfg extends BaseCfg<ComplexkeywordCfg>{
/**
* copy属性使用
*/
protected Integer dnsStrategyId;
protected Long dnsStrategyId;
public Integer getDnsStrategyId() {
public Long getDnsStrategyId() {
return dnsStrategyId;
}
public void setDnsStrategyId(Integer dnsStrategyId) {
public void setDnsStrategyId(Long dnsStrategyId) {
this.dnsStrategyId = dnsStrategyId;
}
/**

View File

@@ -14,13 +14,13 @@ import com.nis.util.excel.ExcelField;
* @Description: excel导入DNS字符串类配置
*/
public class DnsComplexStringTemplate extends ComplexStringAllTemplate {
private Integer dnsStrategyId;
private Long dnsStrategyId;
@ExcelField(title="policy_name",align=2,sort=2)
public Integer getDnsStrategyId() {
public Long getDnsStrategyId() {
return dnsStrategyId;
}
public void setDnsStrategyId(Integer dnsStrategyId) {
public void setDnsStrategyId(Long dnsStrategyId) {
this.dnsStrategyId = dnsStrategyId;
}
}

View File

@@ -14,6 +14,7 @@ import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.List;
import java.util.Properties;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
@@ -29,6 +30,10 @@ import org.slf4j.LoggerFactory;
import org.springframework.web.multipart.MultipartFile;
import com.google.common.collect.Lists;
import com.nis.domain.configuration.template.ComplexStringAllTemplate;
import com.nis.domain.configuration.template.IpAllTemplate;
import com.nis.domain.configuration.template.StringAllTemplate;
import com.nis.exceptions.ServiceException;
import com.nis.util.DictUtils;
import com.nis.util.Reflections;
@@ -280,7 +285,7 @@ public class ImportExcel {
* @param cls 导入对象类型
* @param groups 导入分组
*/
public <E> List<E> getDataList(Class<E> cls, int... groups) throws InstantiationException, IllegalAccessException{
public <E> List<E> getDataList(Class<E> cls,Properties props, int... groups) throws InstantiationException, IllegalAccessException{
List<Object[]> annotationList = Lists.newArrayList();
// Get annotation field
// Field[] fs = cls.getDeclaredFields();
@@ -338,22 +343,76 @@ public class ImportExcel {
}
}
}
//log.debug("Import column count:"+annotationList.size());
// Get excel data
List<E> dataList = Lists.newArrayList();
Row header = this.getRow(headerNum);
List<Object[]> annotationListCopy=Lists.newArrayList();
for(int i=header.getFirstCellNum();i<=header.getLastCellNum();i++) {
Object value=this.getCellValue(header, i);
for(Object[] os:annotationList) {
ExcelField ef = (ExcelField)os[0];
String title=ef.title();
if(props.getProperty(title).equals(value.toString())) {
annotationListCopy.add(os);
break;
}
}
}
if(annotationListCopy.size()==0) {
throw new ServiceException(props.getProperty("template_error"));
}
if(IpAllTemplate.class.isAssignableFrom(cls)||cls.getSimpleName().equals("IpAllTemplate")) {
boolean has=false;
for(Object[] os:annotationListCopy) {
ExcelField ef = (ExcelField)os[0];
if(ef.title().equals("client_ip")||ef.title().equals("server_ip")) {
has=true;
break;
}
}
if(!has) {
throw new ServiceException(props.getProperty("template_error"));
}
}else if(StringAllTemplate.class.isAssignableFrom(cls)||cls.getSimpleName().equals("StringAllTemplate")){
boolean has=false;
for(Object[] os:annotationListCopy) {
ExcelField ef = (ExcelField)os[0];
if(ef.title().equals("key_word")) {
has=true;
break;
}
}
if(!has) {
throw new ServiceException(props.getProperty("template_error"));
}
}else if(ComplexStringAllTemplate.class.isAssignableFrom(cls)||cls.getSimpleName().equals("ComplexStringAllTemplate")){
boolean has=false;
for(Object[] os:annotationListCopy) {
ExcelField ef = (ExcelField)os[0];
if(ef.title().equals("key_word")) {
has=true;
break;
}
}
if(!has) {
throw new ServiceException(props.getProperty("template_error"));
}
}
// Field sorting
Collections.sort(annotationList, new Comparator<Object[]>() {
Collections.sort(annotationListCopy, new Comparator<Object[]>() {
public int compare(Object[] o1, Object[] o2) {
return new Integer(((ExcelField)o1[0]).sort()).compareTo(
new Integer(((ExcelField)o2[0]).sort()));
};
});
//log.debug("Import column count:"+annotationList.size());
// Get excel data
List<E> dataList = Lists.newArrayList();
annotationList.clear();
for (int i = this.getDataRowNum(); i < this.getLastDataRowNum(); i++) {
E e = (E)cls.newInstance();
int column = 0;
Row row = this.getRow(i);
StringBuilder sb = new StringBuilder();
for (Object[] os : annotationList){
for (Object[] os : annotationListCopy){
Object val = this.getCellValue(row, column++);
if (val != null){
ExcelField ef = (ExcelField)os[0];

View File

@@ -1033,9 +1033,9 @@ public class BaseController {
BeanUtils.copyProperties(list.get(i), baseStringCfg);
if (regionDict.getRegionType().equals(3)) {
if(regionDict.getFunctionId().equals(7)) {
Integer dnsStrategyId=baseStringCfg.getDnsStrategyId();
Long dnsStrategyId=baseStringCfg.getDnsStrategyId();
if(dnsStrategyId!=null) {
List<DnsResStrategy> dnsStrategys=dnsResStrategyService.findDnsResStrategys(Long.valueOf(dnsStrategyId), Constants.VALID_YES, Constants.AUDIT_YES);
List<DnsResStrategy> dnsStrategys=dnsResStrategyService.findDnsResStrategys(dnsStrategyId, Constants.VALID_YES, Constants.AUDIT_YES);
if(dnsStrategys==null||dnsStrategys.size()==0) {
errInfo.append(String.format(prop.getProperty("is_incorrect"), prop.getProperty("dns_res_strategy"))+";");
}
@@ -1054,8 +1054,7 @@ public class BaseController {
//baseStringCfg.setDistrict(dirtrictP.split(",")[0]);
errInfo.append(String.format(prop.getProperty("can_not_null"), prop.getProperty("district")+" ")+";");
}
}
if(dirtrictP.indexOf(district)==-1) {
}else if(dirtrictP.indexOf(district)==-1) {
errInfo.append(String.format(prop.getProperty("is_incorrect"), prop.getProperty("district")+" ")+";");
}
}
@@ -2930,37 +2929,37 @@ public class BaseController {
if (regionDict.getRegionType().equals(1)) {//IP
if (regionDict.getFunctionId().equals(5)) {
if (serviceDict.getAction().equals(64)) {
List<IpRateLimitTemplate> list = ei.getDataList(IpRateLimitTemplate.class);
List<IpRateLimitTemplate> list = ei.getDataList(IpRateLimitTemplate.class,this.getMsgProp());
ipPortCfgs = this.checkIpCfg(serviceDict, regionDict, list);
}else {
List<IpAllTemplate> list = ei.getDataList(IpAllTemplate.class);
List<IpAllTemplate> list = ei.getDataList(IpAllTemplate.class,this.getMsgProp());
ipPortCfgs = this.checkIpCfg(serviceDict, regionDict, list);
}
}else if(regionDict.getFunctionId().equals(212)) {
List<IpPayloadTemplate> list = ei.getDataList(IpPayloadTemplate.class);
List<IpPayloadTemplate> list = ei.getDataList(IpPayloadTemplate.class,this.getMsgProp());
ipPortCfgs = this.checkIpCfg(serviceDict, regionDict, list);
}else if(regionDict.getFunctionId().equals(510) && "p2p_ip".equals(regionDict.getConfigServiceType())){ //P2p IP
List<P2pIpTemplate> list = ei.getDataList(P2pIpTemplate.class);
List<P2pIpTemplate> list = ei.getDataList(P2pIpTemplate.class,this.getMsgProp());
ipPortCfgs = this.checkIpCfg(serviceDict, regionDict, list);
}else {
List<IpAllTemplate> list = ei.getDataList(IpAllTemplate.class);
List<IpAllTemplate> list = ei.getDataList(IpAllTemplate.class,this.getMsgProp());
ipPortCfgs = this.checkIpCfg(serviceDict, regionDict, list);
}
}else if(regionDict.getRegionType().equals(2)) {//字符串类
if(regionDict.getFunctionId().equals(510) && "p2p_hash".equals(regionDict.getConfigServiceType())){ //P2p hash
List<P2pHashStringTemplate> list = ei.getDataList(P2pHashStringTemplate.class);
List<P2pHashStringTemplate> list = ei.getDataList(P2pHashStringTemplate.class,this.getMsgProp());
stringCfgs=this.checkStringCfg(serviceDict, regionDict, list);
}else{
List<StringAllTemplate> list = ei.getDataList(StringAllTemplate.class);
List<StringAllTemplate> list = ei.getDataList(StringAllTemplate.class,this.getMsgProp());
stringCfgs=this.checkStringCfg(serviceDict, regionDict, list);
}
}else if(regionDict.getRegionType().equals(3)) {//增强字符串类
if(regionDict.getFunctionId().equals(7)) {
List<DnsComplexStringTemplate> list = ei.getDataList(DnsComplexStringTemplate.class);
List<DnsComplexStringTemplate> list = ei.getDataList(DnsComplexStringTemplate.class,this.getMsgProp());
complexkeywordCfgs=this.checkComplexStringCfg(serviceDict, regionDict, list);
}else {
List<ComplexStringAllTemplate> list = ei.getDataList(ComplexStringAllTemplate.class);
List<ComplexStringAllTemplate> list = ei.getDataList(ComplexStringAllTemplate.class,this.getMsgProp());
complexkeywordCfgs=this.checkComplexStringCfg(serviceDict, regionDict, list);
}

View File

@@ -226,7 +226,7 @@ public class CommonController extends BaseController {
addMessage(redirectAttributes, "audit_failed");
}
}
public void _importIp(RedirectAttributes redirectAttributes,MultipartFile file,IpPortCfg ipCfg) {
/*public void _importIp(RedirectAttributes redirectAttributes,MultipartFile file,IpPortCfg ipCfg) {
try {
ImportExcel ei = new ImportExcel(file, 0, 0);
List<IpCfgTemplate> list = ei.getDataList(IpCfgTemplate.class);
@@ -251,8 +251,8 @@ public class CommonController extends BaseController {
addMessage(redirectAttributes, e.getMessage());
e.printStackTrace();
}
}
public void _importIp(String cfgName,RedirectAttributes redirectAttributes,MultipartFile file,IpPortCfg ipCfg,Class clazz) {
}*/
/*public void _importIp(String cfgName,RedirectAttributes redirectAttributes,MultipartFile file,IpPortCfg ipCfg,Class clazz) {
redirectAttributes.addAttribute("cfgName", cfgName);
try {
ImportExcel ei = new ImportExcel(file, 0, 0);
@@ -279,7 +279,7 @@ public class CommonController extends BaseController {
addMessage(redirectAttributes, e.getMessage());
e.printStackTrace();
}
}
}*/
public void _importFileTemplate(HttpServletRequest request,HttpServletResponse response,
RedirectAttributes redirectAttributes,Integer functionId,Integer cfgRegionCode) {
this.importCfgTemplate(request, response, redirectAttributes, functionId, cfgRegionCode);

View File

@@ -91,14 +91,14 @@ public class IpMultiplexController extends CommonController {
return "redirect:" + adminPath +"/manipulation/ipmulitiplex/list?functionId="+cfg.getFunctionId();
}
//ip配置导入
@RequestMapping(value = "/import", method=RequestMethod.POST)
/*@RequestMapping(value = "/import", method=RequestMethod.POST)
public String importIp(String cfgName,RedirectAttributes redirectAttributes,
@RequestParam("file") MultipartFile file,IpPortCfg cfg) {
this._importIp(cfgName,redirectAttributes, file,cfg,IpMultiplexPolicyTemplate.class);
redirectAttributes.addAttribute("urlPrefix","/manipulation/ipmulitiplex");
redirectAttributes.addAttribute("requiresPermissionPrefix","ip:mulitiplex");
return "redirect:" + adminPath +"/manipulation/ipmulitiplex/list?functionId="+cfg.getFunctionId();
}
}*/
//ip模板下载
@RequestMapping(value = "import/template")
public void importFileTemplate(HttpServletRequest request,HttpServletResponse response,

View File

@@ -113,14 +113,14 @@ public class RatelimitController extends CommonController {
return "redirect:" + adminPath +"/manipulation/ratelimit/domain/list?functionId="+cfg.getFunctionId();
}
//ip配置导入
@RequestMapping(value = "/ip/import", method=RequestMethod.POST)
/*@RequestMapping(value = "/ip/import", method=RequestMethod.POST)
public String importIp(String cfgName,RedirectAttributes redirectAttributes,
@RequestParam("file") MultipartFile file,IpPortCfg cfg) {
this._importIp(cfgName,redirectAttributes, file,cfg,IpRateLimitTemplate.class);
redirectAttributes.addAttribute("urlPrefix","/manipulation/ratelimit/ip");
redirectAttributes.addAttribute("requiresPermissionPrefix","ip:ratelimit");
return "redirect:" + adminPath +"/manipulation/ratelimit/ip/list?functionId="+cfg.getFunctionId();
}
}*/
@RequestMapping(value = "/ip/import/template")
public void importFileTemplate(HttpServletRequest request,HttpServletResponse response,
RedirectAttributes redirectAttributes,Integer functionId,Integer cfgRegionCode) {

View File

@@ -413,7 +413,7 @@ public class WebsiteController extends BaseController{
this.importCfgTemplate(request, response, redirectAttributes, functionId, cfgRegionCode);
}
//http配置导入
@RequestMapping(value = "importHttp", method=RequestMethod.POST)
/*@RequestMapping(value = "importHttp", method=RequestMethod.POST)
public String importHttpFile(HttpServletRequest request,Model model,HttpServletResponse response, RedirectAttributes redirectAttributes,
@RequestParam("file") MultipartFile file,CfgIndexInfo cfgIndex,Integer protocolId) {
try {
@@ -518,7 +518,7 @@ public class WebsiteController extends BaseController{
}
return "redirect:" + adminPath +"/ntc/website/httpList?functionId="+cfgIndex.getFunctionId();
}
}*/

View File

@@ -234,12 +234,12 @@ public class WhiteListController extends CommonController{
return "redirect:" + adminPath +"/ntc/whitelist/domain/list?functionId="+functionId;
}
//ip配置导入
@RequestMapping(value = "ip/import", method=RequestMethod.POST)
/*@RequestMapping(value = "ip/import", method=RequestMethod.POST)
public String importIp(String cfgName,RedirectAttributes redirectAttributes,
@RequestParam("file") MultipartFile file,IpPortCfg cfg) {
this._importIp(cfgName,redirectAttributes, file,cfg,WhiteListIpTemplate.class);
return "redirect:" + adminPath +"/ntc/whitelist/ip/list?functionId="+cfg.getFunctionId();
}
}*/
//ip模板下载
@RequestMapping(value = "ip/import/template")
public void importFileTemplate(HttpServletRequest request,HttpServletResponse response,

View File

@@ -152,7 +152,7 @@ public class SpecificServiceHostCfgController extends BaseController {
}
return "redirect:"+adminPath+"/specific/specificServiceHostCfg/list";
}
@RequiresPermissions("specific:serviceIp:edit")
/*@RequiresPermissions("specific:serviceIp:edit")
@RequestMapping(value = "import", method=RequestMethod.POST)
public String importFile(HttpServletRequest request,Model model,HttpServletResponse response, RedirectAttributes redirectAttributes,
@RequestParam("file") MultipartFile file) {
@@ -195,7 +195,7 @@ public class SpecificServiceHostCfgController extends BaseController {
}
return "redirect:"+adminPath+"/specific/specificServiceHostCfg/list";
// return renderString(response,errorInfos);
}
}*/
/**
* 校验spec_service_id重复
* @param newId

View File

@@ -1287,4 +1287,5 @@ http_keyword=Website Keyword
http_keyword_monit=Website Keyword Monit
http_keyword_reject=Website Keyword Reject
has_invisible_char=%s has invisible characters
not_multiple=%s do not support multiple keywords
not_multiple=%s do not support multiple keywords
template_error=The import template is incorrect. Pleace choose a proper template which has the same language with the system and the same configure type.

View File

@@ -1282,4 +1282,5 @@ http_keyword=\u7F51\u9875\u5173\u952E\u5B57
http_keyword_monit=\u7F51\u9875\u5173\u952E\u5B57\u76D1\u6D4B
http_keyword_reject=\u7F51\u9875\u5173\u952E\u5B57\u963B\u65AD
has_invisible_char=%s\u5305\u542B\u4E0D\u53EF\u89C1\u5B57\u7B26
not_multiple=%s\u4E0D\u652F\u6301\u591A\u4E2A\u5173\u952E\u5B57
not_multiple=%s\u4E0D\u652F\u6301\u591A\u4E2A\u5173\u952E\u5B57
template_error=\u5BFC\u5165\u6A21\u677F\u9519\u8BEF.\u8BF7\u9009\u62E9\u4E0E\u7CFB\u7EDF\u8BED\u8A00\u4E00\u81F4\uFF0C\u5E76\u4E14\u914D\u7F6E\u7C7B\u578B\u4E00\u81F4\u7684\u6A21\u677F\u5BFC\u5165.