Grails 和 Spring Security & Facebook & Oauth2 - Restful 服务器

Posted

技术标签:

【中文标题】Grails 和 Spring Security & Facebook & Oauth2 - Restful 服务器【英文标题】:Grails & Spring Security & Facebook & Oauth2 - Restfull server 【发布时间】:2013-10-18 18:09:10 【问题描述】:

使用 Grails 和 Spring Security 构建满足以下要求的服务器的实际解决方案是什么:

对服务器的访问将是完全正常的,因此只能由第三方客户端(移动设备,...) 身份验证将使用 oauth2 facebook 服务,客户端将使用 facebook SDK 向服务器提供令牌 身份验证将基于每个请求,因此令牌将作为 GET 参数在请求中传递(而不是 POST,因为 Rest API 使用它) 无需访问 Facebook 用户信息,只需认证

我尝试了 Spring Security Facebook,但 Json 过滤器只返回用户详细信息,因此没有每个请求或每个会话身份验证。

我注意到 Spring Security Oauth2 Provider,但对我来说,它是一个提供者而不是消费者,它可以插入像 Facebook 这样的另一个提供者,所以不知道如何使用它。

Spring Social 似乎不符合我的要求。

作为搜索信息的结果,我打算编写一个插件来创建一个连接到 facebook 的 Restfull 服务器。

提前致谢

【问题讨论】:

OAuth Plugin 来拯救你。它充当所有提供者的客户端以获取访问令牌。按照文档,您将获得所需的内容。顺便说一句,您是在谈论 Spring Security OAuth plugin,它是 spring 安全插件对 oauth 插件的包装器? 【参考方案1】:

您可以在所有请求的顶部实施安全过滤器,然后如果请求包含您作为 RESTful API 响应的 API 的 auth 标头,否则您将用户重定向到登录页面,由oauth 身份验证服务,您可以让用户使用 oath 方法(facebook、mozilla 角色或任何您喜欢的方式)登录

【讨论】:

以上是关于Grails 和 Spring Security & Facebook & Oauth2 - Restful 服务器的主要内容,如果未能解决你的问题,请参考以下文章

Grails + spring-security-core:用户登录后如何分配角色?

Grails 3 和 Spring Security:当用户未登录时返回 401

Grails - Spring Security / Social - Facebook 插件 setAccessToken 和 getAccessToken

ClassNotFoundException: SimpleGrantedAuthority - Grails 2.4.2 和 Spring Security

Spring Security UI 和 grails 2.0

Grails 3 Spring Security 覆盖登录表单