Shiro中Subject对象的创建与绑定流程分析

Java45

我们在平常使用Shrio进行身份认证时,经常通过获取Subject 对象中保存的Session、Principal等信息,来获取认证用户的信息,也就是说Shiro会把认证后的用户信息保存在Subject 中供程序使用

public static Subject getSubject()
    {
        return SecurityUtils.getSubject();
    }

Subject 是Shiro中核心的也是我们经常用到的一个对象,那么Subject 对象是怎么构造创建,并如何存储绑定供程序调用的,下面我们就对其流程进行一下探究,首先是Subject 接口本身的继承与实现,这里我们需要特别关注下Web DelegatingSubject这个实现类,这个就是最终返回的具体实现类

Shiro中Subject对象的创建与绑定流程分析

一、Subject的创建

在Shiro中每个http请求都会经过SpringShiroFilter的父类AbstractShiroFilte中的doFilterInternal方法,我们看下具体代码

```
protected void doFilterInternal(ServletRequest servletRequest, ServletResponse servletResponse, final FilterChain chain)
throws ServletException, IOException {

输入验证码查看隐藏内容

扫描二维码关注本站微信公众号 Johngo学长
或者在微信里搜索 Johngo学长
回复 svip 获取验证码
wechat Johngo学长

相关文章
Halo 开源项目学习(七):缓存机制 Java

Halo 开源项目学习(七):缓存机制

基本介绍 我们知道,频繁操作数据库会降低服务器的系统性能,因此通常需要将频繁访问、更新的数据存入到缓存。Halo 项目也引入了缓存机制,且设置了多种实现方式,如自定义缓存、Redis、LevelDB ...
MySql主要性能指标说明 Java

MySql主要性能指标说明

在项目中,数据库通常会成为性能和负载的主要瓶颈。因此,监控和相应优化数据库的各种性能指标是开发和运维人员需要面对的主要任务,这部分工作将贯穿项目从开发到运营的整个周期。[En]In the proje...
Halo 开源项目学习(三):注册与登录 Java

Halo 开源项目学习(三):注册与登录

基本介绍 首次启动 Halo 项目时需要安装博客并注册用户信息,当博客安装完成后用户就可以根据注册的信息登录到管理员界面,下面我们分析一下整个过程中代码是如何执行的。 博客安装 项目启动成功后,我们可...
RabbitMQ与SpringBoot整合 Java

RabbitMQ与SpringBoot整合

前文总结了Dubbo与SpringBoot的整合(https://www.cnblogs.com/cott/p/12373043.html),本文基于这套框架,引入RabbitMQ消息队列。 1.在l...
ch04 Java流程控制 Java

ch04 Java流程控制

Java 流程控制 Scanner对象 通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前一般使用hasNext()与hasNextLine()判断是否还有输入的数...
80后的互联网记忆 Java

80后的互联网记忆

现在下载音乐的网站越来越少,网易云黑金会员,居然一个月只能下载300首,一个月只能下载这么多,再多就超标了. 另外网易云下载的歌曲居然是ncm格式的,只能用网易云打开 无比怀恋80后时代的互联网,看新...
SSM项目的登录功能controller层的实现 Java

SSM项目的登录功能controller层的实现

1.需求分析 用户在登录页面,输入用户名和密码,点击"登录"按钮或者回车,完成用户登录的功能. 用户名和密码不能为空 用户名或者密码错误 , 用户已过期 , 用户状态被锁定, ip受限 都不能登录成功...
Java(7)大数 Java

Java(7)大数

如果基本的整数和浮点数精度不能够满足需求,那么可以使用 java.math包中两个很有用的类: BigInteger和 BigDecimal。这两个类可以处理包含任意长度数字序列的数值。 BigInt...
Mysql-强制改密 Java

Mysql-强制改密

MySQL V8.0.22 [mysqld] # 跳过登录验证 skip-grant-tables ```sql use mysql; update user set authentication_s...
拜托,面试官别问我「位图」了 Java

拜托,面试官别问我「位图」了

这是之前面试的时候面试官问到过的一个问题,今天正好看到 布隆过滤器,写篇文章总结一下 我们先看一下流程,流程懂了,问题就解决 90%了 我们都知道一个 int 占 4字节,一个字节又有 8个bit位,...