1.背景
在默认过滤器链中,总共有15个过滤器,它们每个都承载了不同的角色和功能。它的匹配也比较霸气是anyRequest。就是其他人都配不上的时候,我来接盘。
2.WebAsyncManagerIntegrationFilter是干什么的?
WebAsyncManager 是一个异步请求管理器,主要就是针对异步请求如何能和同步请求一样对一些数据进行处理。
Spring Security在这里的WebAsyncManagerIntegrationFilter
就是用来管理在异步请求中SecurityContext
的生命周期的。
主要是通过SecurityContextCallableProcessingInterceptor
来持有SecurityContext
,然后注入到SecurityContextHolder
(SecurityContextHolder
是其他组件获取SecurityContext
的公共类),再到最后清理SecurityContext
。
具体流程:
这个类就是为每个请求创建一个WebAsyncManager,并注入到请求中。
每个WebAsyncManager持有一系列拦截器(这次真的是拦截器CallableProcessingInterceptor)
3.小结
这个东西对于非异步请求来说好像没啥用。就是request多了个WEB_ASYNC_MANAGER的属性。
至于后面有没有用到,我看到了再补充。