项目启动
我们在前面有了解到可以在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方法中调用











