如何为JSF Web应用程序实现身份验证和授权是最佳方法?最好仍然使用基于容器的安全性,因为我需要调用需要主体的EJB。
我意识到基于表单的身份验证在JSF中是一个主要的难点,但我是否可以使用PhaseListener或类似的东西以编程方式登录来验证用户?
还有其他方法吗?
我意识到基于表单的身份验证在JSF中是一个主要的难点,但我是否可以使用PhaseListener或类似的东西以编程方式登录来验证用户?
还有其他方法吗?
您可以使用Spring Security框架,详细说明请参见这里
public boolean login(String username, String password) { ... }
并返回布尔值。然后,您可以将页面标记为“需要登录”,seam会处理剩余部分。对于授权,Seam给您提供了一个@Restrict
注释,您可以将其放在控制器或服务方法上,然后Seam会处理其余部分。高级授权:您还可以处理更多使用Seam进行高级授权, 其中角色是动态的 - 例如,在公告板中,您是一些帖子的“作者”,但是其他帖子的“读者”,只需将@Restrict注释委托给Java方法即可。我鼓励您查看Seam。Seam只是在JSF之上的一层,因此从技术上讲,您仍将在JSF上运行。如果由于某种原因您无法使用Seam,也许您可以借鉴Seam如何处理JSF中的授权和身份验证的一些思路。