spring security에서 사용되는 authentication은 인터페이스이며
AbstractAuthenticationToken은 authentication 인터페이스를 구현한 추상 클래스이다.
아래는 AbstractAuthenticationToken을 확장한 구현체의 일부분이다.
종류에 따라 구체적인 인증 정보를 다루기 위한 클래스로 상황에 맞게 사용하면 된다.
나의 경우 웹 프로젝트에서 사용할 것이고 찾아본 결과 대부분의 웹 프로젝트에서는 SSO 시나리오를 사용한다고 하여 PreAuthenticatedAuthenticationToken을 사용했다.
AbstractOAuth2TokenAuthenticationToken
AnonymousAuthenticationToken
BearerTokenAuthenticationToken
OAuth2AuthenticationToken
OAuth2AuthorizationCodeAuthenticationToken
OAuth2LoginAuthenticationToken
PreAuthenticatedAuthenticationToken
RememberMeAuthenticationToken
TestingAuthenticationToken
UsernamePasswordAuthenticationToken