Miglioramenti alla funzionalità di Tracciatura su File ------------------------------------------------------ Tra le informazioni che possono essere riversate nei file di log associati ai topic di file trace, sono adesso disponibili anche le seguenti informazioni: - Token negoziati con gli Authorization Server: - retrievedAccessToken: access token ottenuto dall’authorization server configurato nella Token Policy associata al connettore; - retrievedTokenClaim(nomeClaim): valore del claim indicato come parametro e presente nella risposta ritornata dall’authorization server; - retrievedTokenRequestTransactionId: identificativo della transazione che ha originato la richiesta verso l’authorization server; - retrievedTokenRequestGrantType: tipo di grant type utilizzato nella negoziazione del token (clientCredentials, usernamePassword, rfc7523_x509, rfc7523_clientSecret); - retrievedTokenRequestJwtClientAssertion: asserzione jwt generata durante una negoziazione con grant type "rfc7523_x509"; - retrievedTokenRequestClientId: clientId utilizzato durante la negoziazione del token; - retrievedTokenRequestClientToken: bearer token utilizzato durante la negoziazione del token; - retrievedTokenRequestUsername: username utilizzato durante una negoziazione del token con grant type "usernamePassword"; - retrievedTokenRequestUrl: endpoint dell’authorization server. - Certificato TLS Client: - clientCertificateSubjectDN: distinguished name del subject relativo al certificato tls client; - clientCertificateSubjectCN: common name del subject relativo al certificato tls client; - clientCertificateSubjectDNInfo(String oid): ritorna l'informazione indicata come parametro relativa al subject del certificato tls client; - clientCertificateIssuerDN: distinguished name dell'issuer relativo al certificato tls client; - clientCertificateIssuerCN: common name dell'issuer relativo al certificato tls client; - clientCertificateIssuerDNInfo(String oid): ritorna l'informazione indicata come parametro relativa all'issuer del certificato tls client. - Token OAuth2 validato come JWT: - tokenClaim(nomeClaim): consente di accedere ad un singolo claim di un token OAuth2 validato su GovWay; - tokenRaw: JWT token presente nella richiesta; - tokenHeaderRaw: porzione dell'header relativa al token JWT presente nella richiesta, in formato base64; - tokenPayloadRaw: porzione del payload relativa al token JWT presente nella richiesta, in formato base64; - tokenDecodedHeader: contenuto decodificato dell'header presente nel token JWT; - tokenDecodedPayload: contenuto decodificato del payload presente nel token JWT; - tokenHeaderClaim(nomeClaim): valore del claim indicato come parametro e presente nell'header del token JWT; - tokenPayloadClaim(nomeClaim): valore del claim indicato come parametro e presente nel payload del token JWT; - tokenHeaderClaims(): claims (nome=valore) presenti nell'header del token JWT; - tokenHeaderClaims(claimSeparator, nameValueSeparator): simile alla precedente opzione, consente di indicare i separatori utilizzati; - tokenPayloadClaims(): claims (nome=valore) presenti nel payload del token JWT; - tokenPayloadClaims(claimSeparator, nameValueSeparator): simile alla precedente opzione, consente di indicare i separatori utilizzati; - tokenCertificateSubjectDN: distinguished name del subject relativo al certificato con cui è stato firmato il token JWT; - tokenCertificateSubjectCN: common name del subject relativo al certificato con cui è stato firmato il token JWT; - tokenCertificateSubjectDNInfo(String oid): ritorna l'informazione indicata come parametro relativa al subject del certificato con cui è stato firmato il token JWT; - tokenCertificateIssuerDN: distinguished name dell'issuer relativo al certificato con cui è stato firmato il token JWT; - tokenCertificateIssuerCN: common name dell'issuer relativo al certificato con cui è stato firmato il token JWT; - tokenCertificateIssuerDNInfo(String oid): ritorna l'informazione indicata come parametro relativa all'issuer del certificato con cui è stato firmato il token JWT. - Profilo Interoperabilità 'ModI': - tokenModIRaw: security token presente nella richiesta; - tokenModICertificateSubjectDN: distinguished name del subject relativo al certificato con cui è stato firmato il security token; - tokenModICertificateSubjectCN: common name del subject relativo al certificato con cui è stato firmato il security token; - tokenModICertificateSubjectDNInfo(String oid): ritorna l'informazione indicata come parametro relativa al subject del certificato con cui è stato firmato il security token; - tokenModICertificateIssuerDN: distinguished name dell'issuer relativo al certificato con cui è stato firmato il security token; - tokenModICertificateIssuerCN: common name dell'issuer relativo al certificato con cui è stato firmato il security token; - tokenModICertificateIssuerDNInfo(String oid): ritorna l'informazione indicata come parametro relativa all'issuer del certificato con cui è stato firmato il security token. I tipi di token disponibili sono: - Authorization: security token ricevuto nell'header HTTP 'Authorization'; - Integrity: security token ricevuto nell'header HTTP 'Agid-JWT-Signature'; - Soap: security token ricevuto nell'header SOAP; Per i tipi di token 'Authorization' e 'Integrity', relativi ad API di tipo REST, sono disponibili anche le seguenti informazioni: - tokenModIHeaderRaw: porzione dell'header relativa al security token presente nella richiesta, in formato base64; - tokenModIPayloadRaw: porzione del payload relativa al security token presente nella richiesta, in formato base64; - tokenModIDecodedHeader: contenuto decodificato dell'header presente nel security token; - tokenModIDecodedPayload: contenuto decodificato del payload presente nel security token; - tokenModIHeaderClaim(nomeClaim): valore del claim indicato come parametro e presente nell'header del security token; - tokenModIPayloadClaim(nomeClaim): valore del claim indicato come parametro e presente nel payload del security token; - tokenModIHeaderClaims(): claims (nome=valore) presenti nell'header del security token; - tokenModIHeaderClaims(claimSeparator, nameValueSeparator): simile alla precedente opzione, consente di indicare i separatori utilizzati; - tokenModIPayloadClaims(): claims (nome=valore) presenti nel payload del security token; - tokenModIPayloadClaims(claimSeparator, nameValueSeparator): simile alla precedente opzione, consente di indicare i separatori utilizzati; - Altro: - requesterIP: rappresenta l’indirizzo IP del richiedente e assumerà la prima informazione valorizzata, trovata nella richiesta, nel seguente ordine: forwardedIP, clientIP; - resultCode: consente di ottenere il codice numerico di GovWay che rappresenta l'esito della transazione. Sono infine stati risolti i seguenti problemi: - corretto valore ritornato dalla keyword 'inUrl', dove è stato eliminato il prefisso '[in]' o '[out]' che rimane recuperabile tramite la keyword 'inFunction'; - la tracciatura dell'informazione '${logBase64:errorDetail}' provocava un errore inatteso poichè venivano erroneamente serializzate in base64 le informazioni prima di interpretare il dettaglio dell'errore; - le richieste errate (es. API not found) non venivano tracciate se la funzionalità veniva attivata tramite una configurazione globale.