in digital-document-service/src/main/java/com/epam/digital/data/platform/dgtldcmnt/validator/AllowedUploadedDocumentValidator.java [58:86]
private boolean isFilenameExtensionValid(UploadDocumentDto uploadDocumentDto,
ConstraintValidatorContext context) {
log.debug("Validating filename extension for process-instance '{}'",
uploadDocumentDto.getRootProcessInstanceId());
final var contentType = uploadDocumentDto.getContentType();
var acceptedExtensions = getAcceptedExtensions(contentType);
final var fileExtension = FilenameUtils.getExtension(uploadDocumentDto.getFilename());
if (StringUtils.isBlank(fileExtension)) {
context.buildConstraintViolationWithTemplate("Filename doesn't have any extensions")
.addPropertyNode("filename")
.addConstraintViolation()
.disableDefaultConstraintViolation();
return false;
}
log.trace("Filename extension - '{}'", fileExtension);
var isExtensionValid = acceptedExtensions.contains(fileExtension.toLowerCase());
if (!isExtensionValid) {
context.buildConstraintViolationWithTemplate(
"File extension doesn't correspond to input media type")
.addPropertyNode("filename")
.addConstraintViolation()
.disableDefaultConstraintViolation();
}
log.debug("Filename extension '{}' with content-type '{}' is valid - '{}'",
fileExtension, contentType, isExtensionValid);
return isExtensionValid;
}