1.官方文档解读
在官方文档中告诉我们,当开启spring security 的默认配置时,spring security 会创建一个名为springSecurityFilterChain
的bean来完成所有安全方面的功能。
比如:
- 应用程序url保护
- 用户密码认证
- 重定向登录界面
- 登出接口
上面都是些基本功能。
那么springSecurityFilterChain
是在哪创建的呢?
2. springSecurityFilterChain
的创建
可以看到 springSecurityFilterChain
是在WebSecurityConfiguration 中创建的。
3.WebSecurityConfiguration
那么WebSecurityConfiguration
又是在哪注入的呢?
可以看到WebSecurityConfiguration
是在@EnableWebSecurity
注解中通过@Import
进行注入的
4. @EnableWebSecurity
这个注解又在哪被使用的呢?
这个还是比较难找,@EnableWebSecurity 这个注解在很多地方都有引用
看到这一片有点头皮发麻,然后我在网上参考《Spring Security(3):配置与自动配置的介绍及源码分析》后发现,spring boot 其实有一个默认自动装配的jar包
spring-boot-autoconfigure-2.3.9.RELEASE.jar
这个里面进行很多东西的自动装配,这其实也就是我们常用的一些东西的默认自动注入集合包,也就是为啥我们配置文件里只要添加了相关配置,或者添加了相关jar包,就能够实现自动装配
这里我们可以发现@EnableWebSecurity
在WebSecurityEnablerConfiguration
上被引用。
5.WebSecurityEnablerConfiguration
又是在哪注入的呢?
最终我们终于知道了springSecurityFilterChain
怎么注入到了spring 容器中了。
6.小结
从这次查找过程我又get了一点,对于那些放完jar包就能用的,要么是在jar包的spring.factories
能找到对应的配置,要么可以去spring-boot-autoconfigure
这个jar包下去找找对应的包和类。
ok在这里我们知道了spring security 如何生效,那么后面查找对应的内容,我们也知道如何下手了。
下一篇看看springSecurityFilterChain
到底如何起作用的。