我正在开发一个使用spring-social的应用程序,它允许用户通过facebook连接,根本不需要注册,只需单击连接按钮,您就可以登录了。
我通过cookie跟踪用户,并使用RESTful应用程序接口代表用户调用Facebook。如果用户没有登录,oauth异常会将他重定向到他需要连接Facebook的登录页面-这是服务端。
还有一个网站(或仪表板),允许用户通过web浏览器连接,查看一些统计数据并管理其个人资料。
我想强制执行相同的注册逻辑的网站。
即,如果他没有被认证(即,与请求一起发送有效的cookie ),则任何人都不能访问页面。
使用Spring Social和Spring安全在所有资源上强制执行的最好方法是什么?(请记住,没有用户/通行证,只有cookie)
另外,我在Spring-social快速入门示例的基础上构建了我的项目。该项目有一个HandlerInterceptorAdapter,它确保所有请求都通过该适配器检查用户提供的cookie是否在数据库中,如果是,则使用用户信息设置一个SecurityContext并继续。我想重新使用这个适配器来解决网站登录缺陷。
Tnx!
发布于 2013-01-12 20:40:10
您可以使用SpringSecurity保护所有网站URL。如果用户未通过身份验证,则会被重定向至登录页面。在登录页面上,您可以放置SpringSocial注册按钮(而不是通常的登录表单)。点击此按钮后,用户将被重定向至Facebook。身份验证成功后,它将被重定向到您的应用程序。SpringSocial可以自动通知SpringSecurity用户已经通过身份验证。因此,该用户将能够使用所有网站的网址没有任何问题。
编辑。通常情况下,您需要允许所有用户访问登录页面。在您的情况下,您也需要为ProviderSignInController (/signin)执行此操作。
https://stackoverflow.com/questions/14280760
复制相似问题