1。流程报告生成优化
2.登录认证优化
This commit is contained in:
@@ -1,60 +1,19 @@
|
||||
package com.sdm.data.filter;
|
||||
|
||||
import com.sdm.common.common.ThreadLocalContext;
|
||||
import com.sdm.common.config.WhitelistProperties;
|
||||
import jakarta.servlet.*;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import com.sdm.common.filter.BaseAuthFilter;
|
||||
import jakarta.servlet.FilterChain;
|
||||
import jakarta.servlet.ServletException;
|
||||
import jakarta.servlet.ServletRequest;
|
||||
import jakarta.servlet.ServletResponse;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.util.AntPathMatcher;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
|
||||
@Slf4j
|
||||
public class AuthFilter implements Filter {
|
||||
@Autowired
|
||||
private WhitelistProperties whitelistProperties;
|
||||
|
||||
private List<String> excludedPaths;
|
||||
private final AntPathMatcher pathMatcher = new AntPathMatcher();
|
||||
|
||||
@Override
|
||||
public void init(FilterConfig filterConfig) throws ServletException {
|
||||
Filter.super.init(filterConfig);
|
||||
// 从初始化参数中读取白名单
|
||||
excludedPaths = whitelistProperties.getPaths();
|
||||
log.info("----------- AuthFilter init ----------");
|
||||
}
|
||||
public class AuthFilter extends BaseAuthFilter {
|
||||
|
||||
@Override
|
||||
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
|
||||
if (servletRequest instanceof HttpServletRequest) {
|
||||
HttpServletRequest req = (HttpServletRequest) servletRequest;
|
||||
String path = req.getRequestURI().substring(req.getContextPath().length());
|
||||
// 检查当前请求是否在白名单中
|
||||
for (String excludedPath : excludedPaths) {
|
||||
if (pathMatcher.match(excludedPath, path)) {
|
||||
filterChain.doFilter(servletRequest, servletResponse);
|
||||
return;
|
||||
}
|
||||
}
|
||||
if(!ThreadLocalContext.verifyRequest(req))
|
||||
{
|
||||
HttpServletResponse response = (HttpServletResponse) servletResponse;
|
||||
response.setStatus(HttpServletResponse.SC_UNAUTHORIZED); // 401
|
||||
response.setContentType("application/json;charset=UTF-8");
|
||||
response.getWriter().write("{\"code\":401,\"message\":\"未登录或认证信息缺失\"}");
|
||||
return;
|
||||
}
|
||||
}
|
||||
filterChain.doFilter(servletRequest, servletResponse);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void destroy() {
|
||||
Filter.super.destroy();
|
||||
log.info("----------- AuthFilter destroy ----------");
|
||||
super.doFilter(servletRequest, servletResponse, filterChain);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,6 +32,10 @@ public class UpdateFileReq {
|
||||
@Schema(description = "关联项目id")
|
||||
private String projectId;
|
||||
|
||||
// 原有的字段暂时保留或改名
|
||||
@Schema(description = "关联工况库信息(JSON字符串)")
|
||||
private String simulationPoolInfoListStr;
|
||||
|
||||
@Schema(description = "关联工况库信息")
|
||||
private List<SimulationPoolInfo> simulationPoolInfoList;
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.sdm.data.service.impl;
|
||||
|
||||
import com.alibaba.fastjson2.JSON;
|
||||
import com.alibaba.fastjson2.JSONArray;
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
@@ -1323,7 +1324,7 @@ public class MinioFileIDataFileServiceImpl implements IDataFileService {
|
||||
}
|
||||
|
||||
|
||||
String originalName = req.getFileName();
|
||||
String originalName = ObjectUtils.isNotEmpty(req.getFileName())?req.getFileName():req.getFile().getOriginalFilename();
|
||||
String versionSuffix = "_V1";
|
||||
String modifiedFileName;
|
||||
|
||||
@@ -1347,7 +1348,7 @@ public class MinioFileIDataFileServiceImpl implements IDataFileService {
|
||||
minioService.uploadFile(req.getFile(), fileMinioObjectKey, null);
|
||||
|
||||
// 创建目录元数据并保存到数据库
|
||||
FileMetadataInfo fileInfo = createFileMetadata(fileMinioObjectKey, req.getFileName(), req.getFileType(),
|
||||
FileMetadataInfo fileInfo = createFileMetadata(fileMinioObjectKey, originalName, req.getFileType(),
|
||||
req.getProjectId(), req.getAnalysisDirectionId(), req.getRemarks(), dirMetadataInfo.getId(), req.getFile().getSize()
|
||||
);
|
||||
// 只有知识库的文件需要审核
|
||||
@@ -1520,6 +1521,15 @@ public class MinioFileIDataFileServiceImpl implements IDataFileService {
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@PermissionCheckAspect.FilePermissionCheck(value = FilePermissionEnum.UPLOAD, fileIdExpression = "#req.id")
|
||||
public SdmResponse updateFile(UpdateFileReq req) {
|
||||
if (StringUtils.hasText(req.getSimulationPoolInfoListStr())) {
|
||||
try {
|
||||
List<SimulationPoolInfo> list = JSON.parseArray(req.getSimulationPoolInfoListStr(), SimulationPoolInfo.class);
|
||||
req.setSimulationPoolInfoList(list);
|
||||
} catch (Exception e) {
|
||||
return SdmResponse.failed("参数格式错误");
|
||||
}
|
||||
}
|
||||
|
||||
FileMetadataInfo fileMetadataInfo = fileMetadataInfoService.lambdaQuery().eq(FileMetadataInfo::getId, req.getId()).one();
|
||||
if (fileMetadataInfo == null) {
|
||||
return SdmResponse.failed("文件不存在");
|
||||
|
||||
@@ -126,6 +126,7 @@ security:
|
||||
- /data/flowableUpFileToLocal
|
||||
- /data/flowableUpFileToLocalMerge
|
||||
- /data/getFileBaseInfo
|
||||
- /data/uploadFiles
|
||||
|
||||
data:
|
||||
storage-monitor:
|
||||
|
||||
@@ -131,6 +131,7 @@ security:
|
||||
- /data/flowableUpFileToLocal
|
||||
- /data/flowableUpFileToLocalMerge
|
||||
- /data/getFileBaseInfo
|
||||
- /data/uploadFiles
|
||||
|
||||
data:
|
||||
storage-monitor:
|
||||
|
||||
@@ -126,6 +126,7 @@ security:
|
||||
- /data/flowableUpFileToLocal
|
||||
- /data/flowableUpFileToLocalMerge
|
||||
- /data/getFileBaseInfo
|
||||
- /data/uploadFiles
|
||||
|
||||
data:
|
||||
storage-monitor:
|
||||
|
||||
Reference in New Issue
Block a user