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. |
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.
Para criar um interceptor Java, clique ou passe o cursor pelo botão + e selecione a opção Create Custom Java.
Para configurar o interceptor Java, é necessário preencher alguns atributos, conforme mostra a figura abaixo.
-
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.
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.
É 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.
Share your suggestions with us!
Click here and then [+ Submit idea]