일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- Photoshop
- Gap
- 미디어 쿼리
- 수학
- 포토샵
- 확률
- grid
- skt membership
- 알고리즘
- 통신사할인
- c
- pandas
- float
- Javascript
- stl
- 소수
- box-sizing
- 상태
- JSX
- 백준
- SK바이오사이언스
- 반응형 웹
- spring
- 강화학습
- transform
- react
- Codility
- CSS
- c++
- REM
- Today
- Total
sliver__
Spring security - User Management (7) 본문
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를 사용한다.
이렇듯 로그인 시도 시에 넘어오는 데이터의 클래스와 저장된 값을 퍼올리는 클래스가 다른 이유는
상황에 따라 사용될 수 있는 함수들이 다르기 때문이다.
예를 들어 계정이 만료되었는지 여부를 확인하는건 로그인을 시도하는 경우 데이터와 상관이 없다.
'Backend > Spring Security' 카테고리의 다른 글
Spring security - AuthenticationProvider (0) | 2025.03.02 |
---|---|
Spring security - UserDetailsService, PasswordEncoder (6) (0) | 2025.03.02 |
[Spring security] Custom FilterChain (0) | 2025.01.31 |
[Spring security] JWT(Json Web Token) (0) | 2025.01.31 |
[Spring security] debug security filter (0) | 2025.01.30 |