Security 身份认证和访问控制

基本解读

身份认证和访问控制(Authentication and Access Control)

  • 应用程序安全性差不多可以归结为两个独立的问题:身份认证(你是谁)和授权(authorization)(你可以做什么?)。
  • 有时人们会说“访问控制”而不是“授权”,这可能会造成困惑,但是以这种方式思考可能会有所帮助,因为“授权”在其他地方又有其他含义。
  • Spring Security的体系结构旨在将身份认证与授权分开,并且具有许多策略和扩展点

身份认证

  • 在AuthenticationManager接口的authenticate()方法中可以有3种处理情况:
    rOSGRI.png
  • 如果认证成功,则返回一个Authentication对象(通常将其authenticated属性设置为true)。
  • 如果认证失败,则抛出AuthenticationException异常。
  • 如果无法判断成功或失败,则返回null。
  • ProviderManager (AuthenticationManager 的实现 ,实现了authenticate(Authentication authentication)方法)
    • 继承于AbstractUserDetailsAuthenticationProvider,核心是通过UserDetails来实现认证,DaoAuthenticationProvider默认会自动加载
    • 并不是自己直接对请求进行验证,而是将其委派给一个AuthenticationProvider 列表
      rO9yrV.png
  • 列表中的每一个AuthenticationProvider 将会被依次查询其是否需要通过其进行验证
  • 每个provider的验证结果只有两个情况:抛出一个异常或者完全填充一个Authentication 对象的所有属性
    rOSHQx.png
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值