SpringSecurity学习笔记(三)

                                                     Spring Security 的架构
一、要对Web资源进行保护, 最好的办法莫过于Filter, Spring Security 对Web资源的保护,
      就是靠Filter实现的。一般来说, Filter 应该配置在 web.xml 中, 但Spring Security
      在web.xml 中配置的只是一个代理(DeletegatingFilterProxy)这些过滤器中的每一个都必
      须被注入来自 Spring 应用程序上下文的其他 Bean. 但 Servlet 规范并没有使得 Servlet
      过滤器上的依赖注入容易进行.DeletegatingFilterProxy 通过充当 Spring 应用程序中被
      配置为 Bean 的实际过滤器的“挂名人物” 来解决这个问题.真正起作用的 Filter 是 
      Spring 上下文中的那些 Filter Bean. web.xml 中的代理依次调用这些Bean, 实现对Web
     资源的保护.
二、AuthenticationProcessingFilter
      处理 form 登陆的过滤器, 与 form登陆有关的所有操作都是在此进行的.
      默认情况下只处理/j_spring_security_check 请求, 这个请求应该是用户使用 form登陆后的提交地址
      此过滤器执行的基本操作时, 通过用户名和密码判断用户是否有效,如果登录成功就跳转到成功页面(可能
      是登陆之前访问的受保护页面, 也可能是默认的成功页面), 如果登录失败, 就跳转到失败页面
     登录流程:
     ①Spring Security 使用认证过程过滤器(AuthenticationProcessingFilter) 来处理表单认证,  当接受
        到与filterProcessesUrl(默认值为: /j_spring_security_check) 所定义相同的请求时认证过程过滤
        器开始工作。
      ②AuthenticationProcessingFilter 调用AuthenticationManager (认证管理器)以确认用户的身份是否合法.
      ③org.springframework.security.AuthenticationManager 接口定义了一个 authenticate 方法, 
        它使用 Authentication 作为入口参数(只包含用户名和密码),  并在验证成功后返回一个完整的
        Authentication  对象(包含用户的权 限信息GrantedAuthority数组对象)
       ④如果认证失败会抛出一个跳转到 authenticationFailureUrl 定义的 URL
       ⑤Spring Security 使用 org.springframework.security.providers.ProviderManager(提供者管理器)
         类作为AuthenticationManager(认证管理器)的一个实现,  该类是继承自实现了
         AuthenticationManager 接口的AbstractAuthenticationManager类.
       ⑥ProviderManager(提供者管理器) 自己并不实现身份验证, 而是把这项工作交给了多个认证提供者(提供者集合)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值