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_key
和 api_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.converters.JSON - 删除类名