You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Impostando il gateway per fruire delle API esposte da ANPAL, con autenticazione Client_Credential, il messaggio http generato per la richiesta del token è il seguetne:
Il server anpal non genera il token e risponde con errore 500.
Il body ha una "&" iniziale che credo generi il problema.
Riproduzione del problema
Configurare una API in fruizione utilizzando una token policy client_credential di tipo Basic, Authorization Header Request Field; io ho impostato il servizio http://testapigtw.anpal.gov.it/token
Risultato atteso:
Facendo una identica chiamata con SOAPUI, senza mettere la & (e senza codifica chunked), il server ANPAL genera correttamente il token
(Oppure esiste un modo per configurare il Gateway in modo da comunicare correttamente col server dei token di ANPAL?)
Ambiente:
OS: Ubuntu 18.04
Browser: tutti
GovWay: [e.g. 3.2.2]
AS: Tomcat 9
Java: openjdk 11.0.8 2020-07-14
DBMS: MySQL Server version: 5.7.31-0ubuntu0.18.04.1 (Ubuntu)
Note aggiuntive:
Osservando il codice GestoreToken.Java, linea 2635, utilizza un String prefixUrl = "PREFIX?";
chiama poi la funzione buildLocationWithURLBasedParameter
che esegue:
while (keys.hasNext()) {
if(urlBuilder.toString().contains("?")==false)
urlBuilder.append("?");
else
urlBuilder.append("&");
non ho eseguito il codice, ma credo che così otteniamo quindi in uscita: "PREFIX?&key=valore"
e ci si porta dietro il caratere & quando si va ad isolare il prefix in GestoreToken.Java, linea 2637 contentString = contentString.substring(prefixUrl.length());
The text was updated successfully, but these errors were encountered:
(#69)
Sia nella funzionalità di negoziazione dei token che durante la verifica tramite servizio di introspection e userInfo, viene adesso utilizzata la modalità http 'content-length' al posto della precedente modalità 'transfer-encoding-chunked'.
Nella negoziazione del token è stato inoltre corretto il body della richiesta 'application/x-www-form-urlencoded' eliminando il primo carattere '&' aggiunto erroneamente (es. &grant_type=client_credentials).
In tutti i vari scenari dove abbiamo utilizzato la funzionalità per negoziare un token, i vari authorization server interrogati non avevano mai segnalato la richiesta come errata, restituendoci sempre il token, e quindi non ci eravamo mai accorti del problema.
Il problema che riscontri potrebbe anche non essere legato al carattere iniziale '&' ma bensì alla modalità di trasmissione 'Transfer-Encoding: chunked'.
Ho corretto sia il problema del carattere '&' che impostato una modalità di trasmissione 'content-length' sul branch 3.3.2.issue69.
Puoi generarti una nuova versione dell'installer tramite il comando 'mvn package' seguendo le istruzioni indicate nel file README.compile.
Se preferisci puoi anche intervenire puntualmente, senza ri-eseguire l'installer, utilizzando il comando 'mvn compile' e sostituendo il file presente all'interno dell'archivio govway.ear/lib/openspcoop2_pdd-3.3.2.jar con quello risultante dalla compilazione che troverai nella radice in dist/openspcoop2_pdd-3.3.2.jar
Impostando il gateway per fruire delle API esposte da ANPAL, con autenticazione Client_Credential, il messaggio http generato per la richiesta del token è il seguetne:
================================
================================
Il server anpal non genera il token e risponde con errore 500.
Il body ha una "&" iniziale che credo generi il problema.
Riproduzione del problema
Configurare una API in fruizione utilizzando una token policy client_credential di tipo Basic, Authorization Header Request Field; io ho impostato il servizio http://testapigtw.anpal.gov.it/token
Risultato atteso:
Facendo una identica chiamata con SOAPUI, senza mettere la & (e senza codifica chunked), il server ANPAL genera correttamente il token
Esempio di richiesta http corretta:
================================
================================
(Oppure esiste un modo per configurare il Gateway in modo da comunicare correttamente col server dei token di ANPAL?)
Ambiente:
Note aggiuntive:
Osservando il codice GestoreToken.Java, linea 2635, utilizza un
String prefixUrl = "PREFIX?";
chiama poi la funzione
buildLocationWithURLBasedParameter
che esegue:
non ho eseguito il codice, ma credo che così otteniamo quindi in uscita:
"PREFIX?&key=valore"
e ci si porta dietro il caratere & quando si va ad isolare il prefix in GestoreToken.Java, linea 2637
contentString = contentString.substring(prefixUrl.length());
The text was updated successfully, but these errors were encountered: