Shiro是什么
Apache Shiro是一个强大且灵活的开源安全框架,可以清晰的处理身份认证,授权,企业会话管理和加密。
Apache Shiro的首要目标就是易于使用和理解。安全有时可能非常复杂,甚至可以说是痛苦的,但事实往往并非一直如此。一个框架应该尽可能掩盖编码的复杂性,并提供简洁直观的API给开发者以简化开发,保证他们的应用程序安全。
下面是一些你可以使用Apache Shiro去做的事:
-
验证一个用户提供的身份标识
-
针对用户的行为执行访问控制,如:
- 确认一个用户是否被分配安全角色
- 确认一个用户是否有权限去做某事
-
在任意环境使用会话API,包括web应用和传统EJB容器。
-
能够对身份认证,访问控制,或者会话管理生命周期中的事件作出响应。
-
单个用户视图下可以聚合使用多个数据源的安全数据。
-
提供单点登录功能(SSO)。
-
提供“Remember”功能,无需登录。
……
Shiro尝试为所有应用程序环境实现这些目标-从最简单的命令行应用到大型企业应用,而不会强制依赖其他第三方框架,容器或应用程序服务器。当然,该项目会尽可能的融入这些环境中,以达到开箱即用的目的。
Shiro的特色
Apache Shiro是一个多功能的综合应用程序框架。下图显示了Shiro关注的要点,并且此参考文档也将以类似方式组织呈现给大家:
Shiro开发团队所称的“应用程序安全的四大基石”-身份验证,授权,会话管理和加密:
- 身份认证:有些文档也称为登录,这是证明用户合法身份的行为。
- 授 权:访问控制的过程,即确定“谁”可以访问“什么”。
- 会话管理:即使在非WEb应用或者EJB环境,也可以管理用户特定的会话。
- 加密:使用加密算法保障用户数据安全,同时确保其易用性。
还有在其他环境中支持与加强特殊问题的功能:
- Web支持:Shiro的Web支持API可以帮助使用者轻松的保护web应用程序。
- 缓存:缓存是Apache Shiro中的第一公民,目的是为了确保安全操作保持快速和高效的特性。
- 并发:Apache Shiro支持具有多线程功能的并发应用程序。
- 测试:测试功能的存在是为了帮助你编写单元和集成测试,保证代码安全。
- “运行方式”:一个允许用户可以使用其他用户身份的功能,有时候在管理方案中很有用。
- “记住我”:记住用户会话中的身份,所以他们只需要在必要的时候登录。