Provider Java - Exemplo de Uso¶
Para chamar os métodos disponíveis, é preciso realizar a configuração e ter conhecimento da interface.
Dados de autenticação a serem guardados
Śua aplicação deve guardar, para utilizar nas chamadas ao provider do Autoriza:
o CPF do usuário logado
o token de acesso do Acesso gov.br
As chamadas a cada um dos métodos para validação de acesso são exemplificadas a seguir.
Avaliação de políticas
Para aplicar as políticas de acesso a um recurso da aplicação, o método a ser executado é o avaliarPoliticas.
O exemplo a seguir possui parâmetros fixos, apenas a título de exemplo. No uso na sua aplicação, recupere os parâmetros da requisição que está sendo processada no momento.
String cpfUsuario = "27458032049";
String caminhoRecurso = "/private/protocolo";
String verboHTTP = "GET";
String tokenAcessoGov = "eyJraWQiOiJyc2ExIiwiYWxnIjoiUlMyNTYifQ.eyJzdWIiOiIyNzQ1ODAzMjA0OSIsImF1ZCI6ImF1dG9yaXphZ292LmVzdGFsZWlyby5zZXJwcm8uZ292LmJyIiwic2NvcGUiOlsiZW1haWwiLCJvcGVuaWQiLCJwaG9uZSIsInByb2ZpbGUiXSwiYW1yIjoicGFzc3dkIiwiaXNzIjoiaHR0cHM6XC9cL3Nzby5zdGFnaW5nLmFjZXNzby5nb3YuYnJcLyIsImV4cCI6MTYxMDU0MTI2NywiaWF0IjoxNjEwNTM3NjY3LCJqdGkiOiIxY2ViMmI5ZS1kNzQ1LTQxYzItYTZmZC03NDc2Y2M5MzNjY2UifQ.csF9tWCkyy4_dEuCvMMwTmrnYjM20WfF_5z2pP1Hl9sYlK2hM-I6BSXduiDnE-OChTSDNOs4mQ23BuSfI5WbkJP1qGi7LoCTZq2barkONFqX5rtrqCvaFi_LbvwD0MygO1MZn_f6mbIhPa2tU_KJWGihmoDZEnzLZI-ualRBP0yym-zsisnQrozqk3eVFrPJ4dvzcG5Te9GkgZV0KmIwYyBxJTu5W1EYgg23w2UBElgZlAggSSY2DJIZ2ID_qSyZboyydT4y7L-zrGE0RQabxm9saUQXnwsT9Hw49h9pZjakoo33SJIaWLxd6HtujC_m3dBKptTRr9XSv2rebj9wQQ";
Map<String, Object> filtrosOpcionais = null;
PontoExecucaoPoliticas pep = FabricaInjecao.getInstancia().getBean(PontoExecucaoPoliticas.class);
pep.avaliarPoliticas(cpfUsuario, caminhoRecurso, verboHTTP, tokenAcessoGov, filtrosOpcionais);
Verificar se o usuário possui um determinado perfil
Caso você prefira definir suas políticas de acesso no código da sua aplicação, você pode perguntar ao Autoriza diretamente se o usuário possui um determinado perfil.
O exemplo a seguir possui parâmetros fixos, apenas a título de exemplo. No uso na sua aplicação, defina o perfil a ser consultado conforme a sua necessidade.
String cpfUsuario = "27458032049";
String nmPerfil = "GESTOR PROTOCOLO";
String tokenAcessoGov = "eyJraWQiOiJyc2ExIiwiYWxnIjoiUlMyNTYifQ.eyJzdWIiOiIyNzQ1ODAzMjA0OSIsImF1ZCI6ImF1dG9yaXphZ292LmVzdGFsZWlyby5zZXJwcm8uZ292LmJyIiwic2NvcGUiOlsiZW1haWwiLCJvcGVuaWQiLCJwaG9uZSIsInByb2ZpbGUiXSwiYW1yIjoicGFzc3dkIiwiaXNzIjoiaHR0cHM6XC9cL3Nzby5zdGFnaW5nLmFjZXNzby5nb3YuYnJcLyIsImV4cCI6MTYxMDU0MTI2NywiaWF0IjoxNjEwNTM3NjY3LCJqdGkiOiIxY2ViMmI5ZS1kNzQ1LTQxYzItYTZmZC03NDc2Y2M5MzNjY2UifQ.csF9tWCkyy4_dEuCvMMwTmrnYjM20WfF_5z2pP1Hl9sYlK2hM-I6BSXduiDnE-OChTSDNOs4mQ23BuSfI5WbkJP1qGi7LoCTZq2barkONFqX5rtrqCvaFi_LbvwD0MygO1MZn_f6mbIhPa2tU_KJWGihmoDZEnzLZI-ualRBP0yym-zsisnQrozqk3eVFrPJ4dvzcG5Te9GkgZV0KmIwYyBxJTu5W1EYgg23w2UBElgZlAggSSY2DJIZ2ID_qSyZboyydT4y7L-zrGE0RQabxm9saUQXnwsT9Hw49h9pZjakoo33SJIaWLxd6HtujC_m3dBKptTRr9XSv2rebj9wQQ";
Map<String, Object> filtrosOpcionais = new HashMap<String, Object>();
filtrosOpcionais.put("cdOrgaoSiape", 17000l);
PontoExecucaoPoliticas pep = FabricaInjecao.getInstancia().getBean(PontoExecucaoPoliticas.class);
pep.usuarioPossuiPerfil(cpfUsuario, nmPerfil, tokenAcessoGov, filtrosOpcionais);
No exemplo acima, só serão considerados os perfis atribuídos cujo valor da Órgão SIAPE é 17000.
Verificar se o usuário possui acesso a uma determinada transação
Caso você prefira definir suas políticas de acesso no código da sua aplicação, você também pode perguntar ao Autoriza diretamente se o usuário possui uma determinada transação.
O exemplo a seguir possui parâmetros fixos, apenas a título de exemplo. No uso na sua aplicação, defina a transação a ser consultada conforme a sua necessidade.
String cpfUsuario = "27458032049";
String nmTransacao = "MANTER PROTOCOLO";
String tokenAcessoGov = "eyJraWQiOiJyc2ExIiwiYWxnIjoiUlMyNTYifQ.eyJzdWIiOiIyNzQ1ODAzMjA0OSIsImF1ZCI6ImF1dG9yaXphZ292LmVzdGFsZWlyby5zZXJwcm8uZ292LmJyIiwic2NvcGUiOlsiZW1haWwiLCJvcGVuaWQiLCJwaG9uZSIsInByb2ZpbGUiXSwiYW1yIjoicGFzc3dkIiwiaXNzIjoiaHR0cHM6XC9cL3Nzby5zdGFnaW5nLmFjZXNzby5nb3YuYnJcLyIsImV4cCI6MTYxMDU0MTI2NywiaWF0IjoxNjEwNTM3NjY3LCJqdGkiOiIxY2ViMmI5ZS1kNzQ1LTQxYzItYTZmZC03NDc2Y2M5MzNjY2UifQ.csF9tWCkyy4_dEuCvMMwTmrnYjM20WfF_5z2pP1Hl9sYlK2hM-I6BSXduiDnE-OChTSDNOs4mQ23BuSfI5WbkJP1qGi7LoCTZq2barkONFqX5rtrqCvaFi_LbvwD0MygO1MZn_f6mbIhPa2tU_KJWGihmoDZEnzLZI-ualRBP0yym-zsisnQrozqk3eVFrPJ4dvzcG5Te9GkgZV0KmIwYyBxJTu5W1EYgg23w2UBElgZlAggSSY2DJIZ2ID_qSyZboyydT4y7L-zrGE0RQabxm9saUQXnwsT9Hw49h9pZjakoo33SJIaWLxd6HtujC_m3dBKptTRr9XSv2rebj9wQQ";
Map<String, Object> filtrosOpcionais = new HashMap<String, Object>();
filtrosOpcionais.put("protocolo", "1234567890");
PontoExecucaoPoliticas pep = FabricaInjecao.getInstancia().getBean(PontoExecucaoPoliticas.class);
pep.usuarioPossuiTransacao(cpfUsuario, nmTransacao, tokenAcessoGov, filtrosOpcionais);
No exemplo acima, só serão considerados os perfis atribuídos cujo valor da feature configurável protocolo é "1234567890".
Verificar se o usuário possui ao menos um dos perfis dentro de uma lista de perfis
Caso você prefira definir suas políticas de acesso no código da sua aplicação, você também pode perguntar ao Autoriza diretamente se o usuário possui ao menos um entre uma lista de perfis.
O exemplo a seguir possui parâmetros fixos, apenas a título de exemplo. No uso na sua aplicação, defina os perfis a serem consultados conforme a sua necessidade.
String cpfUsuario = "27458032049";
String nmsPerfis = Arrays.asList(new String[]{"GESTOR PROTOCOLO", "ADMINISTRADOR"});
String tokenAcessoGov = "eyJraWQiOiJyc2ExIiwiYWxnIjoiUlMyNTYifQ.eyJzdWIiOiIyNzQ1ODAzMjA0OSIsImF1ZCI6ImF1dG9yaXphZ292LmVzdGFsZWlyby5zZXJwcm8uZ292LmJyIiwic2NvcGUiOlsiZW1haWwiLCJvcGVuaWQiLCJwaG9uZSIsInByb2ZpbGUiXSwiYW1yIjoicGFzc3dkIiwiaXNzIjoiaHR0cHM6XC9cL3Nzby5zdGFnaW5nLmFjZXNzby5nb3YuYnJcLyIsImV4cCI6MTYxMDU0MTI2NywiaWF0IjoxNjEwNTM3NjY3LCJqdGkiOiIxY2ViMmI5ZS1kNzQ1LTQxYzItYTZmZC03NDc2Y2M5MzNjY2UifQ.csF9tWCkyy4_dEuCvMMwTmrnYjM20WfF_5z2pP1Hl9sYlK2hM-I6BSXduiDnE-OChTSDNOs4mQ23BuSfI5WbkJP1qGi7LoCTZq2barkONFqX5rtrqCvaFi_LbvwD0MygO1MZn_f6mbIhPa2tU_KJWGihmoDZEnzLZI-ualRBP0yym-zsisnQrozqk3eVFrPJ4dvzcG5Te9GkgZV0KmIwYyBxJTu5W1EYgg23w2UBElgZlAggSSY2DJIZ2ID_qSyZboyydT4y7L-zrGE0RQabxm9saUQXnwsT9Hw49h9pZjakoo33SJIaWLxd6HtujC_m3dBKptTRr9XSv2rebj9wQQ";
Map<String, Object> filtrosOpcionais = new HashMap<String, Object>();
filtrosOpcionais.put("cdOrgaoSiape", 17000l);
filtrosOpcionais.put("protocolo", "1234567890");
filtrosOpcionais.put("tag", "GESTAO");
filtrosOpcionais.put("idAtribuicao", 789123l);
PontoExecucaoPoliticas pep = FabricaInjecao.getInstancia().getBean(PontoExecucaoPoliticas.class);
pep.usuarioPossuiAoMenosUmDosPerfis(cpfUsuario, nmsPerfis, tokenAcessoGov, filtrosOpcionais);
No exemplo acima, só serão considerados os perfis atribuídos cujo valor da feature configurável protocolo é "1234567890", e cujo valor do Órgão SIAPE é 17000. Adicionalmente, só serão considerados os perfis que estejam vinculados à tag "GESTAO" e a atribuição de perfis (feature Habilitação) cujo identificador é 789123.
Verificar se o usuário possui acesso a ao menos uma transação dentro de uma lista de transações
Caso você prefira definir suas políticas de acesso no código da sua aplicação, você também pode perguntar ao Autoriza diretamente se o usuário possui ao menos uma entre uma lista de transações.
O exemplo a seguir possui parâmetros fixos, apenas a título de exemplo. No uso na sua aplicação, defina as transações a serem consultadas conforme a sua necessidade.
String cpfUsuario = "27458032049";
String nmsTransacoes = Arrays.asList(new String[]{"MANTER PROTOCOLO", "CONSULTAR PROCESSOS"});
String tokenAcessoGov = "eyJraWQiOiJyc2ExIiwiYWxnIjoiUlMyNTYifQ.eyJzdWIiOiIyNzQ1ODAzMjA0OSIsImF1ZCI6ImF1dG9yaXphZ292LmVzdGFsZWlyby5zZXJwcm8uZ292LmJyIiwic2NvcGUiOlsiZW1haWwiLCJvcGVuaWQiLCJwaG9uZSIsInByb2ZpbGUiXSwiYW1yIjoicGFzc3dkIiwiaXNzIjoiaHR0cHM6XC9cL3Nzby5zdGFnaW5nLmFjZXNzby5nb3YuYnJcLyIsImV4cCI6MTYxMDU0MTI2NywiaWF0IjoxNjEwNTM3NjY3LCJqdGkiOiIxY2ViMmI5ZS1kNzQ1LTQxYzItYTZmZC03NDc2Y2M5MzNjY2UifQ.csF9tWCkyy4_dEuCvMMwTmrnYjM20WfF_5z2pP1Hl9sYlK2hM-I6BSXduiDnE-OChTSDNOs4mQ23BuSfI5WbkJP1qGi7LoCTZq2barkONFqX5rtrqCvaFi_LbvwD0MygO1MZn_f6mbIhPa2tU_KJWGihmoDZEnzLZI-ualRBP0yym-zsisnQrozqk3eVFrPJ4dvzcG5Te9GkgZV0KmIwYyBxJTu5W1EYgg23w2UBElgZlAggSSY2DJIZ2ID_qSyZboyydT4y7L-zrGE0RQabxm9saUQXnwsT9Hw49h9pZjakoo33SJIaWLxd6HtujC_m3dBKptTRr9XSv2rebj9wQQ";
Map<String, Object> filtrosOpcionais = new HashMap<String, Object>();
filtrosOpcionais.put("cdOrgaoSiape", 17000l);
filtrosOpcionais.put("protocolo", "1234567890");
filtrosOpcionais.put("cnpj", "54168882000128");
filtrosOpcionais.put("tag", "CONTABILIDADE");
PontoExecucaoPoliticas pep = FabricaInjecao.getInstancia().getBean(PontoExecucaoPoliticas.class);
pep.usuarioPossuiAoMenosUmaDasTransacoes(cpfUsuario, nmsTransacoes, tokenAcessoGov, filtrosOpcionais);
No exemplo acima, só serão considerados os perfis atribuídos cujo valor da da feature configurável protocolo é "1234567890", cujo valor do Órgão SIAPE é 17000, e cujo valor da feature configurável cnpj é "54168882000128". Adicionalmente, só serão considerados os perfis que estejam vinculados à tag "CONTABILIDADE".