【Spring Security】Spring Security 认证过程源码分析

项目启动

我们在前面有了解到可以在application.yml中配置用户名密码,那么可以猜想:肯定是在项目启动的时候加载的,我们通过鼠标点击

进入SecurityProperties,我们在User中的getName上打断点,这样项目启动的时候就可以走到这里

之后我们通过点击:Drop Frame可以往回走进入如下方法:

InMemoryUserDetailsManager

我们进入该类中找到如下方法:loadUserByUsername是登录的时候实际的查询账号密码比对的方法

访问登录

当我们知道loadUserByUsername方法后,打断点启动项目,登录

会发现该方法被调用,我们还是点击Drop Frame回退!

DaoAuthenticationProvider

AbstractUserDetailsAuthenticationProvider

ProviderManager

重要:UsernamePasswordAuthenticationFilter

AbstractAuthenticationProcessingFilter

FilterChainProxy

LogoutFilter

HeaderWriterFilter

重要:OncePerRequestFilter

WebSecurity

通过查询FilterChainProxy可以搜索到在WebSecurity的performBuild方法中调用

猜你喜欢

转载自blog.csdn.net/weixin_45481821/article/details/134231183