Oii, Jhon! Tudo bem?
Sinto muito, Jhon! A atualização da biblioteca é muito comum acontecer na tecnologia, sempre estão em constante mudanças. Mas, não se preocupe, vamos resolver isso juntos!
Como sugestão, a lógica é a mesma, mas você pode utilizar o método getBody().get("sub")
em vez de getBody().getSubject()
. Isso irá retornar o valor do campo "sub"
do token, que geralmente é utilizado para armazenar o nome de usuário.
Segue um exemplo de como ficaria:
fun getAuthentication(jwt: String?): Authentication {
val username = Jwts.parser().setSigningKey(secret.toByteArray()).parseClaimsJws(jwt).body.get("sub")
return UsernamePasswordAuthenticationToken(username, null, null)
}
No exemplo acima o código decodifica um token JWT e extrai o identificador do usuário armazenado na reivindicação "sub"
.
E para você expandir os seus conhecimentos, deixo aqui o link da documentação do JWT, caso queira conhecê-la:
Qualquer dúvida, compartilhe conosco aqui no fórum para podermos te auxiliar.
Bons estudos, Jhon!