He usado Jersey durante la mayor parte de un año y acabo de tropezar con un problema para el cual no puedo encontrar la respuesta: ¿cómo se intercepta (o engancha) el ciclo de vida de la solicitud de Jersey?¿Cómo se intercepta una solicitud durante el ciclo de vida de Jersey?
Idealmente, podría realizar algún filtrado/validación/rechazo personalizado entre el momento en que el contenedor acepta la solicitud de la red y el momento en que se llaman a mis métodos de manejo. Puntos de bonificación si hay una manera fácil de filtrar los interceptores por subruta (por ejemplo, tener un interceptor para cualquier cosa debajo de /, otra para cualquier cosa debajo/usuario /, etc.).
Gracias!
Editar: Para ser un poco más claro, la idea general aquí es poder escribir algún código que se ejecutará para muchas llamadas a la API sin tener que llamar explícitamente a ese código desde cada método del controlador. Esto reduciría el código adicional y eliminaría la necesidad de pasar contextos de solicitud.
¿Qué tipo de filtrado, validación, rechazo quieres? Por ejemplo, puede crear su propio MessageBodyWriter/Reader para manejar la validación. O puede configurar @Context en el constructor para el análisis de encabezado HTTP personalizado o el análisis URI. – Marc
La mayoría de las aplicaciones de esta función estarían relacionadas con la seguridad. Por ejemplo, mi aplicación web (que no sea de Jersey) generará nonces de uso único para ciertas llamadas AJAX (todas bajo la misma ruta) a Jersey. El interceptor sería responsable de verificar la validez de este nonce. – cww
@Marc ¿Puedes contarnos un poco más sobre "O puedes configurar el @ Contexto en el constructor para analizar el encabezado HTTP personalizado o analizar el URI", por favor? – Mat