Class AbstractASiCContainerAnalyzer

java.lang.Object
eu.europa.esig.dss.spi.validation.analyzer.DefaultDocumentAnalyzer
eu.europa.esig.dss.asic.common.validation.AbstractASiCContainerAnalyzer
All Implemented Interfaces:
DocumentAnalyzer
Direct Known Subclasses:
ASiCContainerWithCAdESAnalyzer, ASiCContainerWithXAdESAnalyzer

public abstract class AbstractASiCContainerAnalyzer extends DefaultDocumentAnalyzer
The abstract class for an ASiC container validation
  • Field Details

    • asicContent

      protected ASiCContent asicContent
      The container extraction result
    • signatureValidators

      protected List<DocumentAnalyzer> signatureValidators
      List of signature document analyzers
    • timestampAnalyzers

      protected List<TimestampAnalyzer> timestampAnalyzers
      List of timestamp document validators
    • evidenceRecordAnalyzers

      protected List<EvidenceRecordAnalyzer> evidenceRecordAnalyzers
      List of evidence record document validators
  • Constructor Details

    • AbstractASiCContainerAnalyzer

      protected AbstractASiCContainerAnalyzer()
      Empty constructor
    • AbstractASiCContainerAnalyzer

      protected AbstractASiCContainerAnalyzer(DSSDocument document)
      The default constructor
      Parameters:
      document - DSSDocument to be validated
    • AbstractASiCContainerAnalyzer

      protected AbstractASiCContainerAnalyzer(ASiCContent asicContent)
      The constructor with ASiCContent
      Parameters:
      asicContent - ASiCContent to be validated
  • Method Details

    • isSupported

      public abstract boolean isSupported(ASiCContent asicContent)
      Checks if the ASiCContent is supported by the current validator
      Parameters:
      asicContent - ASiCContent to check
      Returns:
      TRUE if the ASiC Content is supported, FALSE otherwise
    • getContainerExtractor

      protected abstract DefaultASiCContainerExtractor getContainerExtractor()
      Returns the relevant container extractor
      Returns:
      DefaultASiCContainerExtractor
    • getContainerInfo

      protected ContainerInfo getContainerInfo()
      This method allows to retrieve the container information (ASiC Container)
      Returns:
      a DTO with the container information
    • attachExternalTimestamps

      protected List<TimestampToken> attachExternalTimestamps(List<AdvancedSignature> allSignatures)
      Attaches existing external timestamps to the list of AdvancedSignatures
      Parameters:
      allSignatures - list of AdvancedSignatures
      Returns:
      list of attached TimestampTokens
    • getManifestFilesDescriptions

      protected abstract List<ManifestFile> getManifestFilesDescriptions()
      Returns a list of parser ManifestFiles
      Returns:
      a list of ManifestFiles
    • getAllSignatures

      public List<AdvancedSignature> getAllSignatures()
      Description copied from class: DefaultDocumentAnalyzer
      Returns a list of all signatures from the validating document
      Overrides:
      getAllSignatures in class DefaultDocumentAnalyzer
      Returns:
      a list of AdvancedSignatures
    • buildSignatures

      protected List<AdvancedSignature> buildSignatures()
      Description copied from class: DefaultDocumentAnalyzer
      This method build a list of signatures to be extracted from a document
      Overrides:
      buildSignatures in class DefaultDocumentAnalyzer
      Returns:
      a list of AdvancedSignatures
    • getSignatureAnalyzers

      protected abstract List<DocumentAnalyzer> getSignatureAnalyzers()
      Returns a list of validators for signature documents embedded into the container
      Returns:
      a list of DocumentValidators
    • getContainerType

      public ASiCContainerType getContainerType()
      Returns a container type
      Returns:
      ASiCContainerType
    • getAllDocuments

      public List<DSSDocument> getAllDocuments()
      Returns a list of all embedded documents
      Returns:
      a list of all embedded DSSDocuments
    • getSignatureDocuments

      public List<DSSDocument> getSignatureDocuments()
      Returns a list of embedded signature documents
      Returns:
      a list of signature DSSDocuments
    • getSignedDocuments

      public List<DSSDocument> getSignedDocuments()
      Returns a list of embedded signed documents
      Returns:
      a list of signed DSSDocuments
    • getManifestDocuments

      public List<DSSDocument> getManifestDocuments()
      Returns a list of embedded signature manifest documents
      Returns:
      a list of signature manifest DSSDocuments
    • getTimestampDocuments

      public List<DSSDocument> getTimestampDocuments()
      Returns a list of embedded timestamp documents
      Returns:
      a list of timestamp DSSDocuments
    • getEvidenceRecordDocuments

      public List<DSSDocument> getEvidenceRecordDocuments()
      Returns a list of embedded evidence record documents
      Returns:
      a list of evidence record DSSDocuments
    • getArchiveManifestDocuments

      public List<DSSDocument> getArchiveManifestDocuments()
      Returns a list of embedded archive manifest documents
      Returns:
      a list of archive manifest DSSDocuments
    • getEvidenceRecordManifestDocuments

      public List<DSSDocument> getEvidenceRecordManifestDocuments()
      Returns a list of embedded evidence record manifest documents
      Returns:
      a list of evidence record manifest DSSDocuments
    • getAllManifestDocuments

      public List<DSSDocument> getAllManifestDocuments()
      Returns a list of all embedded manifest documents
      Returns:
      a list of manifest DSSDocuments
    • getArchiveDocuments

      public List<DSSDocument> getArchiveDocuments()
      Returns a list of archive documents embedded the container
      Returns:
      a list of archive DSSDocuments
    • getMimeTypeDocument

      public DSSDocument getMimeTypeDocument()
      Returns a mimetype document
      Returns:
      DSSDocument mimetype
    • getUnsupportedDocuments

      public List<DSSDocument> getUnsupportedDocuments()
      Returns a list of unsupported documents from the container
      Returns:
      a list of unsupported documents DSSDocuments
    • getManifestFiles

      public List<ManifestFile> getManifestFiles()
      Returns a list of parser Manifest files
      Returns:
      a list of ManifestFiles
    • getSignedDocumentsASiCS

      protected List<DSSDocument> getSignedDocumentsASiCS(List<DSSDocument> retrievedDocs)
      Returns a list of "package.zip" documents
      Parameters:
      retrievedDocs - the retrieved signed documents
      Returns:
      a list of DSSDocuments
    • buildDetachedEvidenceRecords

      protected List<EvidenceRecord> buildDetachedEvidenceRecords()
      Description copied from class: DefaultDocumentAnalyzer
      Builds a list of detached EvidenceRecords extracted from the document
      Overrides:
      buildDetachedEvidenceRecords in class DefaultDocumentAnalyzer
      Returns:
      a list of EvidenceRecords
    • attachExternalEvidenceRecords

      protected void attachExternalEvidenceRecords(List<EvidenceRecord> embeddedEvidenceRecords, List<EvidenceRecord> detachedEvidenceRecords)
      Appends detached evidence record provided to the validator to the evidence records covered by the corresponding evidence records
      Parameters:
      embeddedEvidenceRecords - a list of EvidenceRecords extracted from the ASiC container
      detachedEvidenceRecords - a list of EvidenceRecords provided externally to the validation
    • getEvidenceRecordAnalyzers

      protected List<EvidenceRecordAnalyzer> getEvidenceRecordAnalyzers()
      Builds and returns a list of evidence record analyzers
      Returns:
      a list of EvidenceRecordAnalyzer
    • assertEvidenceRecordDocumentExtensionMatch

      protected void assertEvidenceRecordDocumentExtensionMatch(DSSDocument evidenceRecordDocument, EvidenceRecordTypeEnum evidenceRecordTypeEnum)
      This method verifies whether the extension of evidenceRecordDocument is conformant to the applicable standard for the given evidenceRecordTypeEnum
      Parameters:
      evidenceRecordDocument - DSSDocument to be validated
      evidenceRecordTypeEnum - EvidenceRecordTypeEnum identified for the document
    • coversSignature

      protected boolean coversSignature(AdvancedSignature signature, EvidenceRecord evidenceRecord)
      Description copied from class: DefaultDocumentAnalyzer
      Verifies whether an evidenceRecord covers the signature
      Overrides:
      coversSignature in class DefaultDocumentAnalyzer
      Parameters:
      signature - AdvancedSignature
      evidenceRecord - EvidenceRecord
      Returns:
      TRUE if the evidence record covers the signature file, FALSE otherwise
    • getValidatedManifestFile

      protected ManifestFile getValidatedManifestFile(DSSDocument manifest)
      Returns a validated ManifestFile for the given manifest document
      Parameters:
      manifest - DSSDocument
      Returns:
      ManifestFile
    • addReference

      protected boolean addReference(SignatureScope signatureScope)
      Description copied from class: DefaultDocumentAnalyzer
      Checks if the signature scope shall be added as a timestamped reference NOTE: used to avoid duplicates in ASiC with CAdES validator, due to covered signature/timestamp files
      Overrides:
      addReference in class DefaultDocumentAnalyzer
      Parameters:
      signatureScope - SignatureScope to check
      Returns:
      TRUE if the timestamped reference shall be created for the given SignatureScope, FALSE otherwise