- 博客(13)
- 资源 (55)
- 收藏
- 关注
原创 盘点 Spring Security 框架中的八大经典设计模式
上次有小伙伴建议,源码分析太枯燥了,要是能够结合设计模式一起来,这样更有助于大家理解 Spring Security 源码,同时还能复习一波设计模式。因此松哥今天就试着整一篇,和大家来聊一聊 Spring Security 中涉及到的设计模式,不过 Spring Security 中涉及到的设计模式还是非常多的,松哥这里讲几个,剩下的欢迎小伙伴们留言补充。1.模板方法模式Template Pattern(模板方法模式)是一个抽象类公开定义了执行它的方法的模板。它的子类可以按需要重写方法实现,但调用将
2020-07-30 09:33:32 4140 2
原创 深入理解 WebSecurityConfigurerAdapter【源码篇】
我们继续来撸 Spring Security 源码,今天来撸一个非常重要的 WebSecurityConfigurerAdapter。我们的自定义都是继承自 WebSecurityConfigurerAdapter 来实现的,但是对于 WebSecurityConfigurerAdapter 内部的工作原理,配置原理,很多小伙伴可能都还不太熟悉,因此我们今天就来捋一捋。我们先来看一张 WebSecurityConfigurerAdapter 的继承关系图:在这层继承关系中,有两个非常重要的类:S
2020-07-29 09:40:17 17696 2
原创 花式玩 Spring Security ,这样的用户定义方式你可能没见过!
有的时候松哥会和大家分享一些 Spring Security 的冷门用法,不是为了显摆,只是希望大家能够从不同的角度加深对 Spring Security 的理解,这些冷门的用法非常有助于大家理解 Spring Security 的内部工作原理。我本来可以纯粹的去讲源码,讲原理,但是那样太枯燥了,所以我会尽量通过一些小的案例来帮助大家理解源码,这些案例的目的只是为了帮助大家理解 Spring Security 源码,仅此而已!所以请大家不要和我抬杠这些用户定义方式没用!好啦,我今天要给大家表演一个绝活,就
2020-07-27 09:20:07 2057 1
原创 深入理解 AuthenticationManagerBuilder 【源码篇】
咱们继续来撸 Spring Security 源码。前面和大家分享了 SecurityBuilder 以及它的一个重要实现 HttpSecurity,在 SecurityBuilder 的实现类里边,还有一个重要的分支,那就是 AuthenticationManagerBuilder,AuthenticationManagerBuilder 看名字就知道是用来构建 AuthenticationManager 的,所以今天我们就来看一看 AuthenticationManager 到底是怎么构建的。1.初
2020-07-23 10:14:19 9094 6
原创 深入理解 HttpSecurity【源码篇】
HttpSecurity 也是 Spring Security 中的重要一环。我们平时所做的大部分 Spring Security 配置也都是基于 HttpSecurity 来配置的。因此我们有必要从源码的角度来理解下 HttpSecurity 到底干了啥?1.抽丝剥茧首先我们来看下 HttpSecurity 的继承关系图:可以看到,HttpSecurity 继承自 AbstractConfiguredSecurityBuilder,同时实现了 SecurityBuilder 和 HttpSecur
2020-07-22 11:48:23 3714 1
原创 深入理解 SecurityConfigurer 【源码篇】
我们来继续撸 Spring Security 源码。SecurityConfigurer 在 Spring Security 中是一个非常重要的角色。在前面的文章中,松哥曾经多次提到过,Spring Security 过滤器链中的每一个过滤器,都是通过 xxxConfigurer 来进行配置的,而这些 xxxConfigurer 实际上都是 SecurityConfigurer 的实现。所以我们今天有必要来跟大家把 SecurityConfigurer 从头到尾捋一捋。1. SecurityConfi
2020-07-21 09:18:55 3416
原创 深入理解 FilterChainProxy【源码篇】
昨天有小伙伴加松哥微信,说他把松哥的 Spring Security 系列撸完了。。but 松哥这个系列还没发完呢,在我的计划中,Spring Security 系列目前应该能更新一半,还剩一半,虽然有的小伙伴可能觉得好像已经没啥了,其实还有很多东西。。。松哥最近也是特别忙,Security 更新慢下来了,但是秉持前面说的,要学就成系列的学,要学就学透彻,这个系列我还会继续更下去。今天我们就来聊一聊 Spring Security 系列中的 FilterChainProxy。这是一个非常重要的代理
2020-07-20 09:17:49 4659 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 1963
原创 Spring Security 可以同时对接多个用户表?
文章目录1.原理1.1 Authentication1.2 AuthenticationManager1.3 ProviderManager1.4 AuthenticationProvider2.案例3.小结这个问题也是来自小伙伴的提问:其实这个问题有好几位小伙伴问过我,但是这个需求比较冷门,我一直没写文章。其实只要看懂了松哥前面的文章,这个需求是可以做出来的。因为一个核心点就是 ProviderManager,搞懂了这个,其他的就很容易了。今天松哥花一点时间,来和大家分析一下这个问题的核心,同时
2020-07-14 08:35:01 8501 2
原创 Spring Security 竟然可以同时存在多个过滤器链?
这是来自一个小伙伴的提问,我觉得很有必要和大家聊一聊这个问题:首先这个问题本身是有点问题的,因为 http.authorizeRequests() 并非总是第一个,虽然大部分情况下,我们看到的是第一个,但是也有很多情况 http.authorizeRequests() 不是首先出现。要搞明白这个问题,我们就要搞清楚 http.authorizeRequests() 到底是啥意思!这就涉及到 Spring Security 中过滤器链的配置问题了,本文松哥就来和大家稍微聊一聊。本文是 Spring S
2020-07-10 09:11:33 7337 2
原创 Spring 源码第四弹!深入理解 BeanDefinition
聚沙成塔!不知不觉 Spring 源码已经更到第五篇啦~看源码之前,要先会用功能,这是最基本的,因为在源码讲解中,默认大家已经熟知 Spring 基本用法了,如果还不熟悉 Spring 的基本用法,可以看一下松哥发布在 B 站上的免费入门视频:https://www.bilibili.com/video/BV1Wv41167TU。上篇文章和小伙伴们介绍了 Spring 源码中的 EntityResolver,这个是用来解决 XML 文件校验问题的。接下来本来应该接着第二弹的 XML 文件解析流程继续往
2020-07-07 07:17:12 2489
原创 写了这么多年代码,这样的登录方式还是头一回见!
Spring Security 系列还没搞完,最近还在研究。有的时候我不禁想,如果从 Spring Security 诞生的第一天开始,我们就一直在追踪它,那么今天再去看它的源码一定很简单,因为我们了解到每一行代码的缘由。然而事实上我们大部分人都是中途接触到它的,包括松哥自己。所以在阅读源码的时候,有时候会遇到一些不是那么容易理解的东西,并不是说这个有多难,只是我们不了解 N 年前的开发环境,因此也就不容易理解某一行代码出现的意义。所以为了搞透彻这个框架,有时候我们还得去了解之前发生了什么。这就跟学
2020-07-03 08:46:09 2918 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 5942 4
Android开发中线程池的使用Demo
2016-08-20
Dagger2中Scope使用Demo
2016-08-15
ButterKnife使用Demo
2016-08-12
Android模拟登录知乎
2016-08-09
DataBindingDemo3
2016-07-31
DataBindingDemo2
2016-07-31
DataBindingDemo
2016-07-31
Android在线视频播放器Demo
2016-05-04
Android自定义View值ProgressBar
2016-05-01
Android中Dialog使用详解
2016-02-16
ImageView的scaleType属性练习
2016-01-26
snackbar使用Demo
2015-12-13
android文件存储源码及笔记
2015-12-12
自定义ContentProvider
2015-12-06
GitForWindows2.6.3
2015-12-01
Spring入门.pdf
2020-02-17
SpringMVC 入门教程.pdf
2020-02-17
MyBatis入门教程
2020-02-17
Spring Boot2 教程.pdf.zip
2020-02-17
GitHub入门与实践
2017-10-16
websocket使用案例
2017-08-28
dubbo入门案例参考
2017-08-26
Ajax上传文件Demo
2017-08-25
SpringSession+Redis实现Session共享案例
2017-06-10
SQLBrite使用Demo
2016-09-18
Retrofit使用Demo
2016-09-13
ViewPager之PageTransformer属性使用Demo
2016-08-28
Android5.0水波纹效果Demo
2016-08-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人