Pular para o conteúdo principal

Validação de arquivos - Sessões de assinatura

Você pode validar os arquivos escolhidos pelo usuário durante as sessões de assinatura utilizando os mecanismos descritos nesse artigo.

Regras de formação de nomes de arquivos​

Caso você tenha uma regra de formação para os nomes de arquivos que são aceitos, você pode configurar a sua organização no Rest PKI Core para validar cada arquivo selecionado pelo usuário usando uma expressão regular que represente a sua regra de formação. As regras ficam no painel, em Configurações, seção Regras de formação de nomes de arquivos.

Considere a situação hipotética em que somente sejam aceitos arquivos com nome começando com a letra P ou X, seguido de 6 dígitos e extensão .pdf. Para validar essa condição, configurar-se-ia a regra de formação para:

^[PX]\d{6}\.pdf$

O usuário ficaria então impedido de escolher arquivos com nome fora desse padrão:

Arquivo rejeitado por padrão

Você pode cadastrar várias regras (botão Adicionar nova regra). Um arquivo é aceito se o seu nome atender a qualquer uma delas; se não houver nenhuma regra, qualquer nome é aceito. Cada regra tem um Padrão de nome do arquivo (a expressão regular) e três opções:

OpçãoEfeito
Comparar apenas com o nome (sem a extensão)A expressão é comparada com o nome sem a última extensão: para P123456.pdf, com P123456.
Diferenciar maiúsculas e minúsculasSem essa opção, a comparação ignora maiúsculas e minúsculas: ^[PX]\d{6}\.pdf$ aceita também p123456.PDF.
Permitir digitação do código de validaçãoPara os arquivos que atendem a essa regra, o usuário pode informar o código de validação que o documento deve ter (veja abaixo).

A expressão não é ancorada automaticamente: basta que ela seja encontrada em algum trecho do nome. Comece-a com ^ e termine-a com $ para exigir que o nome inteiro siga o padrão. Por exemplo, ph\d{9}\.pdf$ aceita também xyzph123456789.pdf, o que não acontece com ^ph\d{9}\.pdf$.

As regras valem para os arquivos que o usuário escolhe na página da sessão de assinatura, ou seja, em sessões sem documentos pré-definidos, e para os arquivos assinados com o utilitário de linha de comando. Documentos enviados pela sua aplicação na criação da sessão não são verificados.

Digitação do código de validação​

Quando o arquivo escolhido atende a uma regra com a opção Permitir digitação do código de validação, a página da sessão mostra, abaixo do nome do arquivo, um campo Digite o código de validação. O usuário informa ali o código de validação que o documento assinado deve ter, em vez de o sistema gerar um código novo, ou marca Gerar código automaticamente. O arquivo só pode ser assinado depois que uma das duas opções for preenchida.

O código digitado é conferido no Rest PKI Core e recusado se estiver fora do formato dos códigos da organização, se não existir ou se já tiver sido usado. Os códigos aceitos são, portanto, os reservados previamente pela sua aplicação, como descrito em Alocação de chaves de validação de documento, ou pelo comando allocate-keys do utilitário de linha de comando.

observação

Nosso suporte ao desenvolvedor pode auxiliá-lo a montar a expressão regular a partir de uma descrição textual da sua regra de formação

Tamanho máximo dos arquivos​

A página da sessão de assinatura recusa arquivos maiores que o limite de upload da instância, sem enviá-los nem chamar a API de validação. O limite é a configuração General:MaxFileSize (padrão 100 MiB), que também é aplicada pelo servidor nos uploads. Em instâncias on-premises, aumente esse valor se os seus usuários precisarem assinar arquivos maiores.

API de validação de arquivos​

Também é possível configurar uma API de validação de arquivos, implementada pela sua aplicação, a ser chamada para validar cada arquivo escolhido pelo usuário. A sua aplicação recebe o nome do arquivo (além do MIME type e tamanho em bytes) e retorna se o arquivo deve ou não ser aceito (e, caso negativo, o motivo da rejeição).

A solicitação de validação consiste em uma requisição HTTP com verbo POST tendo como payload um objeto ValidateFileRequest (consulte a Referência da API para a definição do modelo). Veja um exemplo abaixo:

{
"name": "P123456.pdf",
"contentType": "application/pdf",
"length": 2476032
}

A sua aplicação deve responder com um ValidateFileResponse conforme abaixo:

{
"accept": true,
"rejectReason": null
}

Ou, em caso de rejeição:

{
"accept": false,
"rejectReason": "Mensagem para o usuário"
}

A mensagem retornada pela sua aplicação será exibida para o usuário, por exemplo:

Arquivo rejeitado por API

Ver em Markdown