UserDetails
- 사용자의 정보를 담는 인터페이스
- 매개변수로 사용하여 JWT 가 저장된 유저 정보를 가져올 수 있다.
=> Spring에서 지원하는 인터페이스이기 때문에 UserDetailsImpl(Impl : interpace)로 class를 만들어 사용
UserDetailsService
- Spring Security에서 유저의 정보를 가져오는 인터페이스
=> Spring에서 지원하는 인터페이스이기 때문에 UserDetailsServiceImpl(Impl : interpace)로 class를 만들어 사용
=> Service 에너테이션을 달고 Service처럼 사용(예제에서는 repository를 주입받아 데이터를 가져오는 메서드를 만듬)
UserDetails 메서드
- UserDetails에 기본으로 있는 메서드를 override하여 사용할 수 있다.
아래는 예제에서 쓰인 메서드의 내용이다.
- isAccountNonExpired : 계정이 만료 여부 확인 후 리턴
- isAccountNonLocked : 계정이 잠김 여부 확인 후 리턴
- isCredentialsNonExpired : 계정의 패스워드가 만료되지 않았는지 확인 후 리턴
- isEnabled : 사용 가능한 계정인지를 확인하고 리턴
참고블로그!