Ci sono due parti di un'interazione REST, il client e il server. Jersey/JAX-RS-2 ha sia un'API Client sia l'API "principale" lato server. Quando lavoriamo con l'API client, potremmo utilizzare lo ClientRequestFilter
e, quando utilizziamo l'API lato server, utilizzeremmo lo ContainerRequestFilter
. Non c'è alcuna possibilità di combinarli, dovrebbero essere strettamente utilizzati con il lato appropriato dell'interazione.
A ContainerRequestFilter
(Lato server) esempio sarebbe quello di fare un po 'di autorizzazione/autenticazione, che un caso d'uso piuttosto comune per il filtro lato server. Il filtro verrà richiamato prima di raggiungere le tue risorse
Client ---> Internet ---> Server ---> Filter ---> Resource
A ClientRequestFilter
(lato client) esempio potrebbe essere un po 'di implementare la cache lato client (una sorta di beffardo una cache del browser). Oppure un caso (già implementato) è un filtro per codificare un nome utente e una password per l'autenticazione BASIC. Prima che la richiesta venga effettivamente inviata al server, il filtro client verrà richiamato.
Client ---> Filter ---> Internet ---> Server ---> Resource
Ci sono anche XxxResponseFilters
che seguono il seguente flusso
Resource ---> ContainerResponseFilter ---> Server ---> Internet ---> Client
Server ---> Internet ---> ClientResponseFilter ---> Client
fonte
2014-12-20 07:55:36
Grazie è stato davvero utile. – sunleo