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

Pegar Objeto passado dentro de um JWT

Olá, estou com um problema em que preciso pegar um objeto inteiro que está dentro do JWT, o objeto possui mais de um dado, por exemplo, possui id, nome, dtCadastro (... entre outros), tudo encapsulado dentro de um JWT.... O que estou precisando é dá o parse e transformar isso em um objeto no java.

Procurei bastante na internet, e encontrei uma forma de fazer, foi assim:

Claims body = Jwts.parser().setSigningKey(sec.getBytes()).parseClaimsJws(jwt).getBody();

User user = new User();
user.setId(body.get("id");
user.setName(body.get("name");
user.setCreatedAt(body.get("createdAt");

System.out.println(user.toString());

O que estou precisando é saber uma forma melhor de pegar, pra dar o parse e transformar o jwt em um objeto User, de uma forma mais dinâmica, pois dessa forma está muito estática.

O que eu queria pelo menos, é saber se existe alguma forma de saber todas as keys que existem naquele JWT, as keys no caso seriam a String dentro do claims.get("key");

1 resposta
solução!

Oi José,

Creio que não seja possível fazer isso, de guardar o objeto inteiro, pois o JWT armazena as informações como String.

Para armazenar um objeto Java a biblioteca teria que suportar serialização/deserialização de objetos Java, mas mesmo assim o padrão JWT não se prende a nenhuma linguagem em específico, armazenando então qualquer informação apenas como texto.