AbastractAuthentication Filter
Authentication Provider에서 실제 인증이 일어남.
4.1 성공하면 성공 인증
4.2 실패하면 Exception
Authentication Provider 는 Authentication객체를 받음.
UserDetailsService에서 auth객체를 가지고 DB에 있는 유저임을 알게 된다면, UserDetails라는 객체를 꺼내서 User의 세션을 생성한다.
UserDetails는 SecurityContext(Spring Security In memory)에 저장하고, 유저 세션아이디와 응답을 보냄.
요청 쿠키에 JSESSION을 검증 후 , 유효하다면 인증을 하게 된다.
SecurityContextRepository를 통해 SecurityContext를 Load/Save 처리
로그아웃 URL(default : /logout)로의 요청을 감시하여 해당 사용자를 로그아웃 시킴.
ID/Password 기반 Form 인증 요청 URL(default : /login)을 감시하여 사용자를 인증함.
요청을 처리하는 중에 발생할 수 있는 예외를 위임하거나 전달
Exception Handler와 비슷하다고 볼 수 있음.
접근 권한 확인을 위해 요청을 AccessDecisionManager로 위임.
이 필터가 실행되는 시점에는 사용자가 인증됐다고 판단