Liferay Portal Client Example

In passato e recentemente ho avuto modo di essere in mezzo a due sistemi, uno dei quali Liferay. Il sistema di mezzo era Mule ESBmediatore tra i due sistemi. Il sistema uno pubblicava una serie di messaggi su di una coda JMS, questi venivano consumati da Mule ESB e dopo una serie di elaborazioni  spediti al sistema due, Liferay per l’appunto.

La versione corrente in quel momento di Liferay disponeva dei soli servizi SOAP (i servizi rest sarebbero venuti in seguito), basati sul vecchio framework Apache Axis 1.4 e in stile rpc/encoded. Il componente SOAP di Mule ESB basato su Apache CXF non è compatibile con il modello rpc/encoded. La soluzione venuta in mente a tutti era quella di realizzare il client (da fare utilizzare in seguito a Mule ESB) per servizi di Liferay partendo dal documento WSDL del servizio con il quale occorreva comunicare, e parecchi di voi sapranno quanto noiosa possa essere quest’attiva.

In Liferay qualcuno di “buon cuore” aveva deciso bene di rendere disponibile il Liferay Portal Client, questo ha fatto la felicità mia in primis e in secundis dimezzato il tempo di sviluppo del flow su Mule ESB. In seguito mi sono reso conto che il Liferay Portal Client è conosciuto da un giro ristretto di addetti ai lavori, anche Liferay stessa non menziona dell’esistenza nella propria documentazione SOAP Web Services, è discusso il solito processo di creazione del client via WSDL.

La scorsa settimana mi son ritrovato in una situazione simile dove il Liferay Portal Client è stato utile in un’attività d’integrazione, dimezzandone il tempo di sviluppo. Ho preso la decisione di pubblicare sul mio repository GitHub un esempio completo d’utilizzo del Liferay Portal Client.  Il progetto d’esempio liferay-portal-client-example, basato su Maven esegue i seguenti task:

  • Esegue la login sul sistema Liferay;
  • Recupera la CompanyId sulla base del virtualhost;
  • Recupera UserId dell’utente su base ScreenNameCompanyId;
  • Recupera il GroupId del site Guest;
  • Esegue l’upload di un documento sulla Document Library del site Guest.

A seguire un estratto dei log che mostrano l’esecuzione del main della classe UploadDocumentOnDL. In ordine d’utilizzo, i servizi consumati del portale Liferay sono:

  • Portal_UserService
  • Portal_CompanyService
  • Portal_GroupService
  • Portlet_DL_DLAppService

I documenti WSDL di tutti i servizi esposti dal portale sono raggiungibili all’indirizzo http://${HOST|FQDN|IP}:${TCP/IP PORT}/api/axis

 

Il vantaggio nell’utilizzo del Liferay Portal Client è più che ovvio e speriamo che sempre qualcuno di “buon cuore” faccia lo stesso per i servizi RESTful.

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)