1. 前言
Spring Security真正的过滤器体系才是我们了解它是如何进行"认证"、“授权”、“防止利用漏洞”的关键。
2. Servlet Filter体系
这里我们以Servlet Web为讨论目标,Reactive Web暂不讨论。我们先来看下最基础的Servlet体系,在Servlet体系中客户端发起一个请求过程是经过0到N个Filter
然后交给Servlet
处理。
Filter
不但可以修改HttpServletRequest
和HttpServletResponse
,可以让我们在请求响应的前后做一些事情,甚至可以终止过滤器链FilterChain
的传递。
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) {
// 请求被servlet 处理前
if(condition){
// 根据条件来进入下一个过滤器
chain.doFilter(request, response);
}
// 请求被执行完毕后处理一些事情
}
<