Provider Java - Interface¶
O provider java é composto por uma série de projetos:
- autoriza-java-provider-basico
- autoriza-java-provider-anotacoes
- autoriza-java-provider-filtro
A utilização do provider básico é obrigatória.
As bibliotecas para filtro e para anotações são de uso opcional. Elas estendem o provider básico, disponibilizando um servlet filter e uma anotação java, respectivamente.
autoriza-java-provider-basico¶
É o projeto básico que disponibiliza de forma programática métodos equivalentes aos serviços oferecidos pela API de validação.
Ele segue a arquitetura de referência XACML.
Para utilizá-lo, é preciso que sejam definidos os valores das configurações, conforme seção específica.
Utilização¶
Importação no pom.xml:
<dependency>
<groupId>br.gov.serpro.autoriza</groupId>
<artifactId>autoriza-java-provider-basico</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
Interface disponível¶
Todos os métodos disponíveis recebem o CPF do usuário e o token de acesso do usuário recuperado do Acesso gov.br.
Eles não possuem retorno, e executam com sucesso caso o usuário possua acesso ao recurso solicitado, ou retornam a exceção ExcecaoAcessoNaoAutorizado caso o usuário não possua acesso.
Os métodos estão disponíveis na instância da classe PontoExecucaoPoliticas, conforme exemplo de uso.
A documentação dos métodos segue listada a seguir:
/**
* Aplica as políticas de acesso do sistema para verificar se o usuário pode
* acessar o recurso solicitado com o verbo http.
* O método lança uma ExcecaoAcessoNaoAutorizado caso o usuário não possua
* acesso ao recurso soliticitado.
*
* @param idUsuario CPF do usuário logado na aplicação. Deve ser o mesmo CPF
* presente no token de acesso do Acesso gov.br
* @param caminhoRecurso Caminho do recurso na aplicação. Esse caminho deve
* serguir o mesmo padrão do que está definido no arquivo de políticas.
* Consulte o arquivo de políticas da aplicação para saber se está passando
* o caminho de modo coerente com ele.
* @param verboHTTP Verbo HTTP utilizado na requisição do usuário.
* @param token Token de acesso JWT do usuário recuperado do Acesso gov.br.
* @param filtrosOpcionais Mapa com os valores de filtro a serem considerados
* na filtragem dos perfis atribuídos aos usuários, conforme as features
* definidas para o sistema
*
* @exception ExcecaoAcessoNaoAutorizado Lançada quando o usuário não possui
* acesso ao recurso solicitado.
* @exception ExcecaoAutoriza Lançada quando ocorre algum erro durante a
* avaliação das políticas de acesso.
*/
void avaliarPoliticas(String idUsuario, String caminhoRecurso,
String verboHTTP, String token, Map<String, Object> filtrosOpcionais);
/**
* Verifica se o usuário possui alguma atribuição com um determinado perfil.
* O método lança uma ExcecaoAcessoNaoAutorizado caso o usuário não possua o
* perfil soliticitado.
*
* @param idUsuario CPF do usuário logado na aplicação. Deve ser o mesmo CPF
* presente no token de acesso do Acesso gov.br
* @param nmPerfil Nome do perfil a ser verificado.
* @param token Token de acesso JWT do usuário recuperado do Acesso gov.br.
* @param filtrosOpcionais Mapa com os valores de filtro a serem considerados
* na filtragem dos perfis atribuídos aos usuários, conforme as features
* definidas para o sistema.
*
* @exception ExcecaoAcessoNaoAutorizado Lançada quando o usuário não possui
* o perfil soliticitado.
* @exception ExcecaoAutoriza Lançada quando ocorre algum erro durante a
* verificação.
*/
void usuarioPossuiPerfil(String idUsuario, String nmPerfil, String token,
Map<String, Object> filtrosOpcionais);
/**
* Verifica se o usuário possui alguma atribuição com uma determinada
* transação.
* O método lança uma ExcecaoAcessoNaoAutorizado caso o usuário não possua
* a transação soliticitada.
*
* @param idUsuario CPF do usuário logado na aplicação. Deve ser o mesmo CPF
* presente no token de acesso do Acesso gov.br
* @param nmTransacao Nome da transação a ser verificada.
* @param token Token de acesso JWT do usuário recuperado do Acesso gov.br.
* @param filtrosOpcionais Mapa com os valores de filtro a serem considerados
* na filtragem dos perfis atribuídos aos usuários, conforme as features
* definidas para o sistema.
*
* @exception ExcecaoAcessoNaoAutorizado Lançada quando o usuário não possui
* a transação soliticitada.
* @exception ExcecaoAutoriza Lançada quando ocorre algum erro durante a
* verificação.
*/
void usuarioPossuiTransacao(String idUsuario, String nmTransacao,
String token, Map<String, Object> filtrosOpcionais);
/**
* Verifica se o usuário possui alguma atribuição com ao menos um dos perfis
* solicitados.
* O método lança uma ExcecaoAcessoNaoAutorizado caso o usuário não possua ao
* menos um entre os perfis soliticitados.
*
* @param idUsuario CPF do usuário logado na aplicação. Deve ser o mesmo CPF
* presente no token de acesso do Acesso gov.br
* @param nmsPerfis Lista com os nomes dos perfis a serem verificados.
* @param token Token de acesso JWT do usuário recuperado do Acesso gov.br.
* @param filtrosOpcionais Mapa com os valores de filtro a serem considerados
* na filtragem dos perfis atribuídos aos usuários, conforme as features
* definidas para o sistema.
*
* @exception ExcecaoAcessoNaoAutorizado Lançada quando o usuário não possui
* ao menos um entre os perfis soliticitados.
* @exception ExcecaoAutoriza Lançada quando ocorre algum erro durante a
* verificação.
*/
void usuarioPossuiAoMenosUmDosPerfis(String idUsuario, List<String> nmsPerfis,
String token, Map<String, Object> filtrosOpcionais);
/**
* Verifica se o usuário possui alguma atribuição com uma ao menos uma das
* transações solicitadas.
* O método lança uma ExcecaoAcessoNaoAutorizado caso o usuário não possua
* ao menos uma entre as transações soliticitadas.
*
* @param idUsuario CPF do usuário logado na aplicação. Deve ser o mesmo CPF
* presente no token de acesso do Acesso gov.br
* @param nmsTransacoes Nomes da transações a serem verificadas.
* @param token Token de acesso JWT do usuário recuperado do Acesso gov.br.
* @param filtrosOpcionais Mapa com os valores de filtro a serem considerados
* na filtragem dos perfis atribuídos aos usuários, conforme as features
* definidas para o sistema.
*
* @exception ExcecaoAcessoNaoAutorizado Lançada quando o usuário não possui
* ao menos uma entre as transações soliticitadas.
* @exception ExcecaoAutoriza Lançada quando ocorre algum erro durante a
* verificação.
*/
void usuarioPossuiAoMenosUmaDasTransacoes(String idUsuario,
List<String> nmsTransacoes, String token, Map<String,
Object> filtrosOpcionais);