apache-shiro / 1.5.3 / reference / authorization-features.html

Apache Shiro 授权功能

授权,也称为访问控制,是确定对应用程序中资源的访问权限的过程。换句话说,确定“谁有权访问什么”。授权用于回答安全性问题,例如“是否允许该用户编辑帐户”,“是否允许该用户查看此网页”,“该用户是否有权访问此按钮?”这些都是决定用户有权访问哪些内容的决定,因此,所有决定都代表授权检查。

授权是任何应用程序的关键要素,但它很快就会变得非常复杂。 Shiro 的目标是消除授权方面的许多复杂性,以便您可以更轻松地构建安全软件。下面是 Shiro 授权功能的重点。

Features

  • 基于主题 -您在 Shiro 中所做的几乎所有操作都基于当前正在执行的用户,即 Subject。而且,您可以轻松访问主题以检索主题并在代码中的任何位置检查其角色,权限或其他相关属性。这使您可以更轻松地在您的应用程序中理解和使用 Shiro。

  • 基于角色或权限的检查 -由于应用程序之间授权的复杂性差异很大,因此 Shiro 的设计非常灵活,可根据项目需求同时支持基于角色的安全性和基于权限的安全性。

  • 强大而直观的权限语法 -作为一种选择,Shiro 提供了一种现成的权限语法,称为“通配符权限”,可帮助您对应用程序可能具有的细粒度访问策略进行建模。通过使用 Shiro 的通配符权限,您将获得易于处理且易于理解的语法。此外,您不必费时费力地创建自己的表示访问策略的方法。

  • 多种执行选项 -Shiro 中的授权检查可以通过代码内检查,JDK 1.5Comments,AOP 和 JSP/GSP Taglibs 完成。 Shiro 的目标是根据您的偏好和项目需求,让您选择使用您认为最佳的选项。

  • 强大的缓存支持 -Shiro 可以插入任何现代的开源和/或企业缓存产品,以提供快速有效的用户体验。对于授权而言,缓存对于使用后端安全性数据源的较大环境或更复杂的策略的性能至关重要。

  • 可插拔数据源 -Shiro 使用可插拔数据访问对象(称为领域)连接到安全数据源,您可以在其中保存访问控制信息,例如 LDAP 服务器或关系数据库。为了帮助您避免自己构建和维护集成,Shiro 为流行的数据源(例如 LDAP,Active Directory 和 JDBC)提供了开箱即用的领域。如果需要,您还可以创建自己的领域以支持基本领域中未包含的特定功能。

  • 支持任何数据模型 -Shiro 可以支持任何数据模型进行访问控制-不会对您施加任何模型。您的领域实现最终决定了如何将权限和角色组合在一起,以及是否对 Shiro 返回“是”或“否”的答案。通过此功能,您可以按照自己选择的方式来构建应用程序,Shiro 会竭尽全力为您提供支持。