Adeguamento al formato di errori

Le Linee Guida di Interoperabilità prevedono l’adozione del formato Problem Details , come definito nella specifica RFC 7807 (https://tools.ietf.org/html/rfc7807), per la rappresentazione strutturata delle informazioni di errore.

Tutti gli errori generati da GovWay (ad esempio, errori di autenticazione o indisponibilità del backend) rispettano tale specifica e risultano conformi alle Linee Guida, come descritto nella sezione REST Problem Details - RFC 7807.

Al contrario, il formato degli errori previsto dalle specifiche SUAP e SUE non risulta conforme, in quanto prevede la trasmissione degli errori attraverso oggetti JSON con una struttura differente, di cui si riporta di seguito un esempio:

{ "code": "ERROR_401_001", "message": "PDND token not found"}

Utilizzando GovWay per la gestione dell’interoperabilità ModI, non è possibile delegare direttamente a livello di backend tutti i casi di errore previsti dalle specifiche tecniche (SUAP - DPR-160, SUE - Allegato Tecnico). Ciò è dovuto al fatto che alcune comunicazioni vengono gestite direttamente da GovWay stesso, in presenza di errori di interoperabilità (ad esempio, token PDND non valido) o di problematiche di connettività verso il backend (ad esempio, connection refused o timeout).

Per garantire la conformità con i formati di errore attesi è possibile attivare un plugin di tipo ‘message handler’ (Opzioni Avanzate per Erogazioni/Fruizioni) all’interno dell’erogazione dei servizi SUAP o SUE.

Questo plugin consente di gestire i casi di errore e di trasformarli nella struttura JSON attesa dalle rispettive specifiche tecniche.

Gli errori gestiti da GovWay sono i seguenti:

  • ERROR_400_001 - incorrect request input: uno o più parametri e/o la forma del body dell’operation non rispettano la sintassi definita nell’IDL OpenAPI.

  • ERROR_401_001 - PDND token not found: token di autorizzazione della PDND non presente nella richiesta.

  • ERROR_401_002 - Invalid PDND token: token di autorizzazione della PDND non valido.

  • ERROR_401_003 - AgID-JWT-Signature token not found: la richiesta non contiene l’header AgID-JWT-Signature.

  • ERROR_401_004 - invalid AgID-JWT-Signature token: token nell’header AgID-JWT-Signature non valido.

  • ERROR_404_001 - resource not found: risorsa richiesta non esistente.

  • ERROR_428_001 - hash not found: gestisce esclusivamente il caso in cui il parametro obbligatorio “If-Match” non sia presente nella richiesta.

  • ERROR_500_007 - response processing error: copre solamente i due casi seguenti:

    • backend non disponibile: rappresenta la casistica in cui il backend non è raggiungibile per vari motivi (es. connection refused, connection timeout, read timeout).

    • backend torna una risposta 5xx senza content-type o con un content-type differente da application/json.

Nota

Rimangono a carico dell’implementazione del backend gli altri codici di errore.

Per attivare il plugin agire come segue:

  • Utilizzando la console in modalità avanzata (sezione Modalità Avanzata) accedere al dettaglio dell’erogazione per cui si intende abilitare la gestione personalizzata dell’errore. Entrare quindi nella sezione ‘Configura -> Opzioni Avanzate’

../../../_images/ErogazioneSuap1.jpg

Fig. 542 Sezione “Opzioni Avanzate” di una erogazione o fruizione

  • Nella sezione ‘Handlers’, sotto-sezione ‘Handlers per la Risposta’, cliccare sul link ‘Out (precedente all’inoltro dei dati)’ per poter registrare l’handler che realizza la personalizzazione dell’errore come atteso dalle specifiche SUAP/SUE.

../../../_images/ErogazioneSuap2.jpg

Fig. 543 Attivazione plugin per la personalizzazione degli errori SUAP/SUE.

  • Infine per gestire l’errore ‘ERROR_400_001’ deve essere abilitata la validazione dei contenuti agendo come segue nella sezione: “Erogazione -> Dettaglio -> Configurazione -> Validazione”

../../../_images/ErogazioneSuapValidazione.jpg

Fig. 544 Attivazione validazione dei contenuti per la personalizzazione dell’errore “ERROR_400_001”

Nota

Le GovLet descritte nella sezione GovLet per la configurazione delle erogazioni attivano già il plugin e la validazione dei contenuti su tutte le erogazioni che configurano.