Ir para o conteúdo

Provider Java - Interface

O provider java é composto por uma série de projetos:

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);