7 _江南一点雨

尚未进行身份认证

我要认证

Java攻城狮

等级
TA的排名 119

Spring 源码解读第七弹!bean 标签的解析

Spring 源码解读继续。本文是 Spring 系列第八篇,如果小伙伴们还没阅读过本系列前面的文章,建议先看看,这有助于更好的理解本文。Spring 源码解读计划Spring 源码第一篇开整!配置文件是怎么加载的?Spring 源码第二弹!XML 文件解析流程Spring 源码第三弹!EntityResolver 是个什么鬼?Spring 源码第四弹!深入理解 BeanDefinition手把手教你搭建 Spring 源码分析环境Spring 源码第六弹!松哥和大家聊聊容器的始祖 Def

2020-08-10 08:56:23

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

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

2020-07-30 09:33:32

深入理解 WebSecurityConfigurerAdapter【源码篇】

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

2020-07-29 09:40:17

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

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

2020-07-27 09:20:07

深入理解 AuthenticationManagerBuilder 【源码篇】

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

2020-07-23 10:14:19

深入理解 HttpSecurity【源码篇】

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

2020-07-22 11:48:23

深入理解 SecurityConfigurer 【源码篇】

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

2020-07-21 09:18:55

深入理解 FilterChainProxy【源码篇】

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

2020-07-20 09:17:49

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

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

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

2020-07-14 08:35:01

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

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

2020-07-10 09:11:33

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

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

2020-07-07 07:17:12

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

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

2020-07-03 08:46:09

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

一文搞定 Spring Security 异常处理机制!

今天来和小伙伴们聊一聊 Spring Security 中的异常处理机制。在 Spring Security 的过滤器链中,ExceptionTranslationFilter 过滤器专门用来处理异常,在 ExceptionTranslationFilter 中,我们可以看到,异常被分为了两大类:认证异常和授权异常,两种异常分别由不同的回调函数来处理,今天松哥就来和大家分享一下这里的条条框框。1.异常分类Spring Security 中的异常可以分为两大类,一种是认证异常,一种是授权异常。认证异常

2020-06-30 09:05:17

Spring 源码第三弹!EntityResolver 是个什么鬼?

上篇文章和小伙伴们说了 Spring 源码中 XML 文件的解析流程,本来可以继续往下走看加载核心类了,但是松哥还是希望能够慢一点,既然要学就学懂,在 XML 文件解析的过程中还涉及到一些其他的类和概念,因此我就先用几篇文章介绍一下这些涉及到的概念或者类,然后我们再继续往下看。本文要和大家介绍的是上篇文章中涉及到的 EntityResolver 类,看看这个类到底是干嘛用的。本文是 Spring 源码系列第四篇,阅读前面文章有助于更好理解本文:Spring 源码解读计划Spring 源码第一篇开整

2020-06-29 09:35:03

Spring Security 配置中的 and 到底该怎么理解?

我们先来看一个简单的配置:@Overrideprotected void configure(HttpSecurity http) throws Exception { http.authorizeRequests() .anyRequest().authenticated() .and() .formLogin() .loginProcessingUrl("/doLogin")

2020-06-24 08:13:39

神奇!自己 new 出来的对象一样也可以被 Spring 容器管理!

按理说自己 new 出来的对象和容器是没有关系的,但是在 Spring Security 框架中也 new 了很多对象出来,一样也可以被容器管理,那么它是怎么做到的?今天来和大家聊一个略微冷门的话题,Spring Security 中的 ObjectPostProcessor 到底是干嘛用的?本文是 Spring Security 系列第 32 篇,阅读前面文章有助于更好的理解本文:挖一个大坑,Spring Security 开搞!松哥手把手带你入门 Spring Security,别再问密码怎么

2020-06-23 12:04:48

Spring 源码第二弹!XML 文件解析流程

Spring 源码继续开整!上篇文章中,松哥和大家分享了 Spring 中配置文件的加载方式,如果小伙伴们还没看过,一定先看一下,这有助于更好的理解本文,传送门:Spring 源码第一篇开整!配置文件是怎么加载的?。上篇文章和大家分享了 Spring 中是如何加载本地配置文件的,如何将加载到的本地配置文件通过一个 InputStream 返回。了解到这一点之后,接下来就是对 InputStream 的解析了。本文我们就来看一下整个解析流程是什么样子的。1.XmlBeanDefinitionReade

2020-06-22 09:38:22

花式玩 Spring Boot!过滤器竟有 N 种注册方式!松哥手把手教你

要说在 Spring Boot 中注册过滤器有三种方式,你都能想到哪些呢?今天松哥就来和大家聊一聊 Spring Boot 中注册过滤器的三种方式!其实本来是想和大家聊 Spring Security 过滤器链的问题的,结果看源码看着看着就跑题了,索性就先和大家聊一聊 Spring Boot 中注册过滤器的三种方式,算是给 后面的 Spring Security 打一点基础。1.@WebFilter通过 @WebFilter 注解来标记一个过滤器,这种方式相信大家很容易想到。这是将 Servlet 中

2020-06-19 08:43:53

查看更多

CSDN身份
  • 博客专家
勋章 我的勋章
  • 技术圈认证(专家版)
    技术圈认证(专家版)
    博客专家完成年度认证,即可获得
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 原力探索
    原力探索
    参与《原力计划【第二季】——打卡挑战》的文章入选【每日精选】的博主将会获得此勋章。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。