Aggiungere HTTP Header allo step HTTP di Pentaho Data Integration

Ricorderete sicuramente l’articolo Come consumare un servizio SOAP con Pentaho DI scritto da Alessandro Nizzo, dove l’autore mostrava step-by-step come consumare un servizio SOAP all’interno di una trasformazione di PDI (Pentaho Data Integration) attraverso l’utilizzo del componente HTTP POST.

In uno scenario come quello illustrato da Alessandro Nizzo, potrebbe nascere l’esigenza di dover consumare un servizio SOAP che richieda però l’invio di uno o più HTTP Header nella richiesta verso il servizio SOAP.

Il componente HTTP POST di PDI, consente di decidere quali parametri della richiesta devono essere inseriti come HTTP Header, così come indicato anche sulla documentazione di questo componente.

Supponiamo che il servizio SOAP richieda che sia valorizzato l’HTTP Header SystemID (di pura invenzione) con un valore che indichi l’identificativo del sistema da cui proviene la richiesta SOAP. In questo caso, assegneremo il valore https://www.dontesta.it/ all’HTTP Header SystemID.

Riprendendo la trasformazione dell’articolo Come consumare un servizio SOAP con Pentaho DI, la Figura 1 mostra il dettaglio dello step Parametri WS, a questo step dobbiamo aggiungere un parametro addizionale che chiameremo SystemID.

 

Figura 1 – Dettaglio dei parametri del Web Service

La Figura 2 mostra il nuovo parametro SystemID che insieme ai precedenti parametri d’ingresso farà parte della richiesta SOAP. La Figura 3 mostra invece il valore che abbiamo deciso di assegnare al parametro SystemID.

Figura 2 - Aggiunta del parametro SystemID

Figura 2 – Aggiunta del parametro SystemID

 

Figura 3 - Valore assegnato al parametro SystemID

Figura 3 – Valore assegnato al parametro SystemID

L’ultima modifica da fare, affinchè il parametro SystemID sia passato come HTTP Header, è sullo step HTTP POST della trasformazione. La Figura 4 mostra appunto l’aggiunta del parametro SystemID istruendo il componente HTTP POST affinchè lo inserisca nell’HTTP Header della richiesta.

Figura 4 - Inserimento del nuovo parametro SystemId come HTTP Header

Figura 4 – Inserimento del nuovo parametro SystemId come HTTP Header

A questo punto siamo pronti per verificare che la nostra modifica alla trasformazione funzioni correttamente. Avviamo quindi la trasformazione, e se tutto funziona a dovere, la richiesta HTTP POST (SOAP) dovrà contenere il parametro SystemID come HTTP Header, così come mostrato in Figura 5.

Figura 5 - Vista della richiesta POST con evidenza dell'HTTP Header

Figura 5 – Vista della richiesta POST con evidenza dell’HTTP Header

Abbiamo visto come con pochissimo sforzo siamo riusciti ad aggiungere un HTTP Header alla richiesta verso il servizio SOAP. Siamo ovviamente liberi di aggiungere anche più di un HTTP Header.

0 Condivisioni

Antonio Musarra

I began my journey into the world of computing from an Olivetti M24 PC (http://it.wikipedia.org/wiki/Olivetti_M24) bought by my father for his work. Day after day, quickly taking control until … Now doing business consulting for projects in the enterprise application development using web-oriented technologies such as J2EE, Web Services, ESB, TIBCO, PHP.

Potrebbero interessarti anche...

Cos'è il progetto CIE/CNS Apache Docker - Developers Italia

In questo video https://youtu.be/TcAzn1POhsM introdurrò il progetto CIE/CNS Apache Docker di Developers Italia (https://developers.italia.it/it/cie/#resourcecontent-3) nato circa due anni fa.

L'obiettivo di questo progetto è quello di fornire un template pronto all'uso che realizza un sistema di autenticazione tramite la Smart Card TS-CNS (o CNS) e la CIE (Carta d'Identità Elettronica) basato su Apache HTTP. Ognuno può poi modificare o specializzare questo progetto sulla base delle proprie esigenze Si tratta di un progetto docker per la creazione di un container che implementa un sistema di mutua autenticazione o autenticazione bilaterale SSL/TLS.

Questo meccanismo di autenticazione richiede anche il certificato digitale da parte del client, certificato che in questo caso risiede all'interno della TS-CNS o della CIE. La particolarità del sistema implementato (attraverso questo container) è quella di consentire l'autenticazione tramite:

  • La TS-CNS (Tessera Sanitaria - Carta Nazionale Servizi), rilasciata dalla regione di appartenenza;
  • La CIE (Carta d'Identità Elettronica), rilasciata dal comune di residenza.

Nella versione 2.0.0 il progetto è stato aggiornato per essere uniforme alle linee guida di Bootstrap Italia. A seguire alcune risorse che possono essere utili.

  • Cos’è il progetto CIE/CNS Apache Docker (http://bit.ly/3aJ5Gbl)
  • CIE Carta d'Identità Elettronica (https://developers.italia.it/it/cie/)
  • Carta Nazionale dei Servizi (https://www.agid.gov.it/it/piattaforme/carta-nazionale-servizi)
  • Raspberry Pi – Un esempio di applicazione della TS-CNS (https://bit.ly/3hkJ8Aj)
  • Pubblicare il servizio CIE/CNS Apache Docker su Azure Cloud (http://bit.ly/3aPoq8V)
  • Come accedere al portale VETINFO tramite TS-CNS e Mac OS (http://bit.ly/2VFMKq7)