


AuthenticationFilter 는 사용자의 인증 정보를 저장하는 토큰 개념의 객체이다.
인증은 특정자원에 접근하려는 사람의 신원을 확인하는 과정이다,
사용자의 인증 은 사용자의 이름과 비밀번호를 입력하게 해서 인증이 되면 권한 부여를 하는 것이다 .
AuthenticationManager (관리자) 는 관리를 하고 Provider는 실행 및 총괄을 한다.
UserDetailService에서 사용자정보(UserDetails) 를 가져와서 PasswordEncoder에서 비밀번호를 검증하고 Authentication 객체를 만들고 다시 그게 Authentication 객체를 만들어서 SecurityContext 에 저장이 된다고 보면 될꺼 같다.



여기서 별도의 정보를 뽑아서 따로 인증 과정을 만들어 줄 수 도 있다.

getPrincipal() : 인증 주체의 사용자 이름이다.
getCredentilas(): 인증 주체의 비밀번호이다. 보통 비밀번호는 null로 저장을 하지는 않는다.
getAuthorities() : 인증 주체에게 부여된 권한이다.

인증 객체 Authentication 을 만들고 AuthenticationManager에게 전달하고 인증처리를 수행한다.
어쨋든 여기서 알아 두어야 하는 것은 인증 전에 도 인증 객체가 있고 인증 후 에도 인증객체가 생성이 되는 게 포함하는 값에 변화가 있다는 것이다.
(비밀번호는 보안에 따라 null 로 처리되고 ,역할 이 부여되고 인증 상태값이 바뀐다는 것 정도 알면 될 꺼 같다. )
최종 인증 결과를 저장한 Authentication 객체를 SecurityContext에 저장한다.