Day 41
1. 주특기 심화 과제 lv.4
이번 과제는 저번에 했던 과제에서 토큰 인증 방식을 시큐리티를 이용한 방법으로 변경하는 것이다.
그래서 시큐리티 예제를 보면서 과제를 수행했다.
아래에 내가 이해한 시큐리티를 이용한 토큰의 인증 절차의 흐름을 적어보겠다.
- JwtAuthFilter를 UsernamePasswordAuthenticationFilter이전에 실행
- JwtAuthFilter
- response에서 Token을 추출해서 유효성 검사
- 유효하지 않으면 에러코드 응답에 입력
- 토큰에서 username을 가져와서 SecurityContextHolder 생성
- response에서 Token을 추출해서 유효성 검사
-
SecurityContextHolder
-
username을 가지고 UserDetails 객체 생성
-
UseDetailsService
- 아이디 유효성 검사
- UserDetails객체 생성해서 return
-
-
-
JwtUtil에서 principle, credentials, authorities를 담은 UsernamePasswordAuthenticationToken 생성 후 반환
- authorities는 userDetails.getAuthorities()을 통해서 입력
- 반환된 Authentication(UsernamePasswordAuthenticationToken)을 Context에 저장
- JwtAuthFilter
2. JPA에서 엔티티를 반환하면 안되는 이유
불필요한 내용이나 보안 말고 오늘 배운 내용을 정리해보겠다.
1. 양방향인 경우 순환 참조 발생 가능
양방향 매핑을 하고 객체를 반환하면 서로가 참조하고 있어서 순환 참조가 발생할 수 있다.
2. 지연 로딩
지연 로딩을 설정한 경우 실제 객체가 아닌 프록시 객체가 입력되므로 필요한 데이터가 반환되지 않는다.
'항해99 > TIL | WIL' 카테고리의 다른 글
| 2023.02.19 (42일) (0) | 2023.02.19 |
|---|---|
| WIL (5주) (0) | 2023.02.19 |
| 2023.02.17 (40일) (2) | 2023.02.18 |
| 2023.02.16 (39일) (0) | 2023.02.17 |
| 2023.02.15 (38일) (0) | 2023.02.16 |