开篇
前面我们写了 4 篇 Spring Security
的实战教程, 全部基于 Springboot
搭建的.
- Spring Security 入门 - 01 将 Spring security 引入到工程
- Spring security 入门 - 02 自定义用户登录页面和登录处理逻辑
- Spring security 入门 - 03 自定义登录成功后的处理逻辑
- Spring security 入门 - 04整合 jwt
虽然我们学会了怎么用, 但是里面的原理还没搞清楚.
因此, 从本文开始, 我们会基于 Spring Security
与 Springboot
的整合, 去逐步去学习 Spring Security
的工作原理.
正文
通过前面的 4 篇实战教程, 我们暂时得到了如下结论:
- 当我们在项目中添加了
Spring Security
依赖后, 即使不做任何配置, 它也默认会帮我们拦截掉所有请求. - 为了修改
Spring Security
的默认行为, 我们需要做一些配置, 也就是通过重写WebSecurityConfigurerAdapter
的configure(HttpSecurity http)
方法.
那么问题来了, 为什么仅仅加了一个 Spring Security
依赖, 就可以拦截请求了?
答案自然跟 Springboot
的自动装配有关系.
SecurityAutoConfiguration 装配类
通过 @Import
注解, 可以找到 SpringBootWebSecurityConfiguration
类
@Configuration(proxyBeanMethods = false)
@ConditionalOnClass(DefaultAuthenticationEventPublisher