Plugins

Molte funzionalità di GovWay possono essere personalizzate attraverso l’implementazioni di classi java. Di seguito viene descritto sia come caricare eventuali archivi jar che realizzano l’implementazione sia come registrare i plugins in modo che possano essere utilizzati nelle maschere di configurazione. Entrambi i casi vengono gestiti accendendo al menù “Configurazione -> Generale” utilizzando la console in modalità avanzata (sezione Modalità Avanzata) all’interno della sezione Plugins (Fig. 485).

../../../_images/AvanzatoPlugins.png

Fig. 485 Configurazione dei plugins

I plugin supportati riguardano:

  • Autenticazione: processo di autenticazione trasporto personalizzato (Autenticazione Trasporto) attraverso l’implementazione dell’interfaccia org.openspcoop2.pdd.core.autenticazione.pa.IAutenticazionePortaApplicativa per un’erogazione o dell’interfaccia org.openspcoop2.pdd.core.autenticazione.pd.IAutenticazionePortaDelegata per una fruizione.

  • Autorizzazione: processo di autorizzazione personalizzato (Autorizzazione) attraverso l’implementazione dell’interfaccia org.openspcoop2.pdd.core.autorizzazione.pa.IAutorizzazionePortaApplicativa per un’erogazione o dell’interfaccia org.openspcoop2.pdd.core.autorizzazione.pd.IAutorizzazionePortaDelegata per una fruizione.

  • Autorizzazione dei Contenuti: processo di autorizzazione dei contenuti personalizzato (Autorizzazione Contenuti) attraverso l’implementazione dell’interfaccia org.openspcoop2.pdd.core.autorizzazione.pa.IAutorizzazioneContenutoPortaApplicativa per un’erogazione o dell’interfaccia org.openspcoop2.pdd.core.autorizzazione.pd.IAutorizzazioneContenutoPortaDelegata per una fruizione.

  • RateLimiting: consente di personalizzare sia il tipo di raggrupamento utilizzato nel conteggio dei valori di soglia sia il criterio di filtro per l’applicazione della policy (Filtro o Raggruppamento Personalizzato) attraverso l’implementazione dell’interfaccia org.openspcoop2.pdd.core.controllo_traffico.plugins.IRateLimiting.

  • Header di Integrazione: consente di personalizzare i metadati scambiati con il client e/o con il server (Altri header di Integrazione) attraverso l’implementazione di una delle seguenti interfacce:

    • org.openspcoop2.pdd.core.integrazione.IGestoreIntegrazionePA: per un’erogazione di API REST.

    • org.openspcoop2.pdd.core.integrazione.IGestoreIntegrazionePASoap: per un’erogazione di API SOAP.

    • org.openspcoop2.pdd.core.integrazione.IGestoreIntegrazionePD: per una fruizione di API REST.

    • org.openspcoop2.pdd.core.integrazione.IGestoreIntegrazionePDSoap: per una fruizione di API SOAP.

  • Connettore: consente di implementare un connettore personalizzato (Connettori) attraverso l’implementazione dell’interfaccia org.openspcoop2.pdd.core.connettori.IConnettore .

  • Connettore multiplo: consente di implementare una logica di consegna rispetto alla definizione di più connettori in maniera simile a quanto descritto in Load Balancer e in Consegna Condizionale. La modalità di consenga selezionata dovrà essere configurata con il plugin personalizzato attraverso l’implementazione dell’interfaccia org.openspcoop2.pdd.core.behaviour.IBehaviour .

  • Token Dynamic Discovery: consente di implementare una logica di parser personalizzato della risposta ottenuta invocando il servizio di discovery (Token Policy Validazione) attraverso l’implementazione dell’interfaccia org.openspcoop2.pdd.core.token.parser.IDynamicDiscoveryParser.

  • Token Validazione: consente di implementare una logica di parser personalizzato del token JWT (Validazione JWT, Token Introspection) attraverso l’implementazione dell’interfaccia org.openspcoop2.pdd.core.token.parser.ITokenParser.

  • Token Negoziazione: consente di implementare una logica di parser personalizzato della risposta ottenuta durante la negoziazione (Personalizzazione richiesta http di negoziazione) attraverso l’implementazione dell’interfaccia org.openspcoop2.pdd.core.token.parser.INegoziazioneTokenParser.

  • Attribute Authority: consente di implementare una logica di parser personalizzato della risposta ottenuta dall’attribute authority (Risposta della Attribute Authority) attraverso l’implementazione dell’interfaccia org.openspcoop2.pdd.core.token.attribute_authority.IRetrieveAttributeAuthorityResponseParser.

  • Message Handler: handler che consentono di personalizzare la gestione del messaggi attraverso le varie fasi di processamento. L’attivazione di un handler può avvenire sia a livello di singola erogazione/fruizione (Opzioni Avanzate per Erogazioni/Fruizioni) sia a livello globale accendendo al menù “Configurazione -> Generale” e selezionando gli handler all’interno della sezione Handlers (Fig. 486). Uno specifico message handler deve implementare una delle seguenti interfacce a seconda della fase di processamento:

    • org.openspcoop2.pdd.core.handlers.PreInRequestHandler: precede l’inizio di accoglienza della richiesta.

    • org.openspcoop2.pdd.core.handlers.InRequestHandler: fase successivo alla comprensione dei dati della richiesta.

    • org.openspcoop2.pdd.core.handlers.InRequestProtocolHandler: fase successivo all’identificazione dell’API e dei soggetti coinvolti.

    • org.openspcoop2.pdd.core.handlers.OutRequestHandler: precede l’inoltro dei dati della richiesta al backend.

    • org.openspcoop2.pdd.core.handlers.PostOutRequestHandler: fase immediatamente successiva all’inoltro dei dati della richiesta al backend.

    • org.openspcoop2.pdd.core.handlers.PreInResponseHandler: precede l’inizio di accoglienza della risposta.

    • org.openspcoop2.pdd.core.handlers.InResponseHandlerr: fase successivo alla comprensione dei dati della risposta.

    • org.openspcoop2.pdd.core.handlers.OutResponseHandler: precede l’inoltro dei dati della risposta al mittente.

    • org.openspcoop2.pdd.core.handlers.PostOutResponseHandler: fase immediatamente successiva all’inoltro dei dati della risposta al mittente.

  • Service Handler: handler che consentono di gestire fasi di avvio o shutdown di GovWay. L’attivazione di un handler può avvenire accendendo al menù “Configurazione -> Generale” e selezionando gli handler all’interno della sezione Handlers (Fig. 486). Uno specifico service handler deve implementare una delle seguenti interfacce a seconda della fase di processamento:

    • org.openspcoop2.pdd.core.handlers.InitHandler: fase di startup di GovWay.

    • org.openspcoop2.pdd.core.handlers.ExitHandler: fase di shutdown di GovWay.

../../../_images/AvanzatoConfigGeneraleHandlers.png

Fig. 486 Configurazione Generale: registrazione di message o service handler