很多小伙伴 对于SpringSecurity框架 只是知道 用的来,但是面试的时候,叫他或者她说一下 认证或者授权的原理或者流程是怎样的,突然,大部分人一下就开不了口,这样就导致面试的时候,被削减工资 。今天就给大家说说 SpringSecurity的认证原理。
看一下认证流程的流程图 :
其实 你把这个流程图看懂,基本认证的源码你就知道了。
下面就来分析一下认证的原理 :
小伙伴 还记到 我在类上 配置的 @EnableWebSecurity这个注解吧,点击进去看 有个@EnableGlobalAuthenticaiton这个注解就和认证有关系了。
在进入@EnableGlobalAuthenticaiton 这个注解 看到一个类 AuthenticationConfiguration这个类,这个类就关键了
进入该类 找到 authentication方法(关键方法)
public Authentication authenticate(Authentication authentication) throws AuthenticationException {
if (this.delegate != null) {