mirror of https://gitee.com/stylefeng/roses
【7.2.5】【file】更新文件名称过滤
parent
061f63d256
commit
61f59e410c
|
@ -0,0 +1,24 @@
|
||||||
|
package cn.stylefeng.roses.kernel.rule.util;
|
||||||
|
|
||||||
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 字符串过滤工具,主要过滤不合法的请求参数
|
||||||
|
*
|
||||||
|
* @author fengshuonan
|
||||||
|
* @date 2022/9/19 13:37
|
||||||
|
*/
|
||||||
|
public class StrFilterUtil {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 过滤文件名
|
||||||
|
*
|
||||||
|
* @author fengshuonan
|
||||||
|
* @date 2022/9/19 13:39
|
||||||
|
*/
|
||||||
|
public static String filterFileName(String param) {
|
||||||
|
Pattern fileNamePattern = Pattern.compile("[\\\\/:*?\"<>|\\s]");
|
||||||
|
return fileNamePattern.matcher(param).replaceAll("");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -56,6 +56,7 @@ import cn.stylefeng.roses.kernel.file.modular.mapper.SysFileInfoMapper;
|
||||||
import cn.stylefeng.roses.kernel.file.modular.service.SysFileInfoService;
|
import cn.stylefeng.roses.kernel.file.modular.service.SysFileInfoService;
|
||||||
import cn.stylefeng.roses.kernel.file.modular.service.SysFileStorageService;
|
import cn.stylefeng.roses.kernel.file.modular.service.SysFileStorageService;
|
||||||
import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum;
|
import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum;
|
||||||
|
import cn.stylefeng.roses.kernel.rule.util.StrFilterUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
||||||
|
@ -151,7 +152,8 @@ public class SysFileInfoServiceImpl extends ServiceImpl<SysFileInfoMapper, SysFi
|
||||||
// 拼接文件可直接访问的url
|
// 拼接文件可直接访问的url
|
||||||
String fileAuthUrl;
|
String fileAuthUrl;
|
||||||
if (YesOrNotEnum.Y.getCode().equals(sysFileInfoRequest.getSecretFlag())) {
|
if (YesOrNotEnum.Y.getCode().equals(sysFileInfoRequest.getSecretFlag())) {
|
||||||
fileAuthUrl = fileOperatorApi.getFileAuthUrl(sysFileInfo.getFileBucket(), sysFileInfo.getFileObjectName(), FileConfigExpander.getDefaultFileTimeoutSeconds() * 1000);
|
fileAuthUrl = fileOperatorApi.getFileAuthUrl(sysFileInfo.getFileBucket(), sysFileInfo.getFileObjectName(),
|
||||||
|
FileConfigExpander.getDefaultFileTimeoutSeconds() * 1000);
|
||||||
} else {
|
} else {
|
||||||
fileAuthUrl = fileOperatorApi.getFileUnAuthUrl(sysFileInfo.getFileBucket(), sysFileInfo.getFileObjectName());
|
fileAuthUrl = fileOperatorApi.getFileUnAuthUrl(sysFileInfo.getFileBucket(), sysFileInfo.getFileObjectName());
|
||||||
}
|
}
|
||||||
|
@ -243,7 +245,8 @@ public class SysFileInfoServiceImpl extends ServiceImpl<SysFileInfoMapper, SysFi
|
||||||
List<SysFileInfoListResponse> list = this.baseMapper.fileInfoList(page, sysFileInfoRequest);
|
List<SysFileInfoListResponse> list = this.baseMapper.fileInfoList(page, sysFileInfoRequest);
|
||||||
|
|
||||||
// 排除defaultAvatar.png这个图片,这个是默认头像
|
// 排除defaultAvatar.png这个图片,这个是默认头像
|
||||||
List<SysFileInfoListResponse> newList = list.stream().filter(i -> !i.getFileOriginName().equals(FileConstants.DEFAULT_AVATAR_FILE_OBJ_NAME)).collect(Collectors.toList());
|
List<SysFileInfoListResponse> newList = list.stream().filter(i -> !i.getFileOriginName().equals(FileConstants.DEFAULT_AVATAR_FILE_OBJ_NAME))
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
// 拼接图片url地址
|
// 拼接图片url地址
|
||||||
for (SysFileInfoListResponse sysFileInfoListResponse : newList) {
|
for (SysFileInfoListResponse sysFileInfoListResponse : newList) {
|
||||||
|
@ -373,6 +376,10 @@ public class SysFileInfoServiceImpl extends ServiceImpl<SysFileInfoMapper, SysFi
|
||||||
@Override
|
@Override
|
||||||
public void previewByBucketAndObjName(SysFileInfoRequest sysFileInfoRequest, HttpServletResponse response) {
|
public void previewByBucketAndObjName(SysFileInfoRequest sysFileInfoRequest, HttpServletResponse response) {
|
||||||
|
|
||||||
|
if (StrUtil.isNotBlank(sysFileInfoRequest.getFileObjectName())) {
|
||||||
|
sysFileInfoRequest.setFileObjectName(StrFilterUtil.filterFileName(sysFileInfoRequest.getFileObjectName()));
|
||||||
|
}
|
||||||
|
|
||||||
// 判断文件是否需要鉴权,需要鉴权的需要带token访问
|
// 判断文件是否需要鉴权,需要鉴权的需要带token访问
|
||||||
LambdaQueryWrapper<SysFileInfo> wrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<SysFileInfo> wrapper = new LambdaQueryWrapper<>();
|
||||||
wrapper.eq(SysFileInfo::getFileObjectName, sysFileInfoRequest.getFileObjectName());
|
wrapper.eq(SysFileInfo::getFileObjectName, sysFileInfoRequest.getFileObjectName());
|
||||||
|
@ -452,7 +459,8 @@ public class SysFileInfoServiceImpl extends ServiceImpl<SysFileInfoMapper, SysFi
|
||||||
return this.sysFileStorageService.getFileAuthUrl(String.valueOf(fileId));
|
return this.sysFileStorageService.getFileAuthUrl(String.valueOf(fileId));
|
||||||
} else {
|
} else {
|
||||||
// 返回第三方存储文件url
|
// 返回第三方存储文件url
|
||||||
return fileOperatorApi.getFileAuthUrl(sysFileInfo.getFileBucket(), sysFileInfo.getFileObjectName(), FileConfigExpander.getDefaultFileTimeoutSeconds());
|
return fileOperatorApi.getFileAuthUrl(sysFileInfo.getFileBucket(), sysFileInfo.getFileObjectName(),
|
||||||
|
FileConfigExpander.getDefaultFileTimeoutSeconds());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue