Class Application

java.lang.Object
br.ufsc.labsec.component.Application

public class Application
extends Object
Representa a aplicação que é composta por componentes. Contém também o suporte para o acesso aos parâmetros da aplicação e dos componentes.
  • Field Details

    • logger

      public static Logger logger
  • Constructor Details

    • Application

      public Application​(String[] args)
      Inicializador da aplicação. Os parâmetros recebidos em main devem ser passados como args. O primeiro argumento sempre deve ser o endereço de onde está o arquivo de configuração dos componentes.
      Parameters:
      args - - argumentos da aplicação.
      See Also:
      ComponentConfiguration
    • Application

      public Application​(boolean needsDownloadTrustAnchors)
      Inicializador contendo somente o needsDownloadTrustAnchor, para ser executado na inicialização dos servlets e, apenas dessa maneira fazer download das âncoras de confiança
      Parameters:
      needsDownloadTrustAnchors -
    • Application

      public Application()
    • Application

      public Application​(String configurationPath) throws FileNotFoundException
      Inicializador da aplicação.
      Parameters:
      configurationPath - - caminho do arquivo de configuração da aplicação
      Throws:
      FileNotFoundException - É lançada se o arquivo de configuração não for encontrado.
    • Application

      public Application​(AbstractComponentConfiguration componentConfiguration, boolean downloadTrustAnchors)
    • Application

      public Application​(List<SignatureDataWrapper> signatureWrapperList)
    • Application

      public Application​(AbstractComponentConfiguration componentConfiguration, List<SignatureDataWrapper> signatureWrapperList)
  • Method Details

    • setDownloadTrustAnchors

      public void setDownloadTrustAnchors​(boolean value)
      Método para mudar o valor da variável downloadTrustAnchors
      Parameters:
      value - novo valor de downloadTrustAnchors
    • getDownloadTrustAnchors

      public boolean getDownloadTrustAnchors()
      Método para ter acesso à variável downloadTrustAnchors
      Returns:
      boolean se deve baixar as âncoras de confiança ou não
    • setup

      public boolean setup()
      Instancia e conecta os componentes.
      Returns:
      Verdadeiro se os componentes foram inicializados com sucesso.
    • getStringParameter

      public String getStringParameter​(String parameterName)
      Método para acessar os parâmetros passados para a aplicação.
      Parameters:
      parameterName - Nome do parâmetro. Os parâmetros são considerados em pares nome-valor
      Returns:
      Retorna o valor do parâmtro
    • getComponentParam

      public Object getComponentParam​(Class<? extends Component> component, String name)
      Retorna um parâmetro especifico para algum componente
      Parameters:
      component - Classe do componente
      name - Nome do parâmetro
      Returns:
      Valor do parâmetro
    • reportError

      public void reportError​(Exception e)
      Trata uma exceção ocorrida em um componente. O erro será repassado para os componentes registrados como tratadores de erros e os demais componentes serão reiniciados para que o erro não faça com que os componentes fiquem em algum estado inválido.
      Parameters:
      e - O erro que ocorreu
    • getComponent

      public <T extends Component> T getComponent​(Class<T> clazz)
    • setTrustAnchors

      public void setTrustAnchors​(Set<TrustAnchor> trustAnchors)
      Define as âncoras de confiança
      Parameters:
      trustAnchors - as âncoras de confiança
    • sign

      Throws:
      CertificationPathException
      SignerException
    • getVerifierType

      public Verifier getVerifierType​(Report.FileType verifierType)
      Responsável por selecionar o verificador específico para o tipo de arquivo da verificação (Pades, Cades ou Xades)
      Parameters:
      verifierType - tipo de arquivo de verificação
      Returns:
      Verificador do tipo selecionado (Pades/Cades/Xades)
    • setSignatureWrappers

      public void setSignatureWrappers​(InputStream signature, InputStream detached, String filename)
      Utilizado para remover todos os elementos e adicionar novamente na lista de wrappers de assinatura
      Parameters:
      signature - Bytes da assinatura
      detached - Bytes do conteúdo destacado
      filename - Nome do arquivo de assinatura
    • willVerifyNotAnchored

      public boolean willVerifyNotAnchored()
    • onUnrestrictedAttrVerification

      public boolean onUnrestrictedAttrVerification()
    • isProfileOnly

      public boolean isProfileOnly()
    • verify

      public void verify​(List<Report> reports, boolean verifyIncremental, boolean isComplete, boolean verifyNotAnchored, boolean unrestrictedAttrVerification, boolean profileOnly) throws InterruptedException
      Verifica os arquivos de assinatura e gera os relatórios. Os relatórios são adicionados na lista passada como parâmetro

      Esse comportamento é devido ao timeout de verificação, permitindo a geração de relatórios parciais. Assim, o método necessita do envio da lista de relatórios ao invés de retorná-la

      Parameters:
      reports - Lista de relatórios de verificação
      verifyIncremental - Se deve fazer verificação incremental em arquivos PDF
      isComplete - Se o relatório deve ser completo ou simples
      verifyNotAnchored - se assinaturas não-ancoradas serão verificadas
      unrestrictedAttrVerification - se vai verificar os atributos, independentemente do resultado do caminho de certificação
      Throws:
      InterruptedException - Exceção lançada caso a verificação seja interrompida
      See Also:
      VerifierRequest
    • emitReceipt

      public Optional<ReceiptBundle> emitReceipt​(List<Report> reports)
      Emite um recibo para os relatórios passados
      Parameters:
      reports - Relatórios para os quais o recibo será emitido
      Returns:
      Um pacote do recibo emitido contendo o recibo e a requisicao do recibo