sliver__

Spring security - User Management (7) 본문

Backend/Spring Security

Spring security - User Management (7)

sliver__ 2025. 3. 2. 11:37
728x90

User Management

Spring security에서의 User management는 여러 단계로 나뉘어져 있다.

UserDetailsService, UserDetailsManager 등으로 구성되어 있다.

 

가장 먼저 인터페이스부터 살펴보면 UserDetailsService, UserDetailsManager 두 가지가 있다

UserDetailsService는 유저의 정보를 DB 또는 Memory에서 load하는 함수가 정의되어 있다.

UserDetailsManager는 유저 정보의 CRUD를 담당하고 있다.

 

왜 이렇게 나뉘어져 있는 걸까?

그 이유는 spring security를 사용자는 각 인터페이스를 자신의 상황에 맞게 구현할 수 있도록 하기 위해서이다.

 

그리고 UserDetails도 interface로 User class가 UserDetails를 상속받아 구현되어있다.

User의 데이터를 주고 받을 때, User class에 값을 담아서 사용하는 것도 기억하자.

 


UserDetails & Authentication

유저가 로그인을 시도하는 경우, 인증을 위해서는 Authentication interface 기반의 구현된 token class를 사용하고

DB/Memory에 있는 값을 퍼올리는데는 UserDetails interface기반 User class를 사용한다.

 

이렇듯 로그인 시도 시에 넘어오는 데이터의 클래스와 저장된 값을 퍼올리는 클래스가 다른 이유는 

상황에 따라 사용될 수 있는 함수들이 다르기 때문이다.

 

예를 들어 계정이 만료되었는지 여부를 확인하는건 로그인을 시도하는 경우 데이터와 상관이 없다.

 

728x90
Comments