- 简介
- 任何 Spring Web 应用本质上只是一个 servlet
- Security Filter在 HTTP 请求到达你的 Controller 之前过滤每一个传入的 HTTP请求
- Filter请求过滤器可以帮助进行HttpServletRequest请求和HttpServletResponse响应的过滤
- 在自定义的Filter过滤器中可以对请求进行过滤, 同时也可以对返回进行相应处理,在方法中实现自定义的业务逻辑处理
- Spring Security本身所做的事情就是在Spring容器中注册了一系列的Filter
- 这些Filters在检测到满足条件的URL请求时,会执行其定义的处理过程
- 默认Filter分析
- Security本身默认提供了一些Filter来完成其各种功能
- Security默认的Filter入口在HttpSecurity对象中
- 在HttpSecurity对象中,实际提供的是各默认Filter的配置类
- 通过配置类来控制对应Filter的各个属性配置
- 在配置完成将Filter加载到HttpSecurity中的FilterChain中去
- 在HttpSecurity中提供了以下默认Filter及其配置类:
- 默认的Filter并不是在HttpSecurity对象初始化的时候就全部加载,而是根据用户定制情况进行加载
- 自定义Spring Security配置类中添加自定义Filter
- 自定义Filter类
- 为什么继承自OncePerRequestFilter这个类
- OncePerRequestFilter是Spring Boot里面的一个过滤器抽象类,这个类的作用就是用于继承实现并在每次请求时只执行一次过滤
- 在自定义的spring security配置类中配置myFilter
- Filter的实现使用了设计模式中的责任链模式
- 在添加自定义的Filter时,可以有很多方式,可以指定将自定义的Filter添加到某个指定的Filter之前或者之后,具体怎么实现看用户自己的选择
- 1-注入自定义Filter的bean对象
- 2-将自定义Filter的bean对象添加到过滤器链中的用户登录认证校验过滤器之前
- 3-启动项目, 看看Filter是否生效,随便发送一个请求,看到定义的myFilter被执行了,可以在这个过滤器里面添加自己的逻辑实现
- 完整配置类代码
Spring Security --- 自定义Filter
猜你喜欢
转载自blog.csdn.net/weixin_59624686/article/details/131226517
今日推荐
周排行