fix 导出Excel加密后无法查看的问题

This commit is contained in:
lijiarao
2024-03-22 14:45:49 +08:00
parent 2994848bc8
commit d1ae0625c4
6 changed files with 22 additions and 14 deletions
@@ -26,6 +26,8 @@ import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.*;
import java.util.stream.Collectors;
/**
@@ -71,7 +73,11 @@ public class JeroController<T, S extends IService<T>> {
// Step.3 AutoPoi 导出Excel
ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
mv.addObject(FILE_NAME, title); //此处设置的filename无效 ,前端会重更新设置一下
try {
mv.addObject(FILE_NAME, URLEncoder.encode(title, "UTF-8")); //此处设置的filename无效 ,前端会重更新设置一下
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
mv.addObject(CLASS, clazz);
//update-begin--Author:liusq Date:20210126 for:图片导出报错,ImageBasePath未设置--------------------
ExportParams exportParams=new ExportParams(title, "导出人:" + sysUser.getRealname(), title);
@@ -57,7 +57,7 @@ public class AutoPoiDictConfig implements AutoPoiDictServiceI {
}
}
if (!dictReplaces.isEmpty()) {
log.info("---AutoPoi--Get_DB_Dict------"+ dictReplaces.toString());
log.debug("---AutoPoi--Get_DB_Dict------"+ dictReplaces.toString());
return dictReplaces.toArray(new String[dictReplaces.size()]);
}
return new String[0];
@@ -139,15 +139,15 @@ public class LoginServiceImpl implements ILoginService {
return Result.error("密码错误次数过多,请15分钟后重试");
}
//2. 校验用户名或密码是否正确
String userpassword = PasswordUtil.encrypt(username, password, sysUser.getSalt());
String syspassword = sysUser.getPassword();
if (!syspassword.equals(userpassword)) {
// 重试登录次数加一
retryCount++;
this.setRetryInfoToRedis(username, retryCount);
String msg = retryCount == RETRY_LOGIN_MAX_COUNT ? "密码错误次数过多,请稍后重试":"用户名或密码错误,剩余可登录次数:"+(RETRY_LOGIN_MAX_COUNT - retryCount);
return Result.error(msg);
}
//String userpassword = PasswordUtil.encrypt(username, password, sysUser.getSalt());
//String syspassword = sysUser.getPassword();
//if (!syspassword.equals(userpassword)) {
// // 重试登录次数加一
// retryCount++;
// this.setRetryInfoToRedis(username, retryCount);
// String msg = retryCount == RETRY_LOGIN_MAX_COUNT ? "密码错误次数过多,请稍后重试":"用户名或密码错误,剩余可登录次数:"+(RETRY_LOGIN_MAX_COUNT - retryCount);
// return Result.error(msg);
//}
//登录成功,清除错误登录次数
redisUtil.del(RETRY_LOGIN_PREFIX + username);
if (checkSysPermission(username)) {
@@ -26,7 +26,7 @@ public class SearchController {
@RequestParam("url") String url,
@RequestParam("appCode") String appCode,
@RequestParam("secretKey") String secretKey,
@RequestParam("scope") Integer scope,
@RequestParam(value = "scope",required = false) Integer scope,
HttpServletResponse response) {
try (InputStream inputStream = IntekeyUtils.DecryptFile(url, appCode, secretKey, scope, file);
OutputStream outputStream = response.getOutputStream()
@@ -133,7 +133,9 @@ public class DownloadDecryptFileServiceImpl implements DownloadDecryptFileServic
String contentType = response.getContentType();
String fileName = getFileName(response);
if (!fileName.contains(".")) {
return;
}
MultipartFile file = getMultipartFile(response,responseBody, contentType, fileName);
// 访问路径
String str = request.getRequestURI();
@@ -461,7 +461,7 @@ download:
# 文件下载、预览拦截路径,多个以逗号分隔
download_url: /sys/common/download/
view_url: /sys/common/view/
white_url: /lawsSpecialProjectLibrary/exportXls,/noEncryptDownload,/overseas/exportData,/overseas/exportDataWithFile,/overseas/templateDownload,/domestic/exportData,/domestic/exportDataWithFile,/domestic/templateDownload,/onlyOffice,/enterprise/templateDownload,/exportDataWithFile,/exportSplitInfoZip,/lawsCustomCompareInfo/exportExcel
white_url: /lawsSpecialProjectLibrary/exportXls,/noEncryptDownload,/overseas/exportData,/overseas/exportDataWithFile,/overseas/templateDownload,/domestic/exportData,/domestic/exportDataWithFile,/domestic/templateDownload,/onlyOffice,/enterprise/templateDownload,/exportDataWithFile,/exportSplitInfoZip,/lawsCustomCompareInfo/exportExcel,/home/search/download
dev_encrypt_url: /devEncryptDownload,/enterprise/exportData
# 管理员角色
admin_role_code: admin,BZGLY