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

Posted

技术标签:

【中文标题】Web 应用程序 - 身份验证/登录框架 [关闭]【英文标题】:Web Application - Authentication / Login Framework [closed] 【发布时间】:2011-06-10 01:41:22 【问题描述】:

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

是否有一个开箱即用的框架(Drupal、Liferay、Tapestry with Tynamo、Wicket ??)我可以用来包装我的应用程序,它可以是一堆 JSP 或 html 和 JS?我知道我在问一个非常简单甚至可能是幼稚的问题。但这是每个 Web 开发大师都会讨论的话题。非常感谢任何帮助、建议和指点。

【问题讨论】:

【参考方案1】:

我会看看 Apache Shiro 或 Spring Security。

【讨论】:

【参考方案2】:

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

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

给出安全权限的复杂程度,Shiro 使用起来非常简单。最初可能需要一点时间来理解一些概念,但 Shiro 在隐藏尽可能多的复杂性方面做得非常好。此外,用户列表反应迅速,非常有帮助。

如果您使用 Tapestry,您可能会查看 http://tynamo.org/tapestry-security+guide 它可以很容易地在 Tapestry 应用程序中启动和运行 Shiro,并为您提供一些易于使用的标签以在您的模板中使用。

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

【讨论】:

以上是关于Web 应用程序 - 身份验证/登录框架 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

java web 想实现每次关闭网页后需要重新登录验证

Shiro安全框架入门篇(登录验证实例详解与源码)

Google 帐户登录错误(双重身份验证)[关闭]

成功登录后 SwiftUI Firebase 身份验证关闭视图

使用 JWT 身份验证登录时堆栈溢出 [关闭]

带有 Flask 身份验证的 AngularJS