본문 바로가기
생각 정리

2022. 11. 24.

by jaeyoungb 2022. 11. 24.

§ 학습 전(계획) §

▶ 학습 목표는 무엇인가?

  • JWT 인증
JWT 자격 증명을 위한 로그인 인증 구현
JWT를 이용한 자격 증명 및 검증 구현

 

 이미 알고 있는 내용은 무엇인가?

JWT의 기본적인 내용은 어제 학습했고, 오늘은 코드로 구현해서 적용시켜볼 것 같다.

 

 

 


 

§ 학습 후(점검 및 평가)

 새롭게 배운 내용은 무엇인가?

  • Spring Security 기반의 애플리케이션에 JWT를 적용하기 위해서는 jjwtJava JWT 같은 별도의 라이브러리가 필요
  • UsernamePasswordAuthenticationFilter를 이용해 JWT 발급 전의 로그인 인증 기능을 구현
  • 직접 Custom Configurer를 구성해 Spring Security의 Configuration을 커스터마이징 가능
  • Username/Password 기반의 로그인 인증은 OncePerRequestFilter 같은 Spring Security에서 지원하는 다른 Filter를 이용해서 구현할 수 있고, Controller에서 REST API 엔드포인트로 구현하는 것도 가능
  • Spring Security에서는 Username/Password 기반의 로그인 인증에 성공했을 때, 로그를 기록하거나 로그인에 성공한 사용자 정보를 response로 전송하는 등의 추가 처리를 할 수 있는 AuthenticationSuccessHandler를 지원하고, 로그인 인증 실패 시에도 마찬가지로 인증 실패에 대해 추가 처리를 할 수 있는 AuthenticationFailureHandler를 지원
  • JWT는 JWS(JSON Web Token Signed)라고도 함
  • SecurityContext에 Authentication을 저장하게 되면, Spring Security의 세션 정책에 따라서 세션을 생성할 수도, 안할 수도 있음
  • SecurityContext에 클라이언트의 인증 정보(Authentication 객체)가 저장되지 않은 상태로 다음 Security Filter 로직을 수행하다보면 결국에는 AuthenticationException이 발생하게 되고, 이 AuthenticationException은 AuthenticationEntryPoint가 처리
  • AccessDeniedHandler는 인증에는 성공했지만, 해당 리소스에 대한 권한이 없을 경우 호출되는 핸들러

 

 

 다른 사람에게 설명할 수 있는가?

코드를 작성해보면서 흐름에 대한 부분은 이해가 잘 되어서, 설명할 수 있을 것 같다.

 

 아직 이해되지 않은 내용은 무엇인가?

항상 '예시 코드를 참고하지 않고, 능동적으로 코드를 구현할 수 있는가'가 문제이다.

 

 이해되지 않은 내용을 보완하기 위해서 나는 무엇을 할 수 있는가?

내용을 계속 반복 복습하며, 코드를 많이 쳐보면 자연스레 익혀지지 않을까 생각된다.

 

 오늘 나의 학습 만족도는 어느 별 5개 중 몇 개를 줄 수 있는가?

  • ★★★★★

오늘은 컨디션이 괜찮아서 집중있게 학습한 것 같다.

근데 정규 학습 시간 내에 학습 내용들을 모두 끝마치친 못했다..ㅜ

그래도 고생했다 :)

'생각 정리' 카테고리의 다른 글

2022. 11. 28.  (0) 2022.11.28
2022. 11. 25.  (0) 2022.11.25
2022. 11. 23.  (1) 2022.11.23
2022. 11. 22.  (0) 2022.11.22
2022. 11. 21.  (0) 2022.11.21