自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 盘点 Spring Security 框架中的八大经典设计模式

上次有小伙伴建议,源码分析太枯燥了,要是能够结合设计模式一起来,这样更有助于大家理解 Spring Security 源码,同时还能复习一波设计模式。因此松哥今天就试着整一篇,和大家来聊一聊 Spring Security 中涉及到的设计模式,不过 Spring Security 中涉及到的设计模式还是非常多的,松哥这里讲几个,剩下的欢迎小伙伴们留言补充。1.模板方法模式Template Pattern(模板方法模式)是一个抽象类公开定义了执行它的方法的模板。它的子类可以按需要重写方法实现,但调用将

2020-07-30 09:33:32 334 1

原创 深入理解 WebSecurityConfigurerAdapter【源码篇】

我们继续来撸 Spring Security 源码,今天来撸一个非常重要的 WebSecurityConfigurerAdapter。我们的自定义都是继承自 WebSecurityConfigurerAdapter 来实现的,但是对于 WebSecurityConfigurerAdapter 内部的工作原理,配置原理,很多小伙伴可能都还不太熟悉,因此我们今天就来捋一捋。我们先来看一张 WebSecurityConfigurerAdapter 的继承关系图:在这层继承关系中,有两个非常重要的类:S

2020-07-29 09:40:17 302 1

原创 花式玩 Spring Security ,这样的用户定义方式你可能没见过!

有的时候松哥会和大家分享一些 Spring Security 的冷门用法,不是为了显摆,只是希望大家能够从不同的角度加深对 Spring Security 的理解,这些冷门的用法非常有助于大家理解 Spring Security 的内部工作原理。我本来可以纯粹的去讲源码,讲原理,但是那样太枯燥了,所以我会尽量通过一些小的案例来帮助大家理解源码,这些案例的目的只是为了帮助大家理解 Spring Security 源码,仅此而已!所以请大家不要和我抬杠这些用户定义方式没用!好啦,我今天要给大家表演一个绝活,就

2020-07-27 09:20:07 240

原创 深入理解 AuthenticationManagerBuilder 【源码篇】

咱们继续来撸 Spring Security 源码。前面和大家分享了 SecurityBuilder 以及它的一个重要实现 HttpSecurity,在 SecurityBuilder 的实现类里边,还有一个重要的分支,那就是 AuthenticationManagerBuilder,AuthenticationManagerBuilder 看名字就知道是用来构建 AuthenticationManager 的,所以今天我们就来看一看 AuthenticationManager 到底是怎么构建的。1.初

2020-07-23 10:14:19 297 1

原创 深入理解 HttpSecurity【源码篇】

HttpSecurity 也是 Spring Security 中的重要一环。我们平时所做的大部分 Spring Security 配置也都是基于 HttpSecurity 来配置的。因此我们有必要从源码的角度来理解下 HttpSecurity 到底干了啥?1.抽丝剥茧首先我们来看下 HttpSecurity 的继承关系图:可以看到,HttpSecurity 继承自 AbstractConfiguredSecurityBuilder,同时实现了 SecurityBuilder 和 HttpSecur

2020-07-22 11:48:23 893 1

原创 深入理解 SecurityConfigurer 【源码篇】

我们来继续撸 Spring Security 源码。SecurityConfigurer 在 Spring Security 中是一个非常重要的角色。在前面的文章中,松哥曾经多次提到过,Spring Security 过滤器链中的每一个过滤器,都是通过 xxxConfigurer 来进行配置的,而这些 xxxConfigurer 实际上都是 SecurityConfigurer 的实现。所以我们今天有必要来跟大家把 SecurityConfigurer 从头到尾捋一捋。1. SecurityConfi

2020-07-21 09:18:55 349

原创 深入理解 FilterChainProxy【源码篇】

昨天有小伙伴加松哥微信,说他把松哥的 Spring Security 系列撸完了。。but 松哥这个系列还没发完呢,在我的计划中,Spring Security 系列目前应该能更新一半,还剩一半,虽然有的小伙伴可能觉得好像已经没啥了,其实还有很多东西。。。松哥最近也是特别忙,Security 更新慢下来了,但是秉持前面说的,要学就成系列的学,要学就学透彻,这个系列我还会继续更下去。今天我们就来聊一聊 Spring Security 系列中的 FilterChainProxy。这是一个非常重要的代理

2020-07-20 09:17:49 324 1

原创 Spring 源码第六弹!容器的始祖 DefaultListableBeanFactory

Spring 源码继续开整!在 XML 文件解析流程一文中,松哥和大家分享了 Spring 中配置文件的加载方式,如果小伙伴们还没看过,一定先看一下,这有助于更好的理解本文,传送门:Spring 源码第一篇开整!配置文件是怎么加载的?。还记得该篇文章中的代码吗?XmlBeanFactory factory = new XmlBeanFactory(new ClassPathResource("beans.xml"));User user = factory.getBean(User.class);

2020-07-15 08:40:57 242

原创 Spring Security 可以同时对接多个用户表?

文章目录1.原理1.1 Authentication1.2 AuthenticationManager1.3 ProviderManager1.4 AuthenticationProvider2.案例3.小结这个问题也是来自小伙伴的提问:其实这个问题有好几位小伙伴问过我,但是这个需求比较冷门,我一直没写文章。其实只要看懂了松哥前面的文章,这个需求是可以做出来的。因为一个核心点就是 ProviderManager,搞懂了这个,其他的就很容易了。今天松哥花一点时间,来和大家分析一下这个问题的核心,同时

2020-07-14 08:35:01 628

原创 Spring Security 竟然可以同时存在多个过滤器链?

这是来自一个小伙伴的提问,我觉得很有必要和大家聊一聊这个问题:首先这个问题本身是有点问题的,因为 http.authorizeRequests() 并非总是第一个,虽然大部分情况下,我们看到的是第一个,但是也有很多情况 http.authorizeRequests() 不是首先出现。要搞明白这个问题,我们就要搞清楚 http.authorizeRequests() 到底是啥意思!这就涉及到 Spring Security 中过滤器链的配置问题了,本文松哥就来和大家稍微聊一聊。本文是 Spring S

2020-07-10 09:11:33 792

原创 Spring 源码第四弹!深入理解 BeanDefinition

聚沙成塔!不知不觉 Spring 源码已经更到第五篇啦~看源码之前,要先会用功能,这是最基本的,因为在源码讲解中,默认大家已经熟知 Spring 基本用法了,如果还不熟悉 Spring 的基本用法,可以看一下松哥发布在 B 站上的免费入门视频:https://www.bilibili.com/video/BV1Wv41167TU。上篇文章和小伙伴们介绍了 Spring 源码中的 EntityResolver,这个是用来解决 XML 文件校验问题的。接下来本来应该接着第二弹的 XML 文件解析流程继续往

2020-07-07 07:17:12 570

原创 写了这么多年代码,这样的登录方式还是头一回见!

Spring Security 系列还没搞完,最近还在研究。有的时候我不禁想,如果从 Spring Security 诞生的第一天开始,我们就一直在追踪它,那么今天再去看它的源码一定很简单,因为我们了解到每一行代码的缘由。然而事实上我们大部分人都是中途接触到它的,包括松哥自己。所以在阅读源码的时候,有时候会遇到一些不是那么容易理解的东西,并不是说这个有多难,只是我们不了解 N 年前的开发环境,因此也就不容易理解某一行代码出现的意义。所以为了搞透彻这个框架,有时候我们还得去了解之前发生了什么。这就跟学

2020-07-03 08:46:09 1356 1

原创 GET 新技能!自己的网站突然就不香了

松哥自己的网站有两大类:一个就是大家看到的 www.javaboy.org,这个网站是基于 GitHub Pages 做的,使用的技术栈是 hexo+icarus,公众号上的所有文章我都会同步到这个网站上去。还有一类就是电子书网站,这个就比较多了:http://maven.javaboy.orghttp://spring.javaboy.orghttp://springmvc.javaboy.orghttp://mybatis.javaboy.orghttp://springboot.ja

2020-07-02 09:21:47 3615 4

提示
确定要删除当前文章?
取消 删除