shinsunyoung / springboot-developer

📚 <스프링부트 3 백엔드 개발자 되기> 예제코드
230 stars 92 forks source link

[Chapter 09] jjwt-api 라이브러리 관련 예외 #37

Closed choihyungjun1020 closed 11 months ago

choihyungjun1020 commented 11 months ago

저와 같은 버전에서 학습하시는 경우, 같은 예외가 발생할 수 있을 것 같아 작성해봅니다. 현재 제가 사용중인 버전은 SpringBoot 3.2.0, jjwt-api:0.11.5 입니다. 교재의 jjwt:0.9.*이 취약점이 발견되었다길래 jjwt-api:0.11.5 로 버전업 해서 발생한 예외입니다.

  1. io.jsonwebtoken.io.DecodingException: Illegal base64 character: '-' 발생 위 버전 기준 application.yml 파일의 jwt.secret_key에는 '-' character가 포함되면 안됩니다.

  2. io.jsonwebtoken.security.WeakKeyException 발생 이는 HS256 algorithm 사용으로인해, key의 size가 256bit보다 커야 한다는 뜻입니다. => 영어 한단어당 8bit 이므로 32글자 이상이어야 한다는 뜻 입니다.

요약하면, 교재의 application.yml 파일의 jwt.secret_key : study-springboot는 제 버전 기준 사용 불가한 키입니다. 이외에도 라이브러리 내의 deprecated 상태의 메소드가 있습니다. 기존 교재 내의 코드를 사용해도 무방하긴 합니다. 최신 버전 라이브러리를 사용하시는 경우, 전체적인 메서드 리팩토링도 고려해볼 필요가 있습니다. 좋은 교재 제공해주셔서 감사합니다.

shinsunyoung commented 10 months ago

이슈를 정리하다가 이제 봤네요 🥲 좋은 사례 남겨주셔서 감사합니다! 👍