======Guida all'autenticazione tramite OAuth2====== =====Richiesta del token===== In questo primo passo si punta a recuperare uno specifico **token** univoco necessario per l’autenticazione dell’utente. **URL** GET - http://[indirizzo]/[contesto]/oauth/token (esempio) http://localhost:8080/webclient/oauth/token **Parametri** I parametri da inserire in questa prima richiesta, necessari per ottenere il token. grant_type=fisso, il suo valore è 'password' client_id= fisso, il suo valore è 'restappgeoweb' client_secret= fisso, il suo valore è 'restappgeoweb' username= relative ad uno specifico utente Geoweb password= relative ad uno specifico utente Geoweb (esempio query params) grant_type:password client_id:restappgeoweb client_secret:restappgeoweb username:user password:password (esempio) "http://localhost:8080/webclient/oauth/token?grant_type=password&client_id=restappgeoweb&client_secret=restappgeoweb&username=user&password=password" Se la richiesta è stata impostata correttamente, la risposta ricevuta sarà un oggetto il cui valore è una stringa alfanumerica con questo aspetto: “c6bee265-df6d-4e2f-81e7-f58w3547ff65” **NOTA:** a seconda del metodo e del software utilizzato, l’oggetto ricevuto in risposta potrebbe contenere più di un valore. Sfortunatamente, il valore corretto dipende dal software in uso: ad esempio, Postman restituisce un oggetto XML che contiene due tag , e quello corretto è il più esterno dei due (il primo che si incontra leggendo). ====Richiesta con autenticazione==== Una volta ottenuto il **token**, l’utente sarà in grado di inviare richieste seguendo lo stesso indirizzo per il quale ha ottenuto l’autorizzazione (servizi di interoperabilità o altre chiamate esterne, come annunciato all’inizio di questo documento). (esempio) http://localhost:8080/webclient/services/insertGwRecord/[gwClassName]/json **Header** Questi sono i valori che dovranno essere impostati nella sezione “headers” di questa richiesta. Content-Type: 'application/json' Authorization: 'Bearer '+il token recuperato nella richiesta precedente (esempio) 'Bearer c6bee265-df6d-4e2f-81e7-f58w3547ff65' ====Esempio di autenticazione==== Di seguito, un esempio di richiesta di autenticazione tramite OAuth 2, realizzata utilizzando Postman. \\ **Richiesta token** //__Richiesta__////__: __// GET – http://localhost:8080/webclient/oauth/token?grant_type=password&client_id=restappgeoweb&client_secret=restappgeoweb&username=ws_test&password=ws_test_1 {{oauth2_Image_0.png}} //__Risposta__////__:__//__ __ 613c5d4a-8a9b-4e6f-9f90-60696f760a6b 2018-12-10 15:28:51.565 UTC bearer 8aaab46c-c328-4646-93ab-4f017118c9d3 2018-12-10 15:58:51.562 UTC {{oauth2_Image_1.png}} \\ **Richiesta servizio 'updateGwRecord'** //__Richiesta__////__:__// POST - http://localhost:8080/webclient/rest/updateGwRecord Header - Authorization: Bearer 613c5d4a-8a9b-4e6f-9f90-60696f760a6b (Aggiunta di dati a seconda delle necessità dell’utente) {{oauth2_Image_4.png}} //__Risposta:__// { "itemId": null, "success": true, "description": "Operazione eseguita con successo" } {{oauth2_Image_5.png}} =====Refreshing Access Tokens===== https://www.oauth.com/oauth2-servers/making-authenticated-requests/refreshing-an-access-token/