Class SecureContainerHandler

java.lang.Object
eu.europa.esig.dss.asic.common.SecureContainerHandler
All Implemented Interfaces:
ZipContainerHandler

public class SecureContainerHandler
extends Object
implements ZipContainerHandler
The default implementation of ZipContainerHandler, providing utilities to prevent a denial of service attacks, such as zip-bombing
  • Constructor Details

    • SecureContainerHandler

      public SecureContainerHandler()
  • Method Details

    • setThreshold

      public void setThreshold​(long threshold)
      Sets the maximum allowed threshold after exceeding each the security checks are enforced Default : 1000000 (1 MB)
      Parameters:
      threshold - in bytes
    • setMaxCompressionRatio

      public void setMaxCompressionRatio​(long maxCompressionRatio)
      Sets the maximum allowed compression ratio If the container compression ratio exceeds the value, an exception is being thrown Default : 100
      Parameters:
      maxCompressionRatio - the maximum compression ratio
    • setMaxAllowedFilesAmount

      public void setMaxAllowedFilesAmount​(int maxAllowedFilesAmount)
      Sets the maximum allowed amount of files inside a container Default : 1000
      Parameters:
      maxAllowedFilesAmount - the maximum number of allowed files
    • setMaxMalformedFiles

      public void setMaxMalformedFiles​(int maxMalformedFiles)
      Sets the maximum allowed amount of malformed files Default : 100
      Parameters:
      maxMalformedFiles - the maximum number of malformed files
    • extractContainerContent

      public List<DSSDocument> extractContainerContent​(DSSDocument zipArchive)
      Description copied from interface: ZipContainerHandler
      Extracts a list of DSSDocument from the given ZIP-archive
      Specified by:
      extractContainerContent in interface ZipContainerHandler
      Parameters:
      zipArchive - DSSDocument
      Returns:
      a list of DSSDocuments
    • extractEntryNames

      public List<String> extractEntryNames​(DSSDocument zipArchive)
      Description copied from interface: ZipContainerHandler
      Returns a list of ZIP archive entry names
      Specified by:
      extractEntryNames in interface ZipContainerHandler
      Parameters:
      zipArchive - DSSDocument
      Returns:
      a list of String entry names
    • createZipArchive

      public DSSDocument createZipArchive​(List<DSSDocument> containerEntries, Date creationTime, String zipComment)
      Description copied from interface: ZipContainerHandler
      Creates a ZIP-Archive with the given containerEntries
      Specified by:
      createZipArchive in interface ZipContainerHandler
      Parameters:
      containerEntries - a list of DSSDocuments to embed into the new container instance
      creationTime - (Optional) Date defined time of an archive creation, will be set for all embedded files. If null, the local current time will be used
      zipComment - (Optional) String defined a zipComment
      Returns:
      DSSDocument ZIP-Archive