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

Я хотел бы начать с простого приложения 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


person rdmueller    schedule 06.11.2017    source источник


Ответы (1)


должен был выяснить, что это ошибка в grails-spring-security-oauth2-плагине, но исправление не было опубликовано в центральном репозитории Grails:

https://github.com/MatrixCrawler/grails-spring-security-oauth2/issues/9

person rdmueller    schedule 06.11.2017