Custom Java Interceptors

Os interceptores personalizados Java permitem ao usuário criar e executar classes Java customizadas, contidas em arquivos .jar, seguindo um modelo específico de desenvolvimento.

Para cadastrar interceptores Java personalizados, você deve ter um arquivo .jar na sua máquina e subi-lo para o Manager. Nesta página, explicamos como configurar o interceptor no Manager e oferecemos exemplos de arquivos .jar para ajudá-lo.

Criando um projeto de interceptor

Para criar um interceptor personalizado no Manager, é necessário subir o arquivo .jar do seu projeto para a nossa Plataforma.

Para um .jar ser considerado válido, deve ter estas características:

  • deve conter pelo menos uma classe @ApiSuiteInterceptor;

  • deve conter pelo menos um método @InterceptorMethod;

  • por padrão, o tamanho máximo do arquivo deve ser de 1Mb;

  • não deve conter outros .jar dentro do arquivo;

  • deve ser implementado em pelo menos Java 8 e com uso de openJDK;

  • deve fazer uso de dependência (veja arquivos abaixo).

um erro comum é selecionar pastas como bin e target além da src para compilar o código fonte no arquivo .jar, o que pode gerar erro por criar referências inválidas a outros arquivos. Somente a referência à pasta src é necessária.

Dependency

Esta é a dependência utilizada:

Se você estiver utilizando uma versão mais antiga do Manager, pode ser que precise desta outra dependência (e pode entrar em contato com o nosso time de suporte se precisar de ajuda quanto a isso):

Exemplos

Veja abaixo alguns exemplos de custom interceptors Java:

Você pode checar a seção de Custom Java: Criação para ver um exemplo em mais detalhes da criação ao upload de um custom interceptor Java na API Platform.

JavaDocs

Aqui estão as informações sobre os métodos e classes utilizados:

Cadastrando um novo interceptor no Manager

Novos interceptores são criados na página do menu Interceptors, por meio do botão + no canto inferior direito da tela.

custom create

Para criar um interceptor Java, clique ou passe o cursor pelo botão + e selecione a opção Create Custom Java.

custom java create

Para configurar o interceptor Java, é necessário preencher alguns atributos, conforme mostra a figura abaixo.

custom java new
  • Name: identifica o nome do interceptor Java que será criado;

  • Select JAR file: botão utilizado para selecionar o arquivo .jar que será utilizado;

  • Abort request if fail: quando marcada, a opção estabelece que o Gateway não encaminhará a requisição para o backend caso algum erro aconteça na requisição, devolvendo a resposta de erro imediatamente para o cliente.

Após inserir os dados, basta clicar em Save. Então, o sistema realizará uma análise para validar o arquivo .jar inserido. Se ele for válido (seguindo as características que detalhamos acima), o sistema irá salvá-lo. Caso contrário, a mensagem "Invalid JAR file" ("Arquivo JAR inválido") será exibida e processo não será continuado.

Listagem de interceptores Java

Os interceptores Java existentes são exibidos em cards separados por tags. Os interceptores que não forem atribuídos a uma tag serão listados na categoria Uncategorized e com uma etiqueta sinalizando que se tratam de custom Java interceptors.

custom java list

Configurando o interceptor

Para utilizar o interceptor, basta arraste-o para o fluxo desejado. Custom interceptors podem ser incluídos tanto no fluxo de requisição quanto no de resposta.

Uma janela modal será aberta exibindo o nome do interceptor e a lista contendo as classes e métodos que podem ser utilizados para interceptar as chamadas.

config java interceptor

É possível especificar parâmetros para serem utilizados dentro dos interceptores Java. Para isso, basta adicionar as chaves/valores e interpretar esses parâmetros dentro do método que irá interceptar a chamada.

Quando houver qualquer edição do interceptor fora do fluxo de execução, ele deverá ser completamente removido de todos os pontos de execução e inserido novamente, já que as edições feitas no interceptor não serão refletidas em suas instâncias que já estejam adicionadas aos fluxos.

Segurança

Ao receber uma requisição, o sistema executa uma validação prévia no código do arquivo .jar do interceptor em busca de funções potencialmente maliciosas que possam comprometê-lo de alguma maneira. Caso o sistema encontre alguma potencial violação de segurança, o interceptor não será executado e uma exceção de segurança será lançada.

Thanks for your feedback!
EDIT
How useful was this article to you?