Shiro是什么?
Shiro是一个功能强大且灵活的开源安全框架,可以简洁地处理身份认证、授权、企业级session管理和加密。
Shiro的首要目标是容易使用和容易理解。安全问题有时会非常复杂,甚至会很痛苦,但这不是必须的。一个框架应尽可能隐藏复杂性,提供简洁直观的API,简化开发人员的工作。(这可能是指Spring Security)
您可以使用Shiro完成以下事情:
- 认证用户身份
- 控制用户的访问,例如:
- 确定用户是否拥有某个角色
- 确定用户是否允许执行某项操作
- 可以在任何环境中使用Session API,即使没有Web或EJB容器
- 在身份认证、访问控制或Session周期内对事件做出反应
- 将一个或多个的用户安全数据,以一个“视图(view)”展现
- 启用单点登录(SSO)功能
- 启用“记住我”功能,而无需登录
- 更多其它功能。所有功能都集成到了易于使用的内聚性API中
Shiro试图在所有环境中实现这些目标——从最简单的命令行到最大的企业级应用。不依赖其它第三方框架、容器或应用服务器。Shiro会尽可能地整合到这些环境中,但它也可以在任何环境中直接使用。
Shiro特性
Shiro是全面的安全框架,具有许多功能。下图显示了Shiro重点关注的方面,本参考手册也以类似的方式组织:
Shiro以“安全框架的四个基石”为目标:身份认证、授权、Session管理和加密:
- 身份认证:又称为“登录”,证明用户自己是谁。
- 授权:访问控制权限,即确定“谁”有权访问“什么”。
- 会话管理:即使在非Web或EJB环境中,也管理用户的Session。
- 加密:使用加密算法,让数据保持安全,同时仍易于使用。
在不同的程序环境中,还有很多其它的功能用于支持和加强这些特征,尤其是:
- Web支持:Shiro的Web API可轻松的用于Web程序。
- 缓存:缓存是Shiro的一等公民,可确保快速、高效的运行。
- 并发性:Shiro支持多线程应用。
- 测试:可以编写单元测试和集成测试,以确保代码按预期的方式运行。
- “Run As”:允许用户使用其他用户的身份(如果允许),这在某些场合下很有用。
- “记住我”:记住用户的身份,只在必要时登录。