Grails spring-security-oauth-google:如何设置

Posted

技术标签:

【中文标题】Grails spring-security-oauth-google:如何设置【英文标题】:Grails spring-security-oauth-google : how to set up 【发布时间】:2017-05-11 09:19:34 【问题描述】:

我已经安装了以下插件

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

Spring 安全核心工作正常。 但我在实施 oauth-google 身份验证时遇到问题。

插件文档说我们需要传递 api_key 和 api_secret。我在 console.developers.google.com 中创建了一个项目并创建了 API 密钥和 Oauth 密钥,我对在 application.yml 中使用哪些值感到困惑。 因为根据 console.developers.google.com,API 密钥和 Oauth 密钥是单独的凭据。

任何关于从哪里获取以及如何设置以下值的建议都会有所帮助。

api_key: 'AIzaSyBjfn345tg6j0ol1e89kHMOY'               
api_secret: 'xseettDDNtjjuutrfuAFTe4d'  
successUri: "/oauth2/google/success"   
failureUri: "/oauth2/google/failure"   
callback: "/oauth2/google/callback"     
scopes: "some_scope"

【问题讨论】:

【参考方案1】:

    api_keyapi_secret

    我从 console.cloud.google.com/ 获取了这些密钥

    API 管理器 > 凭据 > 创建/编辑条目

    然后客户端 ID 和客户端密码是所需的值。其他参数是 Grails 应用程序本身的路径,我相信如果您想覆盖插件的默认行为,可以更改这些参数。

但还有更多...

    记住将您的回调地址列入白名单(在同一面板上完成)。对于本地连接,我将它(在 Google API Manager 上)设置为 http://localhost:8080/oauth2/google/callback

    请记住,除了调用 grails s2-quickstart com.yourapp User Role 之外,您还需要调用 grails init-oauth2 ...(在此处描述 - https://github.com/MatrixCrawler/grails-spring-security-oauth2)。

    接下来我必须覆盖默认登录页面,以便能够显示此处提到的链接https://github.com/MatrixCrawler/grails-spring-security-oauth2-google<oauth2:connect provider="google" id="google-connect-link">Google</oauth2:connect>。默认的在这里https://github.com/grails-plugins/grails-spring-security-core/tree/master/grails-app/views/login你只需将它们复制到grails-app/views/login/并修改它们。

    下一个问题是第 2 点的脚本没有将 static hasMany = [oAuthIDs: OAuthID] 字段添加到用户域,这导致 ask 视图提交崩溃。

之后,Google Oauth2 身份验证对我有用。

【讨论】:

以上是关于Grails spring-security-oauth-google:如何设置的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 grails 命令行编译 grails 项目?

是否可以在 Grails 之外使用 Grails 验证?如何?

Grails:企业级 Grails [关闭]

Grails - grails.converters.JSON - 删除类名

Grails - 在刷新 grails 错误之前保存瞬态实例?

Grails 3 - 资源插件