序言
大家好,我是老马。
前面我们学习了 5 分钟入门 shiro 安全框架实战笔记,让大家对 shiro 有了一个最基本的认识。
shiro 还有其他优秀的特性,今天我们就一起来学习一下,为后续深入学习奠定基础。
Apache Shiro 是什么?
Apache Shiro 是一种功能强大且易于使用的Java安全框架,它执行身份验证,授权,加密和会话管理,可用于保护任何应用程序的安全-从命令行应用程序,移动应用程序到最大的Web和企业应用程序。
shiro 的组件结构如下图:
Shiro提供了应用程序安全性API来执行以下方面(我喜欢将它们称为应用程序安全性的4个基石):
-
身份验证-证明用户身份,通常称为用户“登录”。
-
授权-访问控制
-
密码学-保护或隐藏数据以防窥视
-
会话管理-每个用户的时间敏感状态
Shiro还支持一些辅助功能,例如Web应用程序安全性,单元测试和多线程支持,但是这些功能可以增强上述四个主要方面。
特性
您可以使用Apache Shiro进行以下操作:
-
验证用户身份以验证其身份
-
对用户执行访问控制,例如:
-
确定是否为用户分配了特定的安全角色
-
确定是否允许用户做某事
-
即使在没有Web或EJB容器的情况下,也可以在任何环境中使用Session API。
-
在身份验证,访问控制或会话的生存期内对事件做出反应。
-
汇总1个或更多用户安全数据的数据源,并将其全部显示为单个复合用户“视图”。
-
启用单点登录(SSO)功能
-
启用“记住我”服务以进行用户关联,而无需登录
为什么要使用 Apache Shiro?
自2003年以来,框架环境发生了很大变化,因此今天仍然有充分的理由使用Shiro。
Apache Shiro 优势如下:
-
易于使用-易于使用是该项目的最终目标。应用程序安全性可能非常令人困惑和沮丧,并被视为“必不可少的恶魔”。如果您使它易于使用,以使新手程序员可以开始使用它,那么就不必再痛苦了。
-
全面-没有任何其他安全框架具有Apache Shiro所声称的范围广度,因此它很可能是满足您的安全需求的“一站式服务”。
-
灵活-Apache Shiro可以在任何应用程序环境中工作。虽然它可以在Web,EJB和IoC环境中运行,但不需要它们。 Shiro也不要求任何规范,甚至没有很多依赖性。
-
具有Web功能-Apache Shiro具有出色的Web应用程序支持,可让您基于应用程序URL和Web协议(例如REST)创建灵活的安全策略,同时还提供了一组JSP库来控制页面输出。
-
可插拔-Shiro简洁的API和设计模式可轻松与许多其他框架和应用程序集成。您会看到Shiro与Spring,Grails,Wicket,Tapestry,Mule,Apache Camel,Vaadin等框架无缝集成。
-
受支持-Apache Shiro是Apache Software Foundation的一部分,该组织被证明以其社区的最大利益行事。项目开发和用户群体友好的公民随时可以提供帮助。如果需要,像Katasoft这样的商业公司也可以提供专业的支持和服务。