Shiro教程

Apache Shiro是一个强大灵活的开源安全框架,可以完全处理身份验证,授权,企业会话管理和加密。
Apache Shiro的首要目标是易于使用和理解。 安全有时可能非常复杂,甚至痛苦,但使用Shiro后就不一定是这样了。 框架应该在可能的情况下掩盖复杂性,并展示一个干净,直观的API,这简化了开发人员工作,并使应用程序更安全。

这里有一些可以使用Apache Shiro完全的应用场景:

  • 验证用户以及验证其身份。
  • 对用户执行访问控制,例如:
    • 确定用户是否分配了某个安全角色。
    • 确定用户是否被允许执行操作。
  • 在任何环境中使用会话API,即使没有Web或EJB容器。
  • 在身份验证,访问控制或会话有效期内对事件做出反应。
  • 聚合1个或多个用户安全数据的数据源,并将此全部显示为单个复合用户的“视图”。
  • 启用单点登录(SSO)功能。
  • 为用户关联启用“记住我”服务,无需登录。
    … 和更多 - 所有都集成到一个内聚易于使用的API。

Shiro尝试为所有应用程序环境实现这些目标 - 从最简单的命令行应用程序到最大的企业应用程序,而不强制依赖于其他第三方框架,容器或应用程序服务器。 当然,该项目(Shiro)旨在尽可能地集成到这个Shiro环境中,从而可以在任何环境中想用即用。

Apache Shiro特点

Apache Shiro是一个具有许多功能的综合应用程序安全框架。 下图显示了Shiro体系结构,本参考手册将以类似方式组织:

Shiro目标是什么?
Shiro开发团队称为“应用程序安全的四个基石” - 即:认证授权会话管理加密

1. 认证: 有时被称为“登录”,这是证明用户的行为(他们说自己是谁)。
2. 授权:访问控制的过程,即确定“谁”可以访问“什么”。
3. 会话管理:管理用户特定的会话,即使在非Web或EJB应用程序中。
4. 加密:使用加密算法保持数据安全,同时仍然易于使用。

在不同的应用环境中还有其他特性支持和强化这些问题,特别是:

  • Web支持:Shiro的Web支持API有助于保护Web应用程序。
  • 缓存:缓存是Apache Shiro API中的第一级,以确保安全操作保持快速和高效。
  • 并发性:Apache Shiro支持具有并发功能的多线程应用程序。
  • 测试:存在测试支持,可帮助您编写单元测试和集成测试,并确保代码按预期得到保障。
  • 运行方式”:允许用户承担另一个用户的身份(如果允许)的功能,有时在管理方案中很有用。
  • 记住我”:记住用户在会话中的身份,所以用户只需要强制登录即可。

开始学习 >> :Shiro是什么?