JSF身份验证和授权

时间:2009-07-27 12:37:51

标签: java authentication jsf authorization jaas

为JSF Web应用程序实现身份验证和授权的最佳方法是什么?我还是希望使用基于容器的安全性,因为我需要调用需要主体的EJB。

我意识到基于表单的身份验证是与JSF的主要争论,但我是否可以使用PhaseListener或类似的程序登录来验证用户?

我应该看一下其他任何方法吗?

4 个答案:

答案 0 :(得分:4)

尝试查看using JAAS with JSF.的博客 这是如何使用JSF部署JAAS进行身份验证和授权的示例。

我希望它有所帮助。

答案 1 :(得分:3)

您可以使用Spring Security框架,请参阅此处的说明http://ocpsoft.com/java/acegi-spring-security-jsf-login-page/

答案 2 :(得分:3)

我使用JSF Seam并使用了Seam的内置身份验证和授权,发现它非常易于使用。

对于身份验证,您只需实现1个方法public boolean login(String username, a String password) { ... }并返回布尔值。然后,您可以将页面标记为“需要登录”,并且接缝会处理其余部分。

对于授权,Seam会为您提供一个@Restrict注释,您可以将其添加到Controller或Service方法中,Seam会再次处理其余内容。

高级授权:您还可以处理角色动态的更多advanced authorization with Seam - 例如通过简单地将@Restrict注释委托给Java方法,您可以在公告板中“删除”某些帖子,“读者”或其他帖子的“作者”。

我鼓励你看看Seam。 Seam只是JSF上的一层,所以从技术上讲,你仍然可以在JSF上运行。如果由于某种原因你不能使用Seam,也许你可以从Seam如何处理JSF中的授权和身份验证中借用一些想法。

答案 3 :(得分:2)

您可以使用Servlet 3.0 HttpServletRequest API,如JSF 2.0问题的答案中所示:

JSF 2.0 Simple login page