Как начать работу с Grails3 и Google в качестве поставщика идентификаторов

rdmueller спросил: 13 октября 2017 в 07:24 в: oauth

Я хотел бы начать с простого приложения Grails, которое позволяет моим пользователям входить в систему через нескольких провайдеров openIDConnect, таких как Google.

Поэтому я начал добавлять некоторые зависимости в свой проект:

compile 'org.grails.plugins:spring-security-core:3.2.0'
compile 'org.grails.plugins:spring-security-oauth2:1.1.0'
compile 'org.grails.plugins:spring-security-oauth2-google:1.1.0'

и инициализируется spring-security через

grails s2-quickstart com.yourapp User Role

и oauth2 через

grails init-oauth2 com.yourapp User OAuthID

тогда я добавил

static hasMany = [oAuthIDs: OAuthID]

в мой User. В application.yaml я настроил Google в качестве поставщика аутентификации. Настройка Google, кажется, в порядке - это взято из другого проекта.

В качестве последнего шага я добавил

       <oauth2:connect provider="google" id="google-connect-link">Google</oauth2:connect>
        Logged with google?
        <oauth2:ifLoggedInWith provider="google">yes</oauth2:ifLoggedInWith>
        <oauth2:ifNotLoggedInWith provider="google">no</oauth2:ifNotLoggedInWith>

в свой index.gsp чтобы вызвать логин и посмотреть, что происходит.

Пока все хорошо. После успешного входа в Google я перенаправлен в http://localhost:8080/oauth2/createaccount, где мне нужно выбрать, хочу ли я создать нового пользователя или ссылку на существующего.

Если я попытаюсь создать новый, он не работает с

Class
java.lang.NullPointerException
Message
Request processing failed; nested exception is org.grails.gsp.GroovyPagesException: Error processing GroovyPageView: [views/index.gsp:60] Error executing tag <oauth2:ifLoggedInWith>: Cannot invoke method sessionKeyForAccessToken() on null object
Caused by
Cannot invoke method sessionKeyForAccessToken() on null object

(кстати: вам нужно использовать надежный пароль, чтобы избежать появления другого сообщения об ошибке)

Grails V3.3.1 работает на Windows 10


0 ответов