private boolean isFilenameExtensionValid()

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;
  }