SPRING WS – TUTORIAL 6 – USARE GLI INTERCEPTOR

In questo articolo vedremo come poter intercettare le richieste di servizio per effettuare le operazioni prima e dopo l’esecuzione dell’endpoint.

Fondamentale l’interceptor ci permette di:

  • loggare le richieste e le risposte inviate
  • applicare dei meccanismi di sicurezza alle richieste pervenute
  • gestire i fault di sistema
Per definire un interceptor occorre implementare l’interfaccia EndpointInterceptot che presenta i seguenti metodi:
  • handleRequest
  • handleResponse
  • handleFault
Il metodo handleRequest viene invocato prima dell’esecuzione dell’endpoint e il suo utilizzo principale è quello di bloccare l’esecuzione di un servizio.
Il metodo handleResponse viene invocato dopo l’esecuzione dell’endpoint e il sul utilizzo principale è quello di elaborare la risposta, magari aggiungendo attributi.
Il metodo handleFault viene invocato dopo l’esecuzione di un fault con finalità analoghe a quelle del metodo handleResponse.
Per chi non avesse particolari esigenze Spring offre già alcune implementazioni di interceptor:
  • PayloadLoggingInterceptor
  • PayloadValidatingInterceptor
  • PayloadTransformingInterceptor
Il PayloadLoggingInterceptor permette di loggare le richieste e le risposte.
Il PayloadValidatingInterceptor valida le richieste e le risposte in base ad uno schema xsd indicato nelle sue properties.
Il PayloadTransformingInterceptor effettua una transformazione delle richieste e delle risposte basate su XSLT. Viene usato quando il server gestisce più versioni dello stesso servizio.

Nel nostro progetto applichiamo un logger delle richieste e delle risposte e un validatore, ottenendo una configurazione di questo tipo.