| = JAX-RS Filter |
| :index-group: Misc |
| :jbake-type: page |
| :jbake-status: published |
| |
| == ContainerRequestFilter e ContainerResponseFilter |
| |
| Os filtros podem ser utilizados no seu projeto através da implementação das interfaces ContainerRequestFilter ou ContainerResponseFilter. Cada interface lida com um cenário de filtro separado - entrada ou saída - com parâmetros de função exclusivos para o método *filter * substituído. Note: a anotação **@Provider** na classe é necessária para executar o mapeamento do servlet independente do web.xml. |
| |
| [note] |
| |
| NOTE: É possível fazer redirecionamentos usando o argumento ContextRequestFilter fornecido. O método abortWith(Response response) permite que o desenvolvedor altere o destino da solicitação conforme ele é recebido, de acordo com a lógica de filtro fornecida. O código incluído neste exemplo pode ser executado no servidor de aplicação TomEE. As etapas para replicar estão abaixo do snippet de código. |
| |
| [source,java,numbered] |
| ---- |
| @Provider |
| public class GenericServletFilter implements ContainerRequestFilter, ContainerResponseFilter { |
| |
| /** |
| * Incoming (request) filter |
| */ |
| @Override |
| public void filter(ContainerRequestContext ctx) { |
| // your filter logic |
| } |
| |
| /** |
| * Outbound (response) filter |
| */ |
| @Override |
| public void filter(ContainerRequestContext requestCtx, |
| ContainerResponseContext responseCtx) { |
| // your filter logic |
| } |
| |
| } |
| ---- |
| |
| Etapas para replicar: |
| |
| 1. Deploy do application e jaxrs-filter.war no diretório webapps. |
| 2. Servidor de inicialização e vá para http://localhost:8080/jaxrs-filter/test |
| * Aqui você deve ser redirecionado para uma página dizendo 401 Unauthorized |
| 3. Anexe o parâmetro de consulta app_session_id=foobarbaz à mesma URL(http://localhost:8080/jaxrs-filter/test?app_session_id=foobarbaz) |
| * Aqui você deve obter acesso. O filtro permite que a solicitação continue e você deve ver algumas informações HTTP básicas sobre a solicitação. |