Security工作流程及代码分析

本文详细分析了Spring Security的工作原理,包括过滤器认证的抽象过程、工作流程、核心过滤器的功能。重点关注了SecurityContextPersistenceFilter、BasicAuthenticationFilter、SessionManagementFilter和FilterSecurityInterceptor的作用,阐述了它们在用户认证、权限管理和异常处理中的角色。
摘要由CSDN通过智能技术生成

Spring Security工作原理

在了解了Security几个核心类的概念之后,我们梳理一下Security的工作原理。

本文将要分析的几个问题

security的工作流程,security的几个核心过滤器的功能,即什么时候把Authentication与线程绑定,什么时候进行认证,什么时候将Authentication与session关联,什么时候将Authentication改变更新到session,什么时候进行权鉴,没有认证信息及权限的时候是如何处理的。

过滤器认证的抽象过程

过滤器使用AuthenticationManager进行认证,AuthenticationManager即认证管理器,通常使用的是ProviderManger。ProviderManger里面有很多的Provider,比如DaoAuthenticationProvider,他们对用户信息进行认证,以DaoAuthenticationProvider的实现为例,它会用userDetailsService根据用户名加载出数据库内实际的用户信息,然后和用户提交的用户信息(被过滤器封装为Authentication,只包含了用户及密码)对比。如果对比成功,则会将数据库里的其他用户信息如权限等其他信息一起封装到Authentication中,最后由过滤器将该Authentication设置到context中。

工作流程

Filter我们都很熟悉了,其实security就是基于FIlter实现的,它的关键类FilterChainProxy的就是一个Filter。

带Security鉴权框架的系统整体过滤流程如下:

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值