Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Resolvendo métodos depreciados do JWT

Pessoal, segue uma sugestão para quem estiver fazendo com as versões mais atualizadas:

@Component
class JWTUtil {

    @Value("\${jwt.secret}")
    private var secret: String = "2a12Dpr9yBjZksrrC34hnQEG1uDyF5HKckz3Cob4j5md1Jl3jXPF1ejzi"

    private val expiration: Long = 60000

    private val key = Keys.hmacShaKeyFor(secret.toByteArray(StandardCharsets.UTF_8))

    fun generateToken(username: String): String {
        return Jwts
            .builder()
            .expiration(Date(System.currentTimeMillis() + expiration))
            .signWith(key)
            .compact()
    }

    fun isValid(jwt: String?): Boolean {
        return try {
            Jwts.parser()
                .verifyWith(key)
                .build()
                .parseSignedClaims(jwt)
            true
        } catch (e: IllegalArgumentException) {
            false
        }
    }

    fun getAuthentication(jwt: String?): UsernamePasswordAuthenticationToken {
        val username = Jwts.parser()
            .verifyWith(key)
            .build()
            .parseSignedClaims(jwt)
        return UsernamePasswordAuthenticationToken(username, null, null)
    }
}

Aqui funcionou perfeitamente.

1 resposta
solução!

Opa Matheus! Joia?

Obrigado por compartilhar sua solução para lidar com métodos depreciados no JWT! Parece que você encontrou uma maneira eficiente de gerar e validar tokens JWT nas versões mais recentes da biblioteca.

Continue mergulhando em tecnologia e se tiver dúvidas, conte com o fórum.

Abraços e bons estudos!