登录过程
1)首先,访问没有授权的/private
2)FilterSecurityInterceptor
拒绝访问,并抛出AccessDeniedException
3)ExceptionTranslationFilter
根据AuthenticationEntryPoint
重定向到/login
4)浏览器根据重定向,访问login
5)渲染登录界面
当用户在登录界面输入用户名和密码后,进入到了AbstractAuthenticationProcessingFilter
流程,这里是具体的实现类UsernamePasswordAuthenticationFilter
protected void configure(HttpSecurity http) {
http
// ...
.formLogin(withDefaults());
}
参考:
https://docs.spring.io/spring-security/site/docs/5.4.5/reference/html5/#servlet-authentication-form