Spring Acegi 各组件说明


一开始真的被Acegi繁琐的配置吓到了,差点失去学习的耐心.
静下心来仔细的看看发现并没有想象的那么难.

1.Filter 组件
HttpSessionContextIntegrationFilter 
该 Filter负责每次请求从HttpSession中获取Authentication对象,然后把Authentication存于一个新的 ContextHolder对象(其实质上只是一个ThreadLocal对象)中,则让该次请求过程中的任何Filter都可以通过 ContextHolder来共享Authentication,而不需要从HttpSession中取,减少传HttpRequest参数的麻烦.在请 求完后把Authentication对象保存到HttpSession中供下次请求使用,最后把刚才生成的ContextHolder对象销毁.这样就 达到了让Authentication对象跨越多个请求的目的

注意此filter须在调用其他Acegi filter前使用:




AuthenticationProcessingFilter 
该 Filter负责处理登陆身份验证.当接受到与filterProcessesUrl所定义相同的请求时,它会首先通过 AuthenticationManager来验证用户身份.如果验证成功,则重定向到defaultTargetUrl所定义的成功登陆页面.如果验证 失败,则再从rememberMeServices中获取用户身份,若再获取失败,则重定向到auhenticationFailureUrl所定义的登 陆失败页面



/acegilogin.jsp?login_error=1
/
/j_acegi_security_check



LogoutFilter 
该Filter负责处理退出登录后所需要的清理工作.它会把session销毁,把ContextHolder清空,把rememberMeService从cookies中清除掉,然后重定向到指定的退出登陆页面.


你可能感兴趣的:(Spring)