Spring 🟢

[Spring] 시큐리티로 JWT 로그인 구현하기

minl741 2023. 10. 20. 16:42

jwt 로그인

TokenProvider

  • 토큰 생성 및 검증

로그인()

  • 비밀번번호 로그인 일치하면 토큰 생성
  • 따로 인증 필터 두지 않기로 결정
    • 필요성을 못느낌

JwtAuthenticationFilter extends BasicAuthenticationFilter

  • 권한 확인 필터
    • 권한이 필요한 요청이 들어왔을 때 실행
    • 굳이 만들어줘야 하는 이유: 시큐리티엔 Jwt를 검증하는 필터가 없다
  • 토큰이 유효하면 인증 객체 만들어서 시큐리티 컨텍스트에 저장

CustomUserDetails를 구현해줘야 하는 이유

  • 내 이해: 시큐리티 컨텍스트에 넣어질 객체는 UserDetails 형태여야 하는데 (= 시큐리티가 관리하는 것)
  • 인증된 객체의 정보를 내가 필요한 것을 구현

CustomUserDetailsService를 구현해줘야 하는 이유

  • loadUserByUsername 실행될 때 커스텀한 UserDetails를 리턴해야 해서 정도로만 이해

 

코드가 보고 싶으시다면 

https://github.com/Step3-kakao-tech-campus/Team16_BE/blob/develop/animory/src/main/java/com/daggle/animory/common/security/JwtAuthenticationFilter.java