Spring Security는 filter에서 탐
JWT
header . payload. signature 로 구성
(점으로 구분)
출처 : https://docs.spring.io/spring-security/reference/servlet/architecture.html
Filter를 타고 나면 WebConfig로 감
WebConfig:
permission을 확인하고
- hasRole
- PerimitAll
- Authenticated 등
설정
- 우린JWT를 쓸거야!!
인증: 선택, JWT가 하는 일, 유저인지 admin인지 확인 (JwtUtil에서), 가입해도 되는 애인지 확인
인가: 필수, 무조건 Filter에서 만들어줘야 함!!
🗂️ Security
🅒 JwtAuthorizationFilter
🅒 JwtUtil
🅒 UserDetailsIpl
🅒 UserDetailsServiceImpl
🅒 JwtAuthorizationFilter (인가 해주는 곳)
- JwtUtil이랑 JwtDetailsimpl 데려와서
- doFilter 탐
if (AuthorizationHeader에 텍스트가 있으면{
substringToken해서 BEARER빼기
if(맞다면 validationToken: signiture 확인)
🅒 WebSecurityConfig
- http.addFilterBefore (jwtAuthorizationFilter(),...);
언제 필터 쓸건지 설정! 모든 동작을 함
🅒 JwtUtil
- 인증끝나면 JwtUtil에서 토큰 생성
- 이름 넣고, Role(claim)넣고, ExpiredTime 등 넣기
- UserService
로그인 할때 (는 Auth필터단: 인가 를 안거침)
인증이 끝나면 토큰을 만들고 (jwtUtil.createToken) 토큰: 인증이 됐다는 증표!!!
그 토큰으로 인가를 한다.
'Spring' 카테고리의 다른 글
[TIL] 231228 REST API 개념 정리 (0) | 2023.12.28 |
---|---|
[TIL] 231228 ResponseEntity<T> ResponseEntity<?> 제네릭 클래스 (2) | 2023.12.28 |
[TIL] 231220 Spring Boot Global Exception @ControllerAdvice (0) | 2023.12.20 |
[TIL] 231219 Spring JPA ORM (0) | 2023.12.19 |
[TIL] 231219 Spring @JoinColumn @OnDelete (0) | 2023.12.19 |