2015-01-06 50 views
1

我想允许用户使用表单或OAuth身份验证进行登录。JSF表单身份验证+ OAuth

对于表单身份验证,我使用JDBC Realm(运行在glassfish服务器上)并在控制器中执行 HttpServletRequest.login(username, password)

这允许访问限制在web.xmlsecurity-constraint的页面。

要允许Facebook登录我使用socialauth库。因此,我可以在控制器中看到Facebook用户的数据,但用户无法访问受保护的页面,因为我不知道如何执行login(username, password),因为我显然没有用户密码。

我该怎么办?我是否必须实施自定义领域?

回答

1

我该怎么办?我是否必须实施自定义领域?

没有。只需将其自动注册为新用户即可。

请记住在DB中标记它是否是社交帐户,并且还请记得事先检查登录名(电子邮件地址)是否与社交帐户相关联。

+0

好的,但注册后,我如何使用FB注册他?我无法做HttpServletRequest.login(...),因为我没有密码。如果我不做登录,用户将无法访问受限制的页面。 –

+0

只需保持密码为空或使用默认值或根据登录名和盐生成密码。有了成功的社交授权,您已经确认它是有效的用户。也许你现在终于可以更好地理解答案的最后一段。 – BalusC

+0

哦,我知道!我想让一个用户同时使用表单登录和oauth登录,并没有想到有单独的连接用户。谢谢你的建议。 –