📝 Spring Security 인증 예외
AccountExpiredException:
- 설명: 사용자의 계정이 만료되어 더 이상 사용할 수 없을 때 발생합니다. 이 예외가 발생하면 사용자는 인증에 실패하게 됩니다.
AccountStatusException:
- 설명: 사용자의 계정 상태와 관련된 문제(예: 계정이 잠김, 비활성화됨 등)로 인해 인증이 실패했을 때 발생하는 예외들의 기본 클래스입니다. 이 클래스 자체는 직접 사용되기보다, 다른 계정 상태 관련 예외들의 상위 클래스 역할을 합니다.
AuthenticationCredentialsNotFoundException:
- 설명:
SecurityContext에 Authentication 객체가 없을 때 발생합니다. 이는 일반적으로 인증 정보가 전혀 제공되지 않았거나, 인증이 이루어지지 않은 경우에 발생합니다.
AuthenticationServiceException:
- 설명: 시스템 문제로 인해 인증 요청을 처리할 수 없을 때 발생합니다. 예를 들어, 인증 서비스가 제대로 동작하지 않거나, 데이터베이스 연결 문제가 있는 경우에 발생할 수 있습니다.
BadCredentialsException:
- 설명: 제공된 인증 정보(예: 사용자 이름이나 비밀번호)가 올바르지 않을 때 발생합니다. 잘못된 비밀번호를 입력했을 때 주로 발생합니다.
CredentialsExpiredException:
- 설명: 사용자의 계정 자격 증명(예: 비밀번호)이 만료되었을 때 발생합니다. 이는 사용자가 비밀번호를 너무 오래 사용하여 비밀번호 변경이 필요한 경우에 발생할 수 있습니다.
DisabledException:
- 설명: 사용자의 계정이 비활성화되어 있는 경우 발생합니다. 관리자가 특정 계정을 비활성화했거나, 계정이 일정 조건을 충족하지 않아 자동으로 비활성화된 경우 발생할 수 있습니다.
InsufficientAuthenticationException:
- 설명: 인증 정보가 충분히 신뢰할 수 없는 경우 발생합니다. 예를 들어, 사용자가 두 단계 인증(2FA)을 요구하는 서비스에 대해 단일 인증 요소만 제공한 경우 발생할 수 있습니다.
InternalAuthenticationServiceException:
- 설명: 내부 시스템 문제로 인해 인증 요청을 처리할 수 없는 경우 발생합니다. 이는
AuthenticationServiceException의 하위 클래스이며, 내부적으로 발생하는 문제를 나타냅니다.
LockedException:
- 설명: 사용자의 계정이 잠겨 있는 경우 발생합니다. 계정이 여러 번의 잘못된 로그인 시도로 인해 잠겼을 때 주로 발생합니다.
ProviderNotFoundException:
- 설명:
ProviderManager에서 지원되는 AuthenticationProvider를 찾을 수 없을 때 발생합니다. 이는 인증을 처리할 수 있는 적절한 공급자가 없는 경우에 발생합니다.
출처: https://docs.spring.io/spring-security/site/docs/4.0.x/apidocs/org/springframework/security/authentication/package-summary.html