2010-11-01 10 views
7

Sto costruendo un'app Web Java che richiede l'accesso ai dati di Google Calendar di un utente, quindi ho pensato che l'ibrido OAuth/OpenID sia la soluzione migliore.Libreria per integrare l'ibrido OAuth/OpenID di Google in Java Web App?

Qual è la migliore libreria per gestire il lavoro e ridurre la quantità di codice sul mio terminale?

ho cercato openid4java & Primavera di sicurezza OpenID (entrambi non supportano ibrido), così come dyuproject (non poteva farlo integrato).

PS: GAE non è un'opzione

Tutte le idee?

risposta

6

non so alcuna libreria integrata, ma lo faccio con una libreria OpenID (openid4java), una libreria OAuth (net.oauth Java implementation [Edit: o Scribe]) e le mie mani nude come segue:

mio OAuth consumer key è come www.example.com, quindi utilizzo http: //*.example.com come OpenID realm.

aggiungo seguenti parametri (per reindirizzare URL o forma) quando il reindirizzamento all'utente di Google OpenID endpoint:

openid.ns.ext2=http://specs.openid.net/extensions/oauth/1.0 
openid.ext2.consumer=<my oauth consumer key> 
openid.ext2.scope=<oauth scope to be authorized> 

In cambio, oltre alla risposta OpenID pianura ricevo:

openid.ext2.request_token=<request-token> 

scambio I token di richiesta ricevuto con access-token e access-secret che sono ciò che è necessario per effettuare chiamate autorizzate da OAuth. È tutto!

Nota che in plain OAuth insieme al token di richiesta devi utilizzare una richiesta-secret e verificatore ma qui non ne hai bisogno.

Per avere una vista migliore è possibile leggere Google OAuth, Google OpenID e OpenID OAuth Extension.

Modifica: Here (comment 8) è l'estensione OAuth per openid4java che fa per te.

+0

Grandi cose John, l'ultima riga in "Note ..." mi ha davvero salvato la giornata. Ho avuto il request_token con me ma non avevo idea di come ottenere i token di accesso! Ora lo so :) –

+0

Quindi non hai bisogno di alcuna forma di firma? Sto faticando a implementare questo oltre [qui] (http://stackoverflow.com/questions/7241094/openidoauth-for-youtube-using-openid4java), qualche possibilità che tu possa dare un'occhiata? – juell

4

Non supporta OpenID ma, Scribe è un'ottima libreria OAuth Java che supporta Google.

+0

grazie per il suggerimento: ora sto provando a utilizzare Spring Security OpenID (che a sua volta utilizza openid4java) e Scribe insieme – stephanos

Problemi correlati