Apache Shiro 简介

什么是 Apache Shiro?

Apache Shiro 是一个功能强大且灵活的开源安全框架,可以干净地处理身份验证,授权,企业会话 Management 和加密。

Apache Shiro 的首要目标是易于使用和理解。安全有时可能非常复杂,甚至会很痛苦,但不一定如此。框架应尽可能掩盖复杂性,并公开干净直观的 API,以简化开发人员确保其应用程序安全的工作。

您可以使用 Apache Shiro 进行以下操作:

  • 验证用户身份以验证其身份

  • 对用户执行访问控制,例如:

  • 确定是否为用户分配了特定的安全角色

    • 确定是否允许用户做某事
  • 即使在没有 Web 或 EJB 容器的情况下,也可以在任何环境中使用 Session API。

  • 在身份验证,访问控制或会话的生存期内对事件做出反应。

  • 汇总 1 个或更多用户安全数据的数据源,并将其全部显示为单个复合用户“视图”。

  • 启用单点登录(SSO)功能

  • 启用“记住我”服务以进行用户关联而无需登录

    以及更多-所有这些都集成到一个易于使用的内聚 API 中。

Shiro 尝试在所有应用程序环境中实现这些目标-从最简单的命令行应用程序到最大的企业应用程序,而不必强加对其他第三方框架,容器或应用程序服务器的依赖。当然,该项目旨在尽可能地集成到这些环境中,但是可以在任何环境中直接使用它。

Apache Shiro 功能

Apache Shiro 是具有许多功能的全面的应用程序安全框架。下图显示了 Shiro 集中精力的地方,本参考手册的组织方式也类似:

Shiro 以 Shiro 开发团队所谓的“应用程序安全性的四个基石”为目标-身份验证,授权,会话 Management 和密码学:

  • 认证: 有时称为“登录”,这是证明用户就是他们所说的身份的行为。

  • 授权: 访问控制的过程,即确定“谁”有权访问“什么”。

  • 会话 Management: 即使在非 Web 或 EJB 应用程序中,也 Management 用户特定的会话。

  • 密码学: 使用密码算法保持数据安全,同时仍易于使用。

在不同的应用程序环境中,还具有其他功能来支持和加强这些问题,尤其是:

  • Web 支持:Shiro 的 Web 支持 API 可帮助轻松保护 Web 应用程序。

  • 缓存:缓存是 Apache Shiro API 的第一层公民,可确保安全操作保持快速有效。

  • 并发性:Apache Shiro 的并发功能支持多线程应用程序。

  • 测试:测试支持可以帮助您编写单元测试和集成测试,并确保您的代码将按预期进行保护。

  • “运行方式”:一种功能,允许用户采用其他用户的身份(如果允许),有时在 Management 方案中很有用。

  • “记住我”:在整个会话中记住用户的身份,因此他们仅在必要时登录。