SpringSecurity6从入门到实战之Filter过滤器回顾
如果没有SpringSecurity这个框架,我们应该通过什么去实现客户端向服务端发送请求时,先检查用户是否登录,登录了才能访问.否则重定向到登录页面
流程图如下
- 官方文档:https://docs.spring.io/spring-security/reference/6.0/index.html
- 中文文档:https://springdoc.cn/spring-security/index.html
过滤器回顾
Spring Security 对 Servlet 的支持是基于 Servlet Filter 的,所以先看一下过滤器的一般作用是很有帮助的。下图显示了单个HTTP请求的处理程序的典型分层。
以上是过滤链的使用,当所有的filter都走完后最终会发送请求到达Servlet
过滤器 Filter:
- 1.必须实现 Filter 接口
- 2.过滤器在访问 Web 资源可以对请求进行拦截,并对请求进行预处理和后处理操作,然后将请求传递给目标资源。
- 3.如,强制登录过滤器,访问 web 资源时先对请求进行登录检查,已登录可以往后访问,未登录重定向回登录页。
过滤器链 FilterChain:
- 1.在对一个 web 资源进行拦截处理时的多个 Filter 和 web 资源组成一个 FilterChain 过滤器链。
- 2.FilterChain 中的 doFilter() 方法非常重要,用于让 Filter 链上的当前过滤器放行,使请求或响应进入下一 Filter 或 web 资源。