当前位置: 首页 > news >正文

淄博网站客户长春火车站附近有什么好玩的地方

淄博网站客户,长春火车站附近有什么好玩的地方,建设举报网站,360收录提交入口网址文章目录1.引言2.Spring Security过滤器链加载1.2.注册名为 springSecurityFilterChain的过滤器2、查看 DelegatingFilterProxy类3.查看 FilterChainProxy类3.1 查看 doFilterInternal方法。3.2 查看 getFilters方法。4 查看 SecurityFilterChain接口5 查看 SpringBootWebSecur…

在这里插入图片描述

文章目录

    • 1.引言
    • 2.Spring Security过滤器链加载
      • 1.2.注册名为 springSecurityFilterChain的过滤器
    • 2、查看 DelegatingFilterProxy类
    • 3.查看 FilterChainProxy类
      • 3.1 查看 doFilterInternal方法。
    • 3.2 查看 getFilters方法。
    • 4 查看 SecurityFilterChain接口
    • 5 查看 SpringBootWebSecurityConfiguration类

1.引言

在 Spring Boot项目之中,我们引入 Spring Security依赖,什么也没做,启动项目 Spring Security 就会生效,访问请求就进行了拦截。

Spring Boot 对于 Spring Security 提供了自动化配置方案,可以使用更少的配置来使用 Spring Security。

那么这个过滤器链是怎么加载和实现拦截的呢?

2.Spring Security过滤器链加载

1.2.注册名为 springSecurityFilterChain的过滤器

当 Spring Boot 项目启动后,SecurityFilterAutoConfiguration类会加载 DelegatingFilterProxyRegistrationBean注册过滤器,名字为 springSecurityFilterChain
在这里插入图片描述

注意:springSecurityFilterChain名字是固定写死的。

DelegatingFilterProxyRegistrationBean 注册成功后,该过滤器就被加载了到了注册器中。然后调用getFilter()方法生成 DelegatingFilterProxy代理对象并注册到 IOC中 。
在这里插入图片描述

2、查看 DelegatingFilterProxy类

我们访问项目,就会进入 DelegatingFilterProxy类的 doFilter方法。

DelegatingFilterProxy类本质也是一个 Filter,其间接实现了 Filter接口,但是在 doFilter中其实调用的从 Spring 容器中获取到的代理 Filter的实现类。

在这里插入图片描述
返回的 FilterChainProxy对象。

由此可知,DelegatingFilterProxy类通过 springSecurityFilterChain这个名称,得到了一个 FilterChainProxy过滤器,最终执行的是这个过滤器的 doFilter方法。

验证 springSecurityFilterChain名词不能修改
查看 initDelegate方法。

在这里插入图片描述

3.查看 FilterChainProxy类

FilterChainProxy类本质也是一个 Filter,所以查看 doFilter方法。留意该类里面的属性。

public class FilterChainProxy extends GenericFilterBean {private static final Log logger = LogFactory.getLog(FilterChainProxy.class);private static final String FILTER_APPLIED =FilterChainProxy.class.getName().concat(".APPLIED");// 过滤器链private List<SecurityFilterChain> filterChains;private FilterChainProxy.FilterChainValidator filterChainValidator;private HttpFirewall firewall;

3.1 查看 doFilterInternal方法。

惊不惊喜?15个过滤器都在这里了!
在这里插入图片描述

3.2 查看 getFilters方法。

原来这些过滤器都被封装进 SecurityFilterChain对象中。
在这里插入图片描述

4 查看 SecurityFilterChain接口

SecurityFilterChain类是个接口,实现类也只有一个 DefaultSecurityFilterChain类。
DefaultSecurityFilterChain类的构造方法,初始化了 List filters,是通过传参放进去的。
在这里插入图片描述
过滤器链参数是什么时候传入的?

5 查看 SpringBootWebSecurityConfiguration类

创建 Spring Security 过滤器链是交给 Spring boot 自动配置,由 SpringBootWebSecurityConfiguration类创建注入。
在这里插入图片描述
查看 WebSecurityConfigurerAdapter类。

在这里插入图片描述
然后会注入 HttpSecurity对象,HttpSecurity可以理解为 Spring Security 的 http核心配置,存放 Spring Security 中的过滤器链、请求匹配路径等相关认证授权的重要方法。

然后开始创建 Spring Security 过滤器链了,是交给 Spring Boot自动配置,一共有 15个过滤器。
使用 OrderedFilter进行代理,并设置了order属性。
添加完成后,将这些过滤器再封装为 DefaultSecurityFilterChain对象。

最后通过 WebSecurityConfiguration配置加载 springSecurityFilterChain,WebSecurityConfiguration中维护了securityFilterChains属性,会存放过滤器链中所有的过滤器。

总结
Spring boot 通过 DelegatingFilterProxyRegistrationBean注册过滤器,名字为 springSecurityFilterChain,并生成 DelegatingFilterProxy代理对象并注册到 IoC中。最终真正调用 FilterChainProxy过滤器的 doFilter 获取到 Spring Security 过滤器链

Spring Security的过滤器链在底层是封装在 SecurityFilterChain接口中的。

http://www.yayakq.cn/news/983533/

相关文章:

  • 网站建设招标参数做网站推广有什么升职空间
  • ps制作网站模板发布外链的平台有哪些
  • 网站套餐可以分摊吗吗制作自己的网页
  • 建设一个网站的硬件要求吗传奇怎么做充值网站
  • wordpress文章标题设为标签网站seo优化关键词
  • 35互联做的网站如何泰坦科技网站建设
  • 多语种网站wordpress黑糖主题
  • 自己做网站要学什么软件下载wordpress地图主题
  • 西数 网站建设中国公司排行榜前十名
  • 阿里云个人网站制作滕州做网站
  • 哪家公司做网站开发做得比较好一个专门做恐怖片的网站
  • 怎么制作小网站 不用域名的网站模板 百科
  • 做网站工资多钱长沙找工作哪个网站好
  • 电视网站免费大全代做毕业设计网站
  • 生成图片链接的网站精致的网站
  • 温州网站建设推广服务应届生求职网站官网
  • 做网站切片上海装修公司招聘施工队长
  • 做网站 用哪个网盘好福建省网站建设绩效排名
  • 广州网站设计工作室网站开发用什么电脑好
  • 网站开发课程培训大学电子系的建设网站的方案
  • 网站建设项目招标书网站模仿侵权
  • 网站建设预付流程景洪市新农村建设网站
  • 罗湖建设网站跨境电商网站设计
  • 网站的留言功能网站建设相关资料
  • 影视传媒网站源码做网站图片自动切换
  • 淘宝客如何新建网站网页标准化对网站开发维护者的好处
  • 兰州网站网站建设wordpress页面php代码
  • 网站rss生成python做网站毕业设计
  • 兰州网站建设咨询薇iis asp网站
  • 如何自己制作自己的网站wordpress 要求ftp