0
点赞
收藏
分享

微信扫一扫

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


项目启动

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

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

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

【Spring Security】Spring Security 认证过程源码分析_搜索_02

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

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

InMemoryUserDetailsManager

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

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

访问登录

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

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

【Spring Security】Spring Security 认证过程源码分析_后端_05

DaoAuthenticationProvider

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

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

AbstractUserDetailsAuthenticationProvider

【Spring Security】Spring Security 认证过程源码分析_后端_08

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

ProviderManager

【Spring Security】Spring Security 认证过程源码分析_后端_10

【Spring Security】Spring Security 认证过程源码分析_后端_11

重要:UsernamePasswordAuthenticationFilter

【Spring Security】Spring Security 认证过程源码分析_后端_12

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

AbstractAuthenticationProcessingFilter

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

【Spring Security】Spring Security 认证过程源码分析_搜索_15

FilterChainProxy

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

LogoutFilter

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

HeaderWriterFilter

【Spring Security】Spring Security 认证过程源码分析_搜索_18

重要:OncePerRequestFilter

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

WebSecurity

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

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

举报

相关推荐

0 条评论