본문 바로가기
일상/회고

io.jsonwebtoken.MalformedJwtException: JWT strings must contain exactly 2 period characters. Found: 0

by 계범 2023. 7. 26.


오류

아침마다 에러 트래킹을 하고 있다.

오늘은 아래와 같은 에러를 발견했다.

io.jsonwebtoken.MalformedJwtException: JWT strings must contain exactly 2 period characters. Found: 0

 

원인

해당 에러는 JWT 토큰을 파싱하는 과정에서 발생하는 에러였따..!

해당 부분의 Jwts.parser()에 들아가보면

default jwt parser를 부르고,

jwt 의 형식에 맞지 않게 들어와서 발생하는 문제였다..

 

현재 에러는

<Header>.<Payload>.<Signature>

이 양식에서  . 게 없어서 발생하는 문제다! (jwt 형식에 맞는 토큰을 담지 않았다..!)

위의 로직에서, jwt의 문자열을 비교하면서 구분점을 찾는데 발견되지 않은 것이다.,

해결

현재 우리는  core쪽에서 jwt 관련 로직을 몰아넣어뒀는데,

try catch문을 통해 ExpiredJwtException 만 잡고 있어서 해당 문제가 발생한거였다..!

 

해당 문은 JwtException을 잡도록 처리하여 에러레벨을 warn레벨로 낮출 예정이다!

 

(최종 골은 error레벨은 정말 우리가 모르는 레벨만 찍히게 할려고하고 있기 때문)

물론 근본적으로는 어떤 곳에서 이렇게 jwt 형식에 맞지 않게 요청하는 지 파악해야하긴 해야한다고 생각한다 ㅎㅎ;

댓글