본문 바로가기

Java & Spring

Spring Security - UserDetails의 4가지 Boolean 타입(isAccountNonExpired, isAccountNonLocked, isCredentialsNonExpired, isEnabled)

반응형

 

 

오늘은 사용자 계정의 상태를 나타내는 4가지 boolean 타입 (isAccountNonExpired, isAccountNonLocked, isCredentialsNonExpired, isEnabled)과 각 상태의 차이점을 패스워드 만료 포함하여 정리해보겠습니다.

 

 

1. 계정 만료 (isAccountNonExpired):

  • 설명: 계정의 유효 기간이 지났는지를 나타냅니다.
  • 예시: 회사 정책상 계정이 1년 동안만 유효한 경우, 1년이 지나면 계정이 만료됩니다. 만료된 계정으로는 로그인할 수 없습니다.
  • 사용 시나리오: 계정의 유효 기간을 제한하여 일정 기간 후 계정을 비활성화할 필요가 있을 때 사용됩니다.

 

2. 계정 잠김 (isAccountNonLocked):

  • 설명: 계정이 잠겨 있지 않음을 나타냅니다.
  • 예시: 사용자가 여러 번 잘못된 비밀번호를 입력하면 보안상 계정이 잠길 수 있습니다. 잠긴 계정은 일정 시간이 지나거나 관리자가 해제할 때까지 로그인이 차단됩니다.
  • 사용 시나리오: 비정상적인 로그인 시도를 감지하여 계정 보안을 강화할 때 사용됩니다.

 

3. 비밀번호 만료 (isCredentialsNonExpired):

  • 설명: 비밀번호 등 인증 정보가 만료되지 않았는지를 나타냅니다.
  • 예시: 사용자의 비밀번호가 6개월마다 변경되도록 설정된 경우, 6개월이 지나면 비밀번호가 만료됩니다. 만료된 비밀번호로는 로그인이 불가능합니다.
  • 사용 시나리오: 일정 주기마다 비밀번호를 변경하도록 강제하여 보안을 유지할 필요가 있을 때 사용됩니다.

 

4. 계정 활성화 (isEnabled):

  • 설명: 계정이 활성 상태인지 여부를 나타냅니다.
  • 예시: 사용자가 오랜 기간 동안 로그인을 하지 않거나, 관리자가 계정을 비활성화한 경우 비활성화된 계정으로는 로그인할 수 없습니다.
  • 사용 시나리오: 사용자가 서비스를 더 이상 사용하지 않거나 일시적으로 접근을 차단할 필요가 있을 때 사용됩니다.

 

5. 차이점 요약:

상태 설명 예시 사용 시나리오
계정 만료 계정의 유효 기간이 지났는지 확인 일정 기간 후 만료되는 계정 계정의 유효 기간 제한
계정 잠김 여러 번 잘못된 로그인 시도 후 잠김 비밀번호 입력 오류로 계정 잠김 비정상 로그인 시도 감지 및 보안 강화
비밀번호 만료 비밀번호 등 인증 정보가 만료되지 않았는지 주기적인 비밀번호 변경 필요 주기적인 비밀번호 변경을 통한 보안 유지
계정 활성화 계정이 활성 상태인지 확인 오래된 계정 또는 관리자에 의해 비활성화 서비스를 더 이상 사용하지 않는 계정

 

 

이렇게 각 상태의 의미와 차이점을 이해하시면, Spring Security에서 사용자 계정의 다양한 상태를 보다 효과적으로 관리할 수 있습니다.