2010-11-01 10 views
7

Estoy construyendo una aplicación web Java que necesita acceso a los datos de Google Calendar de un usuario; por lo tanto, pensé que el híbrido OAuth/OpenID es la mejor manera de hacerlo.Biblioteca para integrar el híbrido OAuth/OpenID de Google en la aplicación web Java?

¿Cuál es la mejor biblioteca para manejar el trabajo y reducir la cantidad de código de mi parte?

me trataron openid4java & Spring Security OpenID (ambos no son compatibles híbrido), así como dyuproject (no podía conseguir que integra).

PS: GAE no es una opción

¿Alguna idea?

Respuesta

6

no sé cualquier biblioteca integrada pero lo hacen con una biblioteca OpenID (openid4java), una biblioteca de OAuth (net.oauth Java implementation [Editar: o Scribe]) y las manos desnudas de la siguiente manera:

Mi OAuth consumer key es como www.example.com entonces uso http: //*.example.com como OpenID realm.

agrego siguientes parámetros (para redirigir url o forma) al redirigir el usuario a Google OpenID punto final:

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> 

A cambio, además de la respuesta de OpenID llanura recibo:

openid.ext2.request_token=<request-token> 

intercambio I token de solicitud recibido con access-token y access-secret, que es lo que se necesita para realizar llamadas autorizadas por OAuth. ¡Eso es todo!

Tenga en cuenta que en la llanura a lo largo de OAuth con la petición en token tiene que usar una petición secreta y verificador pero aquí no los necesita. Para obtener una mejor vista, puede leer Google OAuth, Google OpenID y OpenID OAuth Extension.

Editar: Here (comment 8) es la extensión OAuth para openid4java que lo hace más arriba para usted.

+0

Cosas grandiosas John, Esa última línea en "Note ..." realmente me salvó el día. ¡Tenía el request_token conmigo, pero no tenía idea de cómo obtener los tokens de acceso! Ahora sé :) –

+0

¿Entonces no necesitas ningún tipo de firma? Estoy luchando para implementar esto en [aquí] (http://stackoverflow.com/questions/7241094/openidoauth-for-youtube-using-openid4java), ¿hay alguna posibilidad de que eche un vistazo? – juell

4

No es compatible con OpenID, pero, Scribe es una muy buena biblioteca de OAuth Java que soporta Google.

+0

gracias por la sugerencia - Ahora estoy tratando de usar Spring Security OpenID (que a su vez usa openid4java) y Scribe juntos – stephanos

Cuestiones relacionadas