美文网首页
十四、springboot集成shiro(2)-使用特性

十四、springboot集成shiro(2)-使用特性

作者: joy_蓝蜘蛛 | 来源:发表于2018-08-08 19:29 被阅读25次

一、使用特性介绍

在开始写代码之前,首要了解Shiro的设计特性,这样方便理解和使用Shiro提供的Api和类。

在概念层,Shiro 架构包含三个主要的设计理念:Subject,SecurityManager和 Realm。下面的图展示了这些组件如何相互作用。


设计调用结构图
  • Subject:代表当前用户,Subject 可以是一个人,但也可以是第三方服务、守护进程帐户、时钟守护任务或者其它--当前和软件交互的任何事件。
  • SecurityManager:管理所有Subject,SecurityManager 是 Shiro 架构的核心,配合内部安全组件共同组成安全伞。
  • Realms: 用于进行权限信息的验证,我们自己实现。Realm 本质上是一个特定的安全 DAO:它封装与数据源连接的细节,得到Shiro 所需的相关的数据。在配置 Shiro 的时候,你必须指定至少一个Realm 来实现认证(authentication)和/或授权(authorization)。

也就是Subject封装用户信息交给SecurityManager进行管理,SecurityManager的验证是通过Realm或者Realm有派生类来进行验证。

也就是说在Realms的派生类去做Authentication 和 Authorization的操作。其中 Authentication 是用来验证用户身份,Authorization 是授权访问控制,用于对用户进行的操作授权,证明该用户是否允许进行当前操作,如访问某个链接,某个资源文件等。

二、Shiro关键类介绍

SecurityManager、SecurityUtils、Subject、Realms、ShiroFilterFactoryBean

  • 2.1、首先来看SecurityManager源码

SecurityManager 它是一个接口,定义着下面三个函数:

//登录 
 Subject login(Subject subject, AuthenticationToken authenticationToken) throws AuthenticationException;
 //注消
  Subject login(Subject subject, AuthenticationToken authenticationToken) throws AuthenticationException;
//创建Subject
 Subject createSubject(SubjectContext context);

createSubject

可以看出真正的登录、注消是由SecurityManager的实现类来做的。

配制流源原理


image.png

时间关系先上代码:后面再解释:
链接:https://pan.baidu.com/s/1DruN2Gw2tQrAuJ_N2Qjy0Q 密码:mcrf

相关文章

网友评论

      本文标题:十四、springboot集成shiro(2)-使用特性

      本文链接:https://www.haomeiwen.com/subject/ziyxbftx.html