14

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

我意识到基于表单的身份验证是 JSF 的一大难题,但我是否可以使用 PhaseListener 或类似的东西与编程登录一起对用户进行身份验证?

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

4

4 回答 4

4

尝试查看将 JAAS 与 JSF 结合使用的博客。 这是如何使用 JSF 部署 JAAS 以进行身份​​验证和授权的示例。

我希望它有所帮助。

老虎

于 2009-07-27T16:11:10.263 回答
3

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

于 2009-07-27T12:56:24.400 回答
3

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

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

对于授权,Seam 为您提供了一个@RestrictAnnotation,您可以将其放在您的 Controller 或 Service 方法上,Seam 会再次负责其余的工作。

高级授权:您还可以使用 Seam 处理更高级的授权,其中角色是动态的 - 例如,在公告板上,您是某些帖子的“作者”,但“读者”或其他帖子,只需将 @Restrict 注释委托给 Java 方法.

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

于 2009-07-31T19:02:21.073 回答
2

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

JSF 2.0 简单登录页面

于 2011-06-03T09:11:41.760 回答