为了防止以后忘记各个过滤器作用,特此把主要的过滤器作用放入此blog中。
ChannelProcessingFilter:检查用户请求是否走了要求的数据传输通道,即是SSL传输通道还是HTTP传输通道。如果不复合 要求ChannelProcessingFilter会采用重定向机制转换传输协议。注意ChannelProcessingFilter并不操控存储了 SecurityContext对象的SecurityContextHolder
ConcurrentSessionFilter:用于HttpSession并发控制的过滤器,它也不需要操控到存储了SecurityContext对象的SecurityContextHolder
HttpSessionConcurrentIntegrationFilter:这是操控SecurityContextHolder的首个过滤 器。期间可能会涉及到HttpSession的同步,即同步SecurityContext对象,当web请求来 时,HttpSessionContextIntegrationFilter会从现在的HttpSession获得SecurityContext对 象,并设置到SecurityContextHolder中。如果不存在HttpSession,则直接构建一个全新的SecurityContext对 象,并将她设置到SecurityContextHolder中,当web请求即将离开 时,HttpSessionContextIntegrationFilter会检查SecurityContext对象是否被别人更新过,如果是,则同 步到HttpSession中。最后,这一过滤器总是会调用SecurityContextHolder的clearContext()方法,以复位 SecurityContextHolder的取值
LogoutFilter:负责完成已经登陆用户的退出操作
HttpRequestIntegraationFilter,X509ProcessingFilter,AuthenticationProcessingFilter,BasicProcessingFilter,DigestProcessingFilter,JbossIntgrationFilter,CasProcessingFilter: 是各种认证的具体过滤器
SecurotyContextHolderAwareRequestFilter:满足与JAVAEE兼容的过滤器,期间,她会采用 SavedRequestAwareWrapper包裹ServletRequest,从而兼容于标准的JAVAEE安全性编程模型,比如兼容 HttpServletRequest暴露的getRemoteUser(),getUserPrincipal()等JAVAEE安全行相关的方法
RememberMeProcessingFilter:
AnonymousProcessingFilter:
ExceptionRanslationFilter:这一Acegi过滤器用于捕捉异常信息
FilterSecurityInterceptor:这一过滤器用于web资源的授权
SwitchUserProcessingFilter:启用用户切换服务
参考:http://www.diybl.com/course/3_program/java/javashl/20090306/158653.html