feat: 对接MeshSafe文件安全检测(上传/解包自动送检+轮询回写,不通过禁止分享传输,文件夹确认后仅分享通过内容,人工复核/重新检测,meshsafe.enabled总开关)
This commit is contained in:
@@ -9,6 +9,7 @@ import com.senmesh.sfile.dto.ExpandUserFileCreateDTO;
|
||||
import com.senmesh.sfile.dto.ShareUserFileCreateDTO;
|
||||
import com.senmesh.sfile.dto.UserFileDTO;
|
||||
import com.senmesh.sfile.dto.UserFileQueryDTO;
|
||||
import com.senmesh.sfile.service.FileSecurityService;
|
||||
import com.senmesh.sfile.service.ShareUserFileService;
|
||||
import com.senmesh.sfile.service.UserFileService;
|
||||
import java.util.List;
|
||||
@@ -28,6 +29,9 @@ public class ShareUserFileServiceImpl implements ShareUserFileService {
|
||||
@Autowired
|
||||
private UserFileService userFileService;
|
||||
|
||||
@Autowired
|
||||
private FileSecurityService fileSecurityService;
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public Long create(ShareUserFileCreateDTO createDTO) {
|
||||
@@ -35,6 +39,10 @@ public class ShareUserFileServiceImpl implements ShareUserFileService {
|
||||
Long userId = UserContextHolder.getExistLoginUserId();
|
||||
Integer validDays = createDTO.getValidDays();
|
||||
|
||||
// MeshSafe安全检测校验:单文件不通过直接拦截;文件夹确认跳过时仅分享通过的内容
|
||||
List<Long> excludeIds = fileSecurityService.resolveShareExclusions(
|
||||
userFileId, Boolean.TRUE.equals(createDTO.getOnlyPassed()), "分享");
|
||||
|
||||
// 根据有效天数计算过期时间
|
||||
Calendar calendar = Calendar.getInstance();
|
||||
calendar.setTime(new Date());
|
||||
@@ -52,6 +60,7 @@ public class ShareUserFileServiceImpl implements ShareUserFileService {
|
||||
.fileStatus(FileStatusEnum.NORMAL.getStatus())
|
||||
.accessCode(accessCode)
|
||||
.endTime(endTime)
|
||||
.excludeFileIds(excludeIds)
|
||||
.build();
|
||||
return userFileService.create(expandCreateDTO).getFolder().getId();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user