안녕하세요 이번에 제가 Spring Security + jwt 를 활용한 로그인 기능을 만들어봤습니다.
복습겸 기록남기기로 블로그에 작성할 생각입니다.
- 초보개발자로써 혼자서 공부한 내용을 정리삼아 블로그에 작성하니 잘못된 점 바로잡아주시면 감사하겠습니다! -
Spring boot 3.0.1
java 17
MySQL
JsonWebToken
위의 버전과 라이브러리를 사용하여 만들었습니다.
Spring Securiy + jwt 의 흐름
1. Http 통신이 온다.
2. JwtAuthFilter 를 통하여 Jwt Token 이 HTTP Header 에 있는지 확인한다.
2번에서 2가지의 분기로 나누어집니다.
if ( jwt Token 이 존재한다면 ) {
- 각각의 서비스와 도메인에 맞게 Custom한 JwtService를 통하여 토큰에 대한 유효성 검사를 시작
- 유효한 토큰이라면 Security ContextHolder 에서 setAuthenticatuin 을 해주게 됩니다(이 부분은 추후 코드를 통하여 자세히 올리겠습니다!!)
- 유효하지 않는 토큰이라면 403 에러 빠방 쏴줍니다.
그리하여 최종적으로 Dispatcher Servlet을 통하여 저희가 설정한 Controller에 접근할 수 있습니다!!
}
else { // jwt Tokem 이 존재하지않는다면
User Details Service 를 통해 DB에 접근하여 사용자가 존재하는지 확인합니다.
- 사용자가 유효하다면
=> Jwt Token 을 발급해줍니다.
- 사용자가 유효 하지 않다면
=> 403 에러 빠방 쏴줍니다.
}
다음번 포스트는 실제 코드와 함께 올리도록 하겠습니다.
감사합니다.
'Spring' 카테고리의 다른 글
Spring Security + jwt 사용기(우당탕탕 주의) - 3 (0) | 2023.05.02 |
---|---|
Spring Security + jwt 사용기(우당탕탕 주의) - 2 (0) | 2023.04.04 |
Spring Filter에 대하여 (0) | 2023.03.15 |
<Spring> ResponseEntity 에 대하여 (0) | 2023.03.02 |
MyBatis DTO Mapping 오류 (0) | 2023.02.28 |