图解Spring Security默认使用的过滤器 - 编程入门网
图解Spring Security默认使用的过滤器时间:2011-03-20 blogjava 临远首先看一下auto-config="true"的情况下,默认会用到哪些过滤器。 图 7.1.auto-config=''true''时的过滤器列表 下面开始对这些过滤器的功能一一道来。 7.1.HttpSessionContextIntegrationFilter 图 7.2.org.springframework.security.context.HttpSessionContextIntegrationFilter 图解Spring Security默认使用的过滤器(2)时间:2011-03-20 blogjava 临远位于过滤器顶端,第一个起作用的过滤器。 用途一,在执行其他过滤器之前,率先判断用户的session中是否已经存在一个SecurityContext了。如果存在,就把 SecurityContext拿出来,放到SecurityContextHolder中,供Spring Security的其他部分使用。如果不存在,就创建一个SecurityContext出来,还是放到SecurityContextHolder中,供Spring Security的其他部分使用。 用途二,在所有过滤器执行完毕后,清空SecurityContextHolder,因为SecurityContextHolder是基于ThreadLocal的,如果在操作完成后清空ThreadLocal,会受到服务器的线程池机制的影响。 7.2.LogoutFilter 图 7.3.org.springframework.security.ui.logout.LogoutFilter 只处理注销请求,默认为/j_spring_security_logout。 用途是在用户发送注销请求时,销毁用户session,清空SecurityContextHolder,然后重定向到注销成功页面。可以与rememberMe之类的机制结合,在注销的同时清空用户cookie。 7.3.AuthenticationProcessingFilter 图 7.4.org.springframework.security.ui.webapp.AuthenticationProcessingFilter 图解Spring Security默认使用的过滤器(3)时间:2011-03-20 blogjava 临远处理form登陆的过滤器,与form登陆有关的所有操作都是在此进行的。 默认情况下只处理/j_spring_security_check请求,这个请求应该是用户使用form登陆后的提交地址,form所需的其他参数可以参考:第 4.3 节 “登陆页面中的参数配置” 。 此过滤器执行的基本操作时,通过用户名和密码判断用户是否有效,如果登录成功就跳转到成功页面(可能是登陆之前访问的受保护页面,也可能是默认的成功页面),如果登录失败,就跳转到失败页面。 7.4.DefaultLoginPageGeneratingFilter 图 7.5.org.springframework.security.ui.webapp.DefaultLoginPageGeneratingFilter 此过滤器用来生成一个默认的登录页面,默认的访问地址为/spring_security_login,这个默认的登录页面虽然支持用户输入用户名,密码,也支持rememberMe功能,但是因为太难看了,只能是在演示时做个样子,不可能直接用在实际项目中。 如果想自定义登陆页面,可以参考:第 4 章 自定义登陆页面 。 7.5.BasicProcessingFilter 图 7.6.org.springframework.security.ui.basicauth.BasicProcessingFilter 图解Spring Security默认使用的过滤器(4)时间:2011-03-20 blogjava 临远此过滤器用于进行basic验证,功能与AuthenticationProcessingFilter类似,只是验证的方式不同。有关basic验证的详细情况,我们会在后面的章节中详细介绍。 7.6.SecurityContextHolderAwareRequestFilter 图 7.7.org.springframework.security.wrapper.SecurityContextHolderAwareRequestFilter 此过滤器用来包装客户的请求。目的是在原始请求的基础上,为后续程序提供一些额外的数据。比如getRemoteUser()时直接返回当前登陆的用户名之类的。 7.7.RememberMeProcessingFilter 图 7.8.org.springframework.security.ui.rememberme.RememberMeProcessingFilter 此过滤器实现RememberMe功能,当用户cookie中存在rememberMe的标记 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |