Spring Security源码(一):整体框架设计
文章目录
- 一、一句话概括框架原理
- 二、何处开始读源码?
-
- 思考
- 瞅瞅
- 三、框架接口设计
-
- 建造者
- 配置器
- 四、总结
- 五、系列文章
-
- Spring Security 系列
- Spring Security OAuth 系列
一、一句话概括框架原理
> 整个框架的核心就是构建一个名字为 springSecurityFilterChain 的过滤器Bean,它的类型是 FilterChainProxy 。
二、何处开始读源码?
思考
> 我们知道,程序入口类会自动扫描当前包及其子包下所有的Bean,并进行实例化,那么 在引入一个新的框架,框架中一些定义好的Bean如何注入我们的Spring容器中呢? ,这些包并不能被入口类扫描中。
> 其实无非就是通过 @Import 引入相关的类。一般在使用 Spring Security 框架时,我们会自定义一个配置类,配置类加上 @EnableWebSecurity 注解,重新启动程序,一个使用了安全框架的项目就起来了,在无任何自定义配置情况下 Spring Security 默认配置了一个登录过滤器链。
> 加个 @EnableWebSecurity 注解就可以,怎么做到的?
瞅瞅
- 点击自定义配置类上添加的 @EnableWebSecurity
@Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME)
@Target(value = {
java.lang.annotation.ElementType.TYPE })
@Documented
@Import({
WebSecurityConfiguration.class,
SpringWebMvcImportSelector.class })
@EnableGlobalAuthentication
@Configuration
public @interface EnableWebSecurity {
/**
* Controls debugging support for Spring Security. Default is false.
* @return if true, enables debug support with Spring Security
*/
boolean debug() default false;
}