[Spring Security + Kotlin] Jwts signWith deprecated 오류

조오닭·2022년 5월 22일
4
post-thumbnail

뒤늦게 스프링 시큐리티에 입문하여 이것저것 만져보다 JWT 토큰 생성에서 문제가 발생하였다.
바로 Jwts의 signWith가 취소선으로 되어있었던 것이다.
이는 Deprecated 되어서 오류까진 아니고 경고로 뜨는데, 혹시 모르니까 최신으로 바꿔주었다.

역시 인텔리제이는 편하다. 마우스 갖다대기만 해도 문서를 좌르륵 보여준다.
어쨌든 문서 전체적으로 하는 말로는 SignatureAlgorithm을 쓰는 것은 괜찮지만 다른 인자인 secretKey는 String이고 이 부분은 삭제되었다는 것이다.
따라서 그 자리에는 Key 객체를 가진 인자로 채워야 한다.
위 사진 중반에 Key 객체가 어떻게 되어야할지도 친절히 알려준다.

Key key = Keys.hmacShaKeyFor(keyBytes);
여기에서도 String이 아닌 Byte형태로 받는다.
하지만 우리는 String 형태인 secretKey 변수를 최대한 사용해야하므로 secretKey(String)을 ByteArray로 변화하는 작업도 같이 하였다.

val key : Key = Keys.hmacShaKeyFor(secretKey.toByteArray(StandardCharsets.UTF_8))

취소선이 그어졌던 signWith가 정상적으로 되었다!

profile
백엔드 응애

1개의 댓글

comment-user-thumbnail
2022년 8월 9일

Show an example of generation

답글 달기