Web应用程序 - 身份验证/登录框架

时间:2011-01-16 17:51:42

标签: java security authentication frameworks login

这是一个非常简单,可能是最常见的问题,并且经常作为任何Web应用程序的一部分开发。假设我打算构建一个Web应用程序,并且包括一些功能要求(除了通常的强硬安全要求之外), - 需要让用户注册新的帐户个人资料 - 使用本机应用程序身份验证/ Facebook或Google或Yahoo或OpenId登录对用户进行身份验证 - 允许丢失密码检索 - 会话处理需求

是否有开箱即用的框架(Drupal,Liferay,Tapestry with Tynamo,Wicket ??),我可以用它来包装我的应用程序,它可以是一堆JSP或HTML的JS?我知道我问的是一个非常简单,也许是一个天真的问题。但这是每个Web开发人员大师都会通过的主题。任何帮助,建议和指示非常感谢。

2 个答案:

答案 0 :(得分:27)

我建议看看Apache Shiro: http://shiro.apache.org/

它处理应用程序的安全部分,并为您提供如何保护内容的极大灵活性。例如,您可以添加注释以保护单个方法(例如:除非您是管理员,否则无法运行此方法),单个页面(例如:除非您是管理员,否则无法加载此页面),和URL模式(您必须是管理员才能访问URL中包含/ admin / *的任何内容)。

给予安全权有多么复杂,Shiro使用起来非常简单。最初可能需要花一些时间来了解一些概念,但Shiro在尽可能多地隐藏复杂性方面做得非常好。此外,用户列表非常敏感,非常有用。

如果您使用Tapestry,您可能会看到http://tynamo.org/tapestry-security+guide这使得Shiro在Tapestry应用程序中运行起来变得非常容易,并为您提供了一些易于使用的标记,可以在模板中使用。

Shiro不会为您提供开箱即用的OpenID,OAuth或Facebook集成,但是您可能需要根据应用程序自定义该部分。我相信正在做一些工作来帮助集成有助于将这些类型的身份验证纳入框架的功能。

基于Shiro构建的一些框架可能会提供更多您正在寻找的内容。例如,http://tynamo.org/tynamo-federatedaccounts+guide将为您提供对tapestry应用程序中联合登录的更多支持。它仍处于早期阶段,但可能正在研究是否使用Tapestry。即使它不能完全满足您的需求,也可能会提供一些很好的例子。

您可能也有兴趣: http://static.springsource.org/spring-security/site/

作为旁注:除了安全性之外,在典型的Web项目中可能还需要一些其他技术。您可能需要安全性,持久性,基本用户管理等。如果您创建了许多Web应用程序,则可能需要创建一个maven原型,以便您快速启动并运行新的基本应用程序,以便您可以使用所有初始结构开始编码已经到位了。 AppFuse尝试这样做,但它更多的目标是在Web框架方面允许您做出许多不同的选择。如果您知道要使用哪种技术,那么拥有一个可根据您的需求定制的启动应用程序可以节省大量时间。

答案 1 :(得分:0)

我会看看Apache Shiro或Spring Security。