1

Удалось ли кому-либо успешно объединить аутентификацию Google с удивительным плагином Spring Spring от Burt Beckwith? Я хотел пойти по этому пути с Grails 2.4.3, и после некоторого обмана (и перекомпиляции доплеровской версии плагина на https://github.com/donbeave/grails-spring-security-oauth-google) мне удалось найти комбинацию ссылок, которые будут компилироваться и выполняться вместе. Я в конечном итоге добавив следующие строки в моей BuildConfig.groovy:Grails, использующий аутентификацию Google с помощью плагина Spring Security

compile ':spring-security-core:2.0-RC4' 
compile ":spring-security-oauth:2.1.0-RC4" 
compile ':spring-security-oauth-google:0.3.1' 

Я нашел, однако, что изменения, созданные с помощью команды инициализации «Grails s2-INIT-OAuth» не дают мне все изменения, которые Мне нужно, чтобы двигаться вперед. Я в конечном итоге добавив блок к моему Config.groovy, который выглядел так:

oauth { 
    providers { 
     google { 
      api = org.grails.plugin.springsecurity.oauth.GoogleApi20 
      key = 'MY KEY' 
      secret = 'MY SECRET' 
      successUri = '/oauth/google/success' 
      failureUri = '/oauth/google/error' 
      callback = "${baseURL}/oauth/google/callback" 
      scope = 'https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email' 
     } 
    } 
} 

Эти определения конфигурации указать обратный вызов в моем коде (упомянутого выше в ./oauth/google/callback), который не существует , После того, как я привел контроллер из рекомендуемого примера (https://github.com/bagage/grails-google-authentification-example), заменил «/ springSecurityOAuth/onSuccess» на «/ oauth/google/callback» (и зарегистрировался с помощью URL-адреса переадресации через Консоль разработчиков Google). Я обнаружил, что мой метод onSuccess действительно, вызываются, но структуры данных, на которые ссылаются в контроллере, были неправильными, и казалось, что мне нужно будет в значительной степени переписать логику контроллера, чтобы все работало. Я должен предположить, что другие люди хотят выполнить аутентификацию на основе Google так же, как и я. Есть где-то полный рабочий пример? Или может кто-то сказать мне, где я ошибся, пытаясь использовать стандартные плагины? Спасибо за любую помощь.

ответ

1

Вы также должны использовать плагин oauth для безопасности весны. Пожалуйста, обратитесь сюда https://github.com/cazacugmihai/grails-spring-security-oauth,

При нажатии на кнопку, она попадает в действие AUTHENTICATE внутри контроллера OAuth, который получает аутентификации() URL-адрес в гугле. После успешной проверки подлинности он вызывает действие callback() контроллера Oauth, которое затем перенаправляется на действие onSuccess() SpringSecurityOauthController, которое затем сохраняет информацию в домен OAuthId и, наконец, перенаправляет на successUri, указанный в config.

+0

Любой плагин, который поддерживает Grails 3? –