三个核心对象:
2、架构原理
2.1 Subject
首先将一个用户抽象为一个Subject对象,通过调用对象里的方法来实现对用户的认证、授权、会话、缓存等等的操作。
比如:subject.hasRole()、subject.checkPermission()等等。
2.2 SecurityManager
这是一个核心组件,Subject调用的操作,基本都由SecurityManager去处理并作出相应的回应,所以正如图中一样,SecurityManager管理着很多功能模块,SecurityManager是个接口,每一个功能模块都对应着一个自己的Manager,这样使得shiro框架的代码结构清晰有条理。
具体的认证器、授权器、会话管理器等等这些组件,都有自己的默认实现、默认配置。
2.3realm:是直接跟数据库打交道的!Realm:域,Realm 充当了 Shiro 与应用安全数据间的“桥梁”或者“连接器”。
Shiro 中的 Realm
项目的shiro配置: