Security 인증 절차
- 사용자는 http Request로 id(username) 과 password를 가진 상태로 접근한다.
- Authentication Filter는 사용자로 부터 받은 id(username) 과 password를 이용하여 UsernamePasswordAuthenticationToken을 만든다.
- 그렇게 형성된 Token을 Authentication Manager로 보내주게 되면 Authentication Manager는 Token에 저장된 username을 4,5,6 번 과정을 거쳐 DB에 존재하는 지 확인하게 된다.
- DB의 user 존재여부를 확인한 Authentication Manager는 username 해당 유저가 있다면 UsernamePasswordAuthenticationToken에서 password를 DB에 저장된 형태와 같은 해쉬함수를 사용하여 암호화 시킨후 DB의 user 객체의 password와 비교한다.
- 모든 비교가 성공하면, Authentication Manager는 Authentication이라는 객체를 형성하여 SecurityContextHolder 내부의 SecurityContext에 저장하여 세션값을 유지시킨다.
즉 위의 모든 일련 과정은 사용자로 부터 받은 id(username) 과 password를 이용하여 Authentication이라는 객체를 형성하여 세션값을 유지시키는 일련의 과정이다.