ip_type all时,只有ip非空时,切换默认值

证书模块文件校验
ip掩码验证,非掩码范围增加掩码范围提示
国际化sourse和dest修改为client和server
国际化俄文提交
This commit is contained in:
duandongmei
2018-09-14 11:29:17 +08:00
parent 95892b46d5
commit 023317f2e4
7 changed files with 1181 additions and 969 deletions

View File

@@ -49,12 +49,14 @@ public class MultipartFileIntercepter extends CommonsMultipartResolver{
boolean isSampleFileUpload = request.getRequestURI().toLowerCase().contains(Constants.SAMPLE_UPLOAD_URL_KEYWORD);
//摘要文件URI
boolean isDigestFileUpload = request.getRequestURI().toLowerCase().contains(Constants.DIGEST_UPLOAD_URL_KEYWORD);
FileUpload fileUpload = this.prepareFileUpload(encoding,isSampleFileUpload,isDigestFileUpload);
//证书文件URI
boolean isCertFileUpload = request.getRequestURI().toLowerCase().contains(Constants.CERT_UPLOAD_URL_KEYWORD);
FileUpload fileUpload = this.prepareFileUpload(encoding,isSampleFileUpload,isDigestFileUpload,isCertFileUpload);
long fileUploadTotalSize=0l;
Properties languageProp=getMsgProp();
MultipartParsingResult multipartParsingResult=null;
try {
if(isSampleFileUpload || isDigestFileUpload){
if(isSampleFileUpload || isDigestFileUpload || isCertFileUpload){
/*****************预先获取上传文件的总的大小************/
FileUpload fileUploadTotal = fileUpload;
ServletRequestContext ctx = new ServletRequestContext(request);
@@ -110,6 +112,8 @@ public class MultipartFileIntercepter extends CommonsMultipartResolver{
String errorInfo="";
String fileTypes="";
long fileMaxSize=0l;
String privateFileTypes="";
long privateFileMaxSize=0l;
if(functionId.equals(52)){ //digest
fileTypes=Constants.DIGEST_FILE_TYPE;
fileMaxSize=Constants.DIGEST_SINGLE_FILE_MAX_SIZE;
@@ -134,6 +138,11 @@ public class MultipartFileIntercepter extends CommonsMultipartResolver{
}else if(functionId.equals(632)){ //人脸识别
fileTypes=Constants.FACE_FILE_TYPE;
fileMaxSize=Constants.FACE_SINGLE_FILE_MAX_SIZE;
}else if(functionId.equals(570)){ //证书管理
fileTypes=Constants.PUBLIC_FILE_TYPE;
fileMaxSize=Constants.PUBLIC_SINGLE_FILE_MAX_SIZE;
privateFileTypes=Constants.PRIVATE_FILE_TYPE;
privateFileMaxSize=Constants.PRIVATE_SINGLE_FILE_MAX_SIZE;
}else{
return;
}
@@ -143,13 +152,26 @@ public class MultipartFileIntercepter extends CommonsMultipartResolver{
for (String fileName : multipartFile.keySet()) {
MultipartFile file= multipartFile.getFirst(fileName);
//文件类型错误
if(fileTypes.indexOf(","+FileUtils.getSuffix(file.getOriginalFilename().toLowerCase(), false)+",") == -1){
throw new MultiPartNewException(errorInfo,file.getOriginalFilename(),fileTypes.substring(0,fileTypes.length()-1).substring(1),prop,null);
}
if(file.getSize() > fileMaxSize){
throw new MultiPartNewException(errorInfo, file.getOriginalFilename(), file.getSize(), fileMaxSize,prop, null);
//私钥文件校验
if(!StringUtil.isEmpty(fileName) && fileName.toLowerCase().equals("privatekeyfilei")){
//文件类型错误
if(privateFileTypes.indexOf(","+FileUtils.getSuffix(file.getOriginalFilename().toLowerCase(), false)+",") == -1){
throw new MultiPartNewException(errorInfo,file.getOriginalFilename(),privateFileTypes.substring(0,privateFileTypes.length()-1).substring(1),prop,null);
}
if(file.getSize() > privateFileMaxSize){
throw new MultiPartNewException(errorInfo, file.getOriginalFilename(), file.getSize(), privateFileMaxSize,prop, null);
}
//其他文件校验
}else{
//文件类型错误
if(fileTypes.indexOf(","+FileUtils.getSuffix(file.getOriginalFilename().toLowerCase(), false)+",") == -1){
throw new MultiPartNewException(errorInfo,file.getOriginalFilename(),fileTypes.substring(0,fileTypes.length()-1).substring(1),prop,null);
}
if(file.getSize() > fileMaxSize){
throw new MultiPartNewException(errorInfo, file.getOriginalFilename(), file.getSize(), fileMaxSize,prop, null);
}
}
}
}
/**
@@ -158,7 +180,7 @@ public class MultipartFileIntercepter extends CommonsMultipartResolver{
* @param isSampleFileUpload
* @return
*/
protected FileUpload prepareFileUpload(String encoding,boolean isSampleFileUpload,boolean isDigestFileUpload) {
protected FileUpload prepareFileUpload(String encoding,boolean isSampleFileUpload,boolean isDigestFileUpload,boolean isCertFileUpload) {
FileUpload fileUpload = getFileUpload();
FileUpload actualFileUpload = fileUpload;
if (encoding != null && !encoding.equals(fileUpload.getHeaderEncoding())) {
@@ -168,6 +190,8 @@ public class MultipartFileIntercepter extends CommonsMultipartResolver{
actualFileUpload.setSizeMax(Constants.SAMPLE_TOTAL_FILE_MAX_SIZE);
}else if(isDigestFileUpload){
actualFileUpload.setSizeMax(Constants.DIGEST_TOTAL_FILE_MAX_SIZE);
}else if(isCertFileUpload){
actualFileUpload.setSizeMax(Constants.CERT_TOTAL_FILE_MAX_SIZE);
}else{
actualFileUpload.setSizeMax(fileUpload.getSizeMax());
}

View File

@@ -514,6 +514,10 @@ public final class Constants {
* 摘要文件URL关键字
*/
public static final String DIGEST_UPLOAD_URL_KEYWORD = Configurations.getStringProperty("digest_upload_url_keyword","fileTransfer");
/**
* 证书文件URL关键字
*/
public static final String CERT_UPLOAD_URL_KEYWORD = Configurations.getStringProperty("cert_upload_url_keyword","/intercept/strateagy");
/**
* 样例文件限制总文件大小
*/
@@ -578,6 +582,14 @@ public final class Constants {
* 摘要文件支持文件类型
*/
public static final String DIGEST_FILE_TYPE = Configurations.getStringProperty("digest_file_type","");
/**
* 公钥文件支持文件类型
*/
public static final String PUBLIC_FILE_TYPE = Configurations.getStringProperty("public_file_type","");
/**
* 私钥文件支持文件类型
*/
public static final String PRIVATE_FILE_TYPE = Configurations.getStringProperty("private_file_type","");
/**
* 摘要文件限制单个文件大小
*/
@@ -586,7 +598,19 @@ public final class Constants {
* 摘要文件限制总文件大小
*/
public static final long DIGEST_TOTAL_FILE_MAX_SIZE = Configurations.getLongProperty("digest_total_file_max_size",52428800l);//50M
/**
* 证书文件限制总文件大小
*/
public static final long CERT_TOTAL_FILE_MAX_SIZE = Configurations.getLongProperty("cert_total_file_max_size",52428800l);//50M
/**
* 公钥文件限制单个文件大小
*/
public static final long PUBLIC_SINGLE_FILE_MAX_SIZE = Configurations.getLongProperty("public_single_file_max_size",10485760l);//10M
/**
* 私钥文件限制单个文件大小
*/
public static final long PRIVATE_SINGLE_FILE_MAX_SIZE = Configurations.getLongProperty("private_single_file_max_size",10485760l);//10M
//YSP文件特征配置相关参数用于调用外部程序生成特征文件时使用
public static final String AV_FILE_PATH = Configurations.getStringProperty("av_file_path", "/home/ysp/");
public static final String AV_SAMPLE_AUDIO_REGION = Configurations.getStringProperty("av_sample_audio_region", "av_sample_audio");