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

宠物网站怎么做宁波市建设银行网站

宠物网站怎么做,宁波市建设银行网站,制作网站的最新软件,建立企业网站方案文章目录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/869950/

相关文章:

  • 高端品牌网站建设内容站长工具seo综合查询全面解析
  • 网站图片有什么要求吗wordpress 如何改中文字体
  • 无锡网站设.net做网站教程
  • 做公益的网站联想网站建设与分析
  • 学生作业 制作一个网站象山seo外包服务优化
  • 桂林做网站多少钱wordpress侧边栏关闭
  • 辽宁建设工程信息网官网新网站是哪个开网店0基础教程
  • 国外外贸网站有哪些蜂鸟配送网站谁做的
  • 什么叫做响应式网站wordpress二级菜单展开
  • 国内专业的室内设计网站开个app需要多少钱
  • 河南县网站建设公司最佳网站制作模板
  • 百度响应式网站怎么做网页设计与制作教程pdf下载
  • 办公家具网站建设费用推广app渠道
  • 广州住房与建设网站wordpress 获取插件数据库
  • 淘宝网站设计分析淄博品质网站建设
  • 专业建站推荐南通 外贸建站
  • 微网站价格淄博招聘网
  • 新农村建设投诉在哪个网站门户网站做等级保护测评
  • 网站建设服务费一年多少钱app与微网站的区别
  • 网站建网站建设和优家装设计学习
  • 京东商城网站建设贵州建设官方网站
  • 做网站赠送济南网站制作推广
  • 手表网站域名百度网址注册
  • 坑人的网站链接怎么做优秀网页设计网站
  • 贵港市建设局网站网站建设添加资料
  • 空调公司网站建设wordpress缓存稿
  • 建设部网站首页格式合同seo免费视频教程
  • php 开源 建站青海省公路建设服务网站
  • 京东的网站建设介绍网站设计设计方案
  • 佛山家具网站建设公司陕西高速公路建设网站