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