SUPPORT-9568: Fix

This commit is contained in:
Eduard Tihomiorv 2025-11-18 11:24:23 +03:00
parent 04fe70f204
commit b85d66386d
3 changed files with 16 additions and 14 deletions

View file

@ -142,9 +142,9 @@ public class EmployeeInfoFileUploadService {
UserIdsPair userIdsPair = SecurityUtil.getUserIdsPair(); UserIdsPair userIdsPair = SecurityUtil.getUserIdsPair();
LocalDateTime now = LocalDateTime.now(); LocalDateTime now = LocalDateTime.now();
String departureDateTime = DateUtils.convertToString(now); String departureDateTime = DateUtils.convertToString(now);
validateCsvWithSigFormat(multipartFile, signFile);
if (userIdsPair == null || !isValidCsvWithSig(multipartFile, signFile)) { if (userIdsPair == null) {
return false; throw new FileUploadException("userIdsPair is null");
} }
String esiaUserId = userIdsPair.getEsiaUserId(); String esiaUserId = userIdsPair.getEsiaUserId();
String ervuId = userIdsPair.getErvuId(); String ervuId = userIdsPair.getErvuId();
@ -424,10 +424,11 @@ public class EmployeeInfoFileUploadService {
clearS3(response); clearS3(response);
} }
private boolean isValidCsvWithSig(MultipartFile file, MultipartFile signFile) { private void validateCsvWithSigFormat(MultipartFile file, MultipartFile signFile) {
if (file == null || signFile == null || file.getOriginalFilename() == null if (file == null || signFile == null || file.getOriginalFilename() == null
|| signFile.getOriginalFilename() == null) { || signFile.getOriginalFilename() == null) {
return false; throw new FileUploadException("Failed to process files: " + file + ", " +
signFile);
} }
Tika tika = new Tika(); Tika tika = new Tika();
MimeTypes defaultMimeTypes = MimeTypes.getDefaultMimeTypes(); MimeTypes defaultMimeTypes = MimeTypes.getDefaultMimeTypes();
@ -449,19 +450,18 @@ public class EmployeeInfoFileUploadService {
".sig"); ".sig");
if (!isCsv) { if (!isCsv) {
LOGGER.info("Invalid main file: name={}, mimeType={}", fileName, fileMimeType); LOGGER.error("Invalid main file: name={}, mimeType={}", fileName, fileMimeType);
throw new LocalizedException("file_format_invalid", MESSAGE_SOURCE, fileName);
} }
if (!isSig) { if (!isSig) {
LOGGER.info("Invalid signature file: name={}, mimeType={}", signFileName, signMimeType); LOGGER.error("Invalid signature file: name={}, mimeType={}", signFileName, signMimeType);
throw new LocalizedException("file_format_invalid", MESSAGE_SOURCE, fileName);
} }
return isCsv && isSig;
} }
catch (MimeTypeException | IOException e) { catch (MimeTypeException | IOException e) {
LOGGER.error("Failed to process files: {}, {}", file.getOriginalFilename(), throw new FileUploadException("Failed to process files: " + file.getOriginalFilename() + ", " +
signFile.getOriginalFilename(), e signFile.getOriginalFilename(), e
); );
return false;
} }
} }

View file

@ -7,7 +7,7 @@ cert_untrusted_root=Сертификат или цепочка сертифик
cert_is_not_time_valid=Этот сертификат или один из сертификатов в цепочке сертификатов является недопустимым по времени cert_is_not_time_valid=Этот сертификат или один из сертификатов в цепочке сертификатов является недопустимым по времени
file_sign_validate=Некорректная электронная подпись file_sign_validate=Некорректная электронная подпись
mchd_validate_agent=Некорректная машиночитаемая доверенность. Представитель не совпадает с подписантом mchd_validate_agent=Некорректная машиночитаемая доверенность. Представитель не совпадает с подписантом
mchd_null=Отсутствует машиночитаемая доверенность. Подписант не является руководителем организации. mchd_null=Подписант не является руководителем организации и отсутствует машиночитаемая доверенность.
sign_ogrn_null=Приложена электронная подпись физического лица. sign_ogrn_null=Приложена электронная подпись физического лица.
sign_ogrn_invalid=Файл подписан не той организацией, под которой была осуществлена загрузка. sign_ogrn_invalid=Файл подписан не той организацией, под которой была осуществлена загрузка.
mchd_status_invalid=Недействующая машиночитаемая доверенность. mchd_status_invalid=Недействующая машиночитаемая доверенность.
@ -20,4 +20,5 @@ mchd_validate_principal=Некорректная машиночитаемая д
av_file_infected=Файлы заражены вирусом av_file_infected=Файлы заражены вирусом
mchd_cant_parse=Некорректный формат машиночитаемой доверенности mchd_cant_parse=Некорректный формат машиночитаемой доверенности
mchd_esia_error=Некорректная машиночитаемая доверенность. Доверенность не найдена. mchd_esia_error=Некорректная машиночитаемая доверенность. Доверенность не найдена.
mchd_no_sign_rights=В доверенности (МЧД) нет полномочия "Подписание сведений о воинском учете организации для загрузки в личный кабинет юридических лиц ГИС ЕРВУ" mchd_no_sign_rights=В доверенности (МЧД) нет полномочия "Подписание сведений о воинском учете организации для загрузки в личный кабинет юридических лиц ГИС ЕРВУ"
file_format_invalid=Неверный формат или расширения файла {0}

View file

@ -20,4 +20,5 @@ mchd_validate_principal=Некорректная машиночитаемая д
av_file_infected=Файлы заражены вирусом av_file_infected=Файлы заражены вирусом
mchd_cant_parse=Некорректный формат машиночитаемой доверенности mchd_cant_parse=Некорректный формат машиночитаемой доверенности
mchd_esia_error=Некорректная машиночитаемая доверенность. Доверенность не найдена. mchd_esia_error=Некорректная машиночитаемая доверенность. Доверенность не найдена.
mchd_no_sign_rights=В доверенности (МЧД) нет полномочия "Подписание сведений о воинском учете организации для загрузки в личный кабинет юридических лиц ГИС ЕРВУ" mchd_no_sign_rights=В доверенности (МЧД) нет полномочия "Подписание сведений о воинском учете организации для загрузки в личный кабинет юридических лиц ГИС ЕРВУ"
file_format_invalid=Неверный формат или расширения файла {0}