1
resposta

Aulas estao muito depreciada, Função getAuthentication

ja tem algumas aula atras q esta muito diferente, tendo q fazer varias alteraçoes, mas agora nao sei como pegar o body.subject, ja q o mesmo nao se utiliza mais

fun getAuthentication(jwt: String?) : Authentication {
    val username = Jwts.parser().setSigningKey(secret.toByteArray()).parseClaimsJws(jwt).body.subject
    return UsernamePasswordAuthenticationToken(username, null, null)
}
1 resposta

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!