Shiro学习笔记(二)---Shiro架构

  Shiro从外部来划分主要包括Subject,SecurityManager,Realm三大块,先看架构图,作用下面详细说。
Shiro学习笔记(二)---Shiro架构
  Subject其实就是一个门面,代表“当前用户”,应用代码直接与Subject交互,最后委托给SecurityManager,SecurityManager是实际的执行者。
  SecurityManager:安全管理器,所有安全验证的操作都与它进行交互,他管理着所有的Subject,他是Shiro的核心,相当于SpringMvc中的DispatcherServlet。
  Realm主要的作用是认证和授权,SecurityManager要验证用户的身份都要从Realm中获取相应的用户信息进行比较以确定用户身份是否合法,也需要从Realm中获取相应用户的角色和权限进行验证用户是否能操作,也可以把Relam看成dataSource。
从内部来看架构图如下:
Shiro学习笔记(二)---Shiro架构

  Subject:与应用交互的”用户“,并不一定是真正的用户,与当前应用交互的都可以是Subject
  SecurityManager是Shiro的核心,负责所有Subject的管理和认证,授权,session,缓存管理。
  Authenticator:负责Subject认证,可以自定义实现,可以设置认证策略,即什么情况下用户通过认证
  Authorizer:授权器,即用户访问控制器,即控制用户那些功能可以操作,通常是那些网页(Url)用户可以访问,那些不能访问。
  Realm:可以认为是安全实体数据源,用于获取 安全实体,一般都会自定义Realm,后面的实例会给出。
  SessionManager:会话管理器,不仅在JavaEE项目中可以使用,Java项目也可以使用,可以用在SpringMVC的service中,并且Controller中通过HttpSession设置的值,Service中用Shiro Session也可以获取值。
  CacheManager:缓存控制器,用来管理用户的角色,权限缓存。因为这些数据在web中很少改变,用缓存可以提高性能。
  CryptoGraphy:密码模块。

注意:
这些内容是用来自己复习用的,如有侵权,请联系删除,谢谢!!!