Библиотека для интеграции гибрида OAuth / OpenID от Google в Java Web App? - PullRequest
7 голосов
/ 01 ноября 2010

Я создаю веб-приложение на Java, которому необходим доступ к данным Календаря пользователя пользователя, поэтому я подумал, что гибрид OAuth / OpenID - это лучший способ.

Какая библиотека лучше всего справляется с заданием- и уменьшить количество кода на моем конце?

Я пытался openid4java & Spring Security OpenID (оба не поддерживают гибрид), а также dyuproject (не удалось его интегрировать).

PS: GAE - это не вариант

Есть идеи?

Ответы [ 2 ]

6 голосов
/ 01 декабря 2010

Я не знаю ни одной интегрированной библиотеки, но я делаю это с помощью библиотеки OpenID ( openid4java ), библиотеки OAuth ( net.oauth Java-реализация [Редактировать: или Писец ]) и мои голые руки:

Мой OAuth consumer key похож на www.example.com, поэтому я использую http://*.example.com как OpenID realm.

Я добавляюследующие параметры (для перенаправления URL или формы) при перенаправлении пользователя в конечную точку Google OpenID:

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>

В ответ на простой ответ OpenID я получаю:

openid.ext2.request_token=<request-token>

Я обмениваю полученный запрос-окан с токеном доступа и секретом доступа, которые необходимы для выполнения вызовов, авторизованных OAuth.Это все!

Обратите внимание, что в обычном OAuth вместе с токеном запроса вы должны использовать секретный запрос и верификатор, но здесь они вам не нужны.

Для лучшего обзора вы можете прочитать Google OAuth , Google OpenID и OpenID OAuth-расширение .

Редактировать: Здесь (комментарий 8) - расширение OAuthдля openid4java, который делает выше для вас.

4 голосов
/ 01 ноября 2010

Он не поддерживает OpenID, но Scribe - очень хорошая библиотека OAuth Java, которая поддерживает Google.

...