簡體   English   中英

使用Google身份驗證和Spring Security插件的Grails

[英]Grails using Google authentication with the Spring Security plugin

最近有沒有人成功地將Google身份驗證與Burt Beckwith的基於Grails的出色的Spring Security插件成功地結合在一起? 我想沿着Grails 2.4.3走那條路,經過一些鬼混(並在https://github.com/donbeave/grails-spring-security-oauth-google上重新編譯插件的donbeave版本),能夠找到可以一起編譯和運行的引用的組合。 我最終在BuildConfig.groovy中添加了以下幾行:

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”,(並注冊通過Google Developers Console重定向URL),我發現確實確實調用了我的onSuccess方法,但是控制器中引用的數據結構是錯誤的,並且似乎我需要大量重寫控制器邏輯才能獲得所有內容工作。 我必須假設其他人希望以與我相同的方式完成基於Google的身份驗證。 某處是否有完整的操作示例? 或者有人可以告訴我在嘗試使用標准插件時哪里出了問題? 感謝您的協助。

您還需要使用spring security oauth插件。 請參考這里https://github.com/cazacugmihai/grails-spring-security-oauth

當您單擊按鈕時,它會在Oauth控制器內命中authenticate操作,該控制器會獲取google的authentication()網址。 成功通過身份驗證后,它將命中Oauth控制器的callback()操作,然后將其重定向到SpringSecurityOauthController的onSuccess()操作,該操作將信息保存到OAuthId域,最后重定向到config中指定的successUri。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM