Web 应用程序 - 身份验证/登录框架 [已关闭]

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

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


答案 1

我建议看看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框架方面有许多不同的选择。如果您知道要使用什么技术,那么拥有一个根据您的需求定制的启动应用程序可以节省大量时间。


答案 2

我会看看Apache Shiro或Spring Security。