1.什么是Apache Shiro
Apache Shiro是一款强大、灵活的开源安全管理框架,以十分优雅的方式处理authentication(身份验证)、authorization(授权)、enterprise session(企业会话?)和cryptography()加密。
2.Apache Shiro可以做的事
鉴别用户身份
管理用户权限,例如:判断用户是否有某一角色或用户是否被允许做某一操作
即使没有web或EJB容器,也可以使用session API
在鉴别用户身份时、权限管理时或session生命周期内进行一些操作
可以聚合一个或多个用户权限数据源并且以用户视图的形式统一表现出来
实现了单点登录功能(SSO)
无需登录便可实现“记住我”这一功能
...
3.特色
Shiro的目标是做好Authentication(身份鉴别)、Authorization(权限管理)、Session Management(会话管理)、Cryptography(加密)四个方面(这是软件安全的四大基石)。
Authentication(身份鉴别):有时指登录,鉴别用户的身份
Authorization(权限管理):决定用户是否有权访问某物
Session Management(会话管理):即使不是web应用也不是EJB应用,仍然可以管理具有明 确用户的session(会话)
Cryptography(加密):利用加密算法保证数据安全
为了支持更多的应用场景,Shrio还具有其他特色:
支持web应用
缓存:保证了安全管理的速度和效率
并发:支持多线程应用
测试:可以通过单元测试和集成测试验证程序的安全性
“Run As”:允许用户将某一身份赋予另一用户(在一些行政管理软件中常用)
“Remember Me”:在Session(会话)期间记住用户身份,当只有强制要求登录是才需要用户登录
4. Apache Shiro 的三大核心组件
1、Subject :当前用户的操作
2、SecurityManager:用于管理所有的Subject
3、Realms:用于进行权限信息的验证
Subject:即当前用户,在权限管理的应用程序里往往需要知道谁能够操作什么,谁拥有操作该程序的权利,shiro中则需要通过Subject来提供基础的当前用户信息,Subject 不仅仅代表某个用户,也可以是第三方进程、后台帐户(Daemon Account)或其他类似事物。
SecurityManager:即所有Subject的管理者,这是Shiro框架的核心组件,可以把他看做是一个Shiro框架的全局管理组件,用于调度各种Shiro框架的服务。
Realms:Realms则是用户的信息认证器和用户的权限认证器,我们需要自己来实现Realms来自定义的管理我们自己系统内部的权限规则。
网友评论