해당 오류를 번역기로 돌려보면(응애 나 아기 고졸 영어 못함)
서명된 클레임 JWS 는 지원되지 않는다고 뜬다..
자 이게 무슨 뜻일까요?
나는 Claims 을 얻는 코드를 JwtParser 를 이용해 이렇게 작성했다
public Claims getOldClaims(String token) {
Claims claims = jwtParser.parseClaimsJwt(token).getBody();
return claims;
}
결론부터 말하면
.parseClaimsJwt() 이 부분을 .parseClaimsJws() 로 바꿔주면 무사히 동작한다
.parseClaimsJwt() 는 서명되지 않은 jwt 를 파싱할 때 사용한다
그냥 jwt의 payload 부분만 뭔지 알 수 있는 것이다
하지만
.parseClaimsJws() 는 서명된 jwt 를, 즉 jws(json web signature)를 검증할 때 사용한다
jwt 에 포함 된 정보가 변조되었는지 아닌지 검증할 수 있는 메서드인 것이다
그래서 얘는,
1. jwt 의 서명을 검증하고
서명이 유효하다면
2. 해당 jwt의 payload를 claims 객체로 변환해준다
그러니 보통은 .parseClaimsJws() 를 쓰는 것이 타율이 맞을 것이다 ^0^/
그러면 난 이걸 고쳤으니
다른 오류가 생겨서
그걸 해결하러 이만....^^7
728x90