1

我正在使用 spring-social 开发一个应用程序,它允许用户通过 facebook 连接而无需注册,只需单击连接按钮即可登录。

我正在通过 cookie 跟踪用户,并使用 RESTful API 代表用户调用 Facebook。如果用户未登录,则 oauth 异常会将他重定向到他需要与 Facebook 连接的登录页面 - 这是服务端。

还有一个网站(或仪表板)允许用户通过网络浏览器连接并查看一些统计数据并管理他的个人资料。

我想为网站强制执行相同的注册逻辑。

即,如果未通过身份验证,则任何人都无法访问页面(即随请求发送有效的 cookie)。

使用 Spring Social 和 Spring 安全性对所有资源强制执行此操作的最佳方法是什么?(记住,没有用户/通行证,只有 cookie)

PS 我在 Spring-social 快速入门示例之上构建了我的项目。该项目有一个 HandlerInterceptorAdapter 确保所有请求都通过该适配器检查用户提供的 cookie 是否在数据库中,如果是,则使用用户信息设置一个 SecurityContext 并继续。我想将此适配器重新用于网站登录缺陷。

天呐!

4

1 回答 1

1

您可以使用 SpringSecurity 保护所有网站 URL。如果用户未通过身份验证,则它将被重定向到登录页面。在登录页面上,您可以放置​​ SpringSocial 注册按钮(而不是通常的登录表单)。单击此按钮后,用户将被重定向到 Facebook。成功验证后,它将被重定向到您的应用程序。SpringSocial 可以自动通知 SpringSecurity 用户已经通过身份验证。因此,该用户将能够毫无问题地使用所有网站 URL。

编辑。通常,您需要允许登录页面上的所有用户访问。在您的情况下,您也需要为ProviderSignInController ( /signin ) 执行此操作。

于 2013-01-12T12:40:09.713 回答