Spring Security --- 自定义Filter
- 简介
- 任何 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被执行了,可以在这个过滤器里面添加自己的逻辑实现
- 完整配置类代码
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/649297.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!