1
resposta

[Dúvida] Método signWith() deprecated

Bom dia a todos Eu vi que o método signWith() usado na aula está deprecated e atualmente tem outra versão desse mesmo método, atualizada, que também é signWith().

Método antigo na documentação

    /** @deprecated */
    @Deprecated
    JwtBuilder signWith(SignatureAlgorithm var1, byte[] var2) throws InvalidKeyException;

método novo na documentação:

    JwtBuilder signWith(Key var1, SignatureAlgorithm var2) throws InvalidKeyException;

Só que neste caso, o que muda, que ao invés de inserir o ByteArray!, ele recebe uma variável do tipo o key!.

A minha dúvida é como faz para trabalhar com essa variável key?

1 resposta

Olá Murilo!

Entendi sua dúvida sobre como trabalhar com a variável key no método signWith() da nova versão do JWT.

A variável key representa a chave de assinatura que será usada para assinar o token. Essa chave é responsável por garantir a integridade e autenticidade do token. No exemplo que você mostrou, a chave é do tipo Key, que é uma interface que representa uma chave criptográfica.

Para trabalhar com essa variável key, você precisa criar uma instância de uma classe que implemente a interface Key. Existem várias formas de criar essa chave, dependendo do tipo de algoritmo de assinatura que você está usando.

Por exemplo, se você estiver usando o algoritmo HS512, que é um algoritmo de assinatura baseado em uma chave secreta compartilhada, você pode criar a chave da seguinte forma:

val secretKey = "minhaChaveSecreta" // substitua pela sua chave secreta
val key: Key = SecretKeySpec(secretKey.toByteArray(), "HmacSHA512")

Nesse exemplo, estamos criando uma chave secreta usando a classe SecretKeySpec e passando a chave secreta como um array de bytes. O segundo parâmetro é o algoritmo de assinatura que estamos usando, no caso, "HmacSHA512".

Depois de criar a chave, você pode passá-la como argumento para o método signWith():

val token = Jwts.builder()
    .signWith(key, SignatureAlgorithm.HS512)
    .compact()

Assim, o método signWith() irá usar a chave key e o algoritmo HS512 para assinar o token.

Espero ter esclarecido sua dúvida! Se tiver mais alguma pergunta, é só me dizer. Bons estudos!